Max Kellermann
017d61a1aa
decoder/mp4ff: support tags "albumartist", "band"
...
I'm not sure if mapping "band" to TAG_PERFORMER is correct, but it
might be better than nothing.
2010-05-30 22:55:02 +02:00
Max Kellermann
4028d03a6e
decoder/mp4ff: use tag_table.h to parse tag names
...
Convert if/else/else/... to a loop.
2010-05-30 22:52:45 +02:00
Max Kellermann
44b771aca1
decoder/mp4ff: rename plugin "mp4" to "mp4ff"
...
The underlying library is named "libmp4ff". To reduce confusion,
rename the plugin to a more specific name.
2010-05-30 22:52:44 +02:00
Max Kellermann
8c581eca4d
tag_ape: move table lookup to tag_table.h
...
Allow code sharing.
2010-05-30 22:52:19 +02:00
Max Kellermann
8e815bec9f
tag_ape: support album artist, MusicBrainz tags
...
I took these tag names from a MusePack sample file I got from a user.
These are not documented in the APE specification:
http://wiki.hydrogenaudio.org/index.php?title=APE_key
People seem to be using undocumented extensions to the specification
anyway, and the best we can do is attempt to support them.
2010-05-30 22:29:48 +02:00
Max Kellermann
9dda53e1d2
Merge release 0.15.10 from branch 'v0.15.x'
...
Conflicts:
NEWS
configure.ac
src/input/mms_input_plugin.c
2010-05-30 18:26:33 +02:00
Max Kellermann
442d2e74e3
decoder/mad: fix buffer variable name on !HAVE_ID3TAG
2010-05-30 17:27:03 +02:00
Daniel Seuthe
e8310211e2
filter/replay_gain: added option "replaygain_limit"
2010-05-30 17:06:08 +02:00
Avuton Olrich
894573657d
cmdline: Add default config paths for win32.
2010-05-20 06:56:43 -07:00
Max Kellermann
9cce1d749a
output/win32: new output plugin for Windows Wave
2010-05-20 09:33:05 +02:00
Max Kellermann
ed0b48040c
pcm_buffer: 8 kB alignment instead of 64 kB
...
Reduce the overhead. Most buffers used by MPD are around 2 to 4 kB.
8 kB seems large enough to keep heap fragmentation low.
Additionally, this patch fixes an off-by-one error in the alignment
formula.
2010-05-20 09:31:51 +02:00
Max Kellermann
eda46bc07f
tag_{id3,ape}: explicitly open files in binary mode
...
Add the flag "b" to fopen(). Windows compatibility.
2010-05-20 09:14:11 +02:00
Max Kellermann
c727e86980
input/file, output/{fifo,recorder}: add O_BINARY to open() flags
...
Windows compatibility.
2010-05-20 09:13:39 +02:00
Max Kellermann
57b4013306
client: use sprintf() on WIN32
...
On mingw32, snprintf() expects a 64 bit integer instead of a "long
int" for "%li" - this is not consistent with our expectation, so we're
using plain sprintf().
2010-05-19 13:12:37 +02:00
Max Kellermann
8248f498b2
event_pipe: use g_io_channel_read_chars() to drain the pipe
...
For some unknown reason, read() blocks on WIN32, even though it was
invoked inside the G_IO_IN callback. By switching to GIOChannel
functions, this problem is solved, and it works on both Linux and
Windows.
2010-05-19 11:37:39 +02:00
Max Kellermann
22f3ffb099
event_pipe: call g_io_channel_win32_new_fd()
...
On WIN32, use g_io_channel_win32_new_fd() instead of
g_io_channel_unix_new(). There doesn't seem to be a practical
difference, but it seems more correct.
2010-05-19 11:37:22 +02:00
Max Kellermann
81bd8ef73c
update_walk: don't check recursive symlinks on WIN32
...
inode numbers don't work on WIN32, and very few WIN32 users actually
use symlinks - seems ok to disable that check.
2010-05-19 11:36:07 +02:00
Max Kellermann
bedc172eab
crossfade: emulate strtok_r() on WIN32 with a function
...
Not a CPP macro. This adds the "unused" attribute to "saveptr", which
eliminates one gcc warning.
2010-05-18 23:56:53 +02:00
Max Kellermann
0a9b0dd070
command: fallback strftime() formats on WIN32
...
On WIN32, "%F" and "%T" are not implemented.
2010-05-18 23:54:12 +02:00
Max Kellermann
6aa0f61e15
socket_util: fix setsockopt() argument type on WIN32
...
In the winsock headers, the setsockopt() argument is declared as
"const char *", not "const void *".
2010-05-18 23:13:05 +02:00
Max Kellermann
4461c3d5d1
daemon: include glib.h on WIN32 for g_error()
2010-05-18 23:13:05 +02:00
Max Kellermann
fef46bcf49
fd_util: fd_set_cloexec() returns a value on WIN32
...
This function is empty on WIN32, but we need to return a value.
2010-05-18 23:09:07 +02:00
Max Kellermann
fa2ff849c5
input/ffmpeg: new input plugin using libavformat's "avio" library
2010-05-18 21:20:31 +02:00
Max Kellermann
6b2b91ff01
input/mms: removed empty method buffer()
...
input_stream_buffer() has a check for "buffer==NULL", so we don't need
an explicit empty implementation.
2010-05-18 21:20:31 +02:00
Max Kellermann
28736414a8
input/mms: initialize the "eof" attribute
2010-05-18 21:11:00 +02:00
Max Kellermann
e98bd55cbf
input/mms: fix memory leak in error handler
2010-05-18 20:57:57 +02:00
Daniel Seuthe
733962db2f
decoder_api: return effective replay gain
...
Pay attention to the ReplayGain mode "auto" and the
replay_gain_missing_preamp parameter inside of decoder_replay_gain().
2010-05-18 20:39:32 +02:00
Daniel Seuthe
f824ecdfa1
replay_gain_config: added function replay_gain_get_real_mode()
2010-05-18 20:30:03 +02:00
Max Kellermann
6c831e04a2
output/oss: 24 bit support via OSS4
...
Added #ifdefs on the macros AFMT_S24_NE and other OSS4 extensions.
2010-05-14 09:48:02 +02:00
Max Kellermann
67c48f66a6
output/oss: rewrite of the audio format detection
...
Removed the "supported" / "unsupported" arrays, and auto-detect on
every open() call, just like the ALSA output plugin.
2010-05-13 14:42:09 +02:00
Max Kellermann
5fa1c703de
output/oss: use the *_NE macros
...
Removed the macro AFMT_S16_MPD.
2010-05-13 14:34:22 +02:00
Avuton Olrich
bead892e21
AudioCompress: include stdint.h for int16_t definition.
...
In mingw32, int16_t is not defined by sys/types.h, but it is by stdint.h,
and it is in the int16_t man page as being defined in stdint.h. Thanks to
mithi for help debugging.
2010-05-11 18:48:22 -07:00
Avuton Olrich
8341daca4a
client_new: Send greeting using send() rather than write().
...
This is portable for win32 and fixes client logins there.
2010-05-08 16:48:01 -07:00
Tim Phipps
136759a298
mixramp: Remove maths from pcm_mix when using MixRamp overlaps.
2010-05-08 09:28:06 +02:00
Tim Phipps
0ac5b6e613
mixramp: Adjust MixRamp threshold to account for ReplayGain.
2010-05-08 00:19:44 -07:00
Avuton Olrich
eb5208c4f9
log: /dev/null doesn't exist on win32.
2010-05-08 00:17:34 -07:00
Max Kellermann
d88c3c8462
output_thread: call replay gain filter manually
...
Don't add it to the filter chain, because we need to apply replay gain
before cross-fading with the next song. Add a second replay_gain
filter which is used for the song being faded in (chunk->other).
2010-05-02 18:21:16 +02:00
Max Kellermann
5399a72ec1
player_thread: move cross-fading to output thread
...
Remove cross_fade_apply(), and call pcm_mix() in the output thread,
mixing the chunk and chunk->other together.
2010-05-02 17:46:07 +02:00
Max Kellermann
d093fb2441
chunk: added attribute "other"
...
Preparation for cross-fading support in the output thread.
2010-05-02 17:46:06 +02:00
Max Kellermann
0140804ef9
output_thread: moved code to ao_filter_open(), ao_filter_close()
2010-05-02 17:38:16 +02:00
Max Kellermann
ecb5f68ba8
output_thread: moved filter invocation to ao_filter_chunk()
2010-05-02 17:34:35 +02:00
Max Kellermann
55bf242635
filter/replay_gain: removed duplicate *dest_size_r assignment
2010-05-02 17:34:27 +02:00
Daniel Seuthe
92e66e5ab2
replay_gain: added mode "auto"
2010-04-25 13:51:58 +02:00
Max Kellermann
cf3ada3d04
Merge branch 'master' of git://github.com/mcfiredrill/mpd
2010-04-20 21:16:39 +02:00
Max Kellermann
8d631b346a
inotify_update: start update when directory is created
...
This is useful at the maximum depth level, to update newly created
directories. It is however questionable if the hard-coded 5 seconds
delay is enough to create new directory trees with all of their files,
but we might make that delay configurable in the future.
2010-04-13 23:37:44 +02:00
Max Kellermann
393bcd961a
inotify: added setting "auto_update_depth"
...
Limits the depth of the watched directories. This is useful to keep
resource usage down and speed up MPD startup.
2010-04-13 21:31:57 +02:00
Max Kellermann
4d1eedbaa2
conf: added function config_get_unsigned()
2010-04-13 21:19:07 +02:00
Max Kellermann
a1a03deed2
decoder/mad: properly calculate ID3 size without libid3tag
...
Without libid3tag, we were trying to skip the ID3 frame (since
0.15.2). Its length however was not calculated at all, we were just
dropping everything from the current input buffer. This lead to the
first few seconds of the file being skipped. This patch attempts to
calculate the ID3v2 frame size with the formula from:
http://www.id3.org/id3v2.4.0-structure 3.1 and 6.2
2010-04-13 08:51:29 +02:00
Charles Kerr
6a95898038
decoder/ffmpeg: fix crash on startup in mpd_ffmpeg_log_callback()
...
What's happening is the `ptr' argument to that function is NULL for me
every time. `ptr' is unconditionally dereferenced to generate a log
message, and this is where mpd crashes.
Attached is a simple patch that tests for NULL and omits the log. With
this patch the crash disappeared and mpd went back to working well.
2010-04-11 19:18:30 +02:00
Tony Miller
9d55b16998
Decoder for game music emulation library.
...
Supports a number of videogame music formats, more info here:
http://www.fly.net/~ant/libs/audio.html
I wrote this plugin for the latest svn, get it here:
http://code.google.com/p/game-music-emu/source/checkout
2010-04-10 01:05:16 -07:00