Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | decoder/mp4ff: move mp4ff_callback_t into mp4ff_input_stream | Max Kellermann | 2010-05-31 | 1 | -12/+15 |
| | | | | Allocate only one item on the stack. | ||||
* | decoder/mp4ff: rename mp4_context to mp4ff_input_stream | Max Kellermann | 2010-05-31 | 1 | -9/+9 |
| | |||||
* | decoder/mp4ff: remove duplicate entries in the tag name table | Max Kellermann | 2010-05-31 | 1 | -9/+5 |
| | | | | Reuse the function tag_name_parse_i(). | ||||
* | decoder/mp4ff: moved code to mp4ff_tag_name_parse() | Max Kellermann | 2010-05-31 | 1 | -1/+7 |
| | |||||
* | tag_ape: remove duplicate entries in the tag name table | Max Kellermann | 2010-05-31 | 1 | -13/+5 |
| | | | | Reuse the function tag_name_parse_i(). | ||||
* | tag_ape: move code to tag_ape_name_parse() | Max Kellermann | 2010-05-31 | 1 | -1/+7 |
| | |||||
* | decoder/vorbis: rename local variable "ret" | Max Kellermann | 2010-05-31 | 1 | -6/+5 |
| | |||||
* | decoder/vorbis: implement method stream_tag() | Max Kellermann | 2010-05-31 | 1 | -11/+4 |
| | | | | This allows tags in archive files. | ||||
* | decoder/vorbis: move code to vorbis_open_stream() | Max Kellermann | 2010-05-31 | 1 | -19/+23 |
| | |||||
* | decoder/vorbis: use single global ov_callbacks constant | Max Kellermann | 2010-05-30 | 1 | -6/+9 |
| | | | | Initialize the ov_callbacks struct at compile time. | ||||
* | decoder/vorbis: rename struct vorbis_decoder_data to vorbis_is | Max Kellermann | 2010-05-30 | 1 | -20/+19 |
| | |||||
* | inotify_update: follow symlinks | Max Kellermann | 2010-05-30 | 1 | -2/+1 |
| | | | | | | This is probably unsafe, and doesn't protect against symlink loops, but we will eventually add this when we bring update*.c and inotify*.c closer together. | ||||
* | inotify_update: fix assertion failure when music dir is deleted | Max Kellermann | 2010-05-30 | 1 | -1/+7 |
| | | | | | | | | This shouldn't really happen, but insane users might delete/rename the music directory while MPD runs. What was even more insane was that MPD crashed due to this. This is a workaround - there is currently nothing useful we can do in this case; except maybe poll for the music directory to reappear, but that's too much trouble for a user error. | ||||
* | decoder/mp4ff: support tags "albumartist", "band" | Max Kellermann | 2010-05-30 | 1 | -0/+2 |
| | | | | | I'm not sure if mapping "band" to TAG_PERFORMER is correct, but it might be better than nothing. | ||||
* | decoder/mp4ff: use tag_table.h to parse tag names | Max Kellermann | 2010-05-30 | 1 | -18/+15 |
| | | | | Convert if/else/else/... to a loop. | ||||
* | decoder/mp4ff: rename plugin "mp4" to "mp4ff" | Max Kellermann | 2010-05-30 | 1 | -1/+1 |
| | | | | | The underlying library is named "libmp4ff". To reduce confusion, rename the plugin to a more specific name. | ||||
* | tag_ape: move table lookup to tag_table.h | Max Kellermann | 2010-05-30 | 2 | -9/+52 |
| | | | | Allow code sharing. | ||||
* | tag_ape: support album artist, MusicBrainz tags | Max Kellermann | 2010-05-30 | 1 | -1/+8 |
| | | | | | | | | | | 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. | ||||
* | Merge release 0.15.10 from branch 'v0.15.x' | Max Kellermann | 2010-05-30 | 2 | -5/+28 |
|\ | | | | | | | | | | | | | Conflicts: NEWS configure.ac src/input/mms_input_plugin.c | ||||
| * | decoder/mad: fix buffer variable name on !HAVE_ID3TAG | Max Kellermann | 2010-05-30 | 1 | -3/+3 |
| | | |||||
| * | input/mms: initialize the "eof" attribute | Max Kellermann | 2010-05-18 | 1 | -0/+2 |
| | | |||||
| * | input/mms: fix memory leak in error handler | Max Kellermann | 2010-05-18 | 1 | -0/+1 |
| | | |||||
| * | decoder/mad: properly calculate ID3 size without libid3tag | Max Kellermann | 2010-04-13 | 1 | -5/+25 |
| | | | | | | | | | | | | | | | | | | | | 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 | ||||
* | | filter/replay_gain: added option "replaygain_limit" | Daniel Seuthe | 2010-05-30 | 8 | -14/+26 |
| | | |||||
* | | cmdline: Add default config paths for win32. | Avuton Olrich | 2010-05-20 | 1 | -1/+38 |
| | | |||||
* | | output/win32: new output plugin for Windows Wave | Max Kellermann | 2010-05-20 | 2 | -0/+300 |
| | | |||||
* | | pcm_buffer: 8 kB alignment instead of 64 kB | Max Kellermann | 2010-05-20 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | 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. | ||||
* | | tag_{id3,ape}: explicitly open files in binary mode | Max Kellermann | 2010-05-20 | 2 | -2/+2 |
| | | | | | | | | Add the flag "b" to fopen(). Windows compatibility. | ||||
* | | input/file, output/{fifo,recorder}: add O_BINARY to open() flags | Max Kellermann | 2010-05-20 | 4 | -7/+49 |
| | | | | | | | | Windows compatibility. | ||||
* | | client: use sprintf() on WIN32 | Max Kellermann | 2010-05-19 | 1 | -0/+13 |
| | | | | | | | | | | | | 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(). | ||||
* | | event_pipe: use g_io_channel_read_chars() to drain the pipe | Max Kellermann | 2010-05-19 | 1 | -6/+14 |
| | | | | | | | | | | | | | | 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. | ||||
* | | event_pipe: call g_io_channel_win32_new_fd() | Max Kellermann | 2010-05-19 | 1 | -0/+5 |
| | | | | | | | | | | | | 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. | ||||
* | | update_walk: don't check recursive symlinks on WIN32 | Max Kellermann | 2010-05-19 | 1 | -0/+8 |
| | | | | | | | | | | inode numbers don't work on WIN32, and very few WIN32 users actually use symlinks - seems ok to disable that check. | ||||
* | | crossfade: emulate strtok_r() on WIN32 with a function | Max Kellermann | 2010-05-18 | 1 | -1/+5 |
| | | | | | | | | | | Not a CPP macro. This adds the "unused" attribute to "saveptr", which eliminates one gcc warning. | ||||
* | | command: fallback strftime() formats on WIN32 | Max Kellermann | 2010-05-18 | 2 | -3/+11 |
| | | | | | | | | On WIN32, "%F" and "%T" are not implemented. | ||||
* | | socket_util: fix setsockopt() argument type on WIN32 | Max Kellermann | 2010-05-18 | 1 | -1/+7 |
| | | | | | | | | | | In the winsock headers, the setsockopt() argument is declared as "const char *", not "const void *". | ||||
* | | daemon: include glib.h on WIN32 for g_error() | Max Kellermann | 2010-05-18 | 1 | -0/+1 |
| | | |||||
* | | fd_util: fd_set_cloexec() returns a value on WIN32 | Max Kellermann | 2010-05-18 | 1 | -0/+2 |
| | | | | | | | | This function is empty on WIN32, but we need to return a value. | ||||
* | | input/ffmpeg: new input plugin using libavformat's "avio" library | Max Kellermann | 2010-05-18 | 5 | -0/+217 |
| | | |||||
* | | input/mms: removed empty method buffer() | Max Kellermann | 2010-05-18 | 1 | -8/+0 |
| | | | | | | | | | | input_stream_buffer() has a check for "buffer==NULL", so we don't need an explicit empty implementation. | ||||
* | | decoder_api: return effective replay gain | Daniel Seuthe | 2010-05-18 | 1 | -1/+1 |
| | | | | | | | | | | Pay attention to the ReplayGain mode "auto" and the replay_gain_missing_preamp parameter inside of decoder_replay_gain(). | ||||
* | | replay_gain_config: added function replay_gain_get_real_mode() | Daniel Seuthe | 2010-05-18 | 3 | -11/+21 |
| | | |||||
* | | output/oss: 24 bit support via OSS4 | Max Kellermann | 2010-05-14 | 1 | -0/+34 |
| | | | | | | | | Added #ifdefs on the macros AFMT_S24_NE and other OSS4 extensions. | ||||
* | | output/oss: rewrite of the audio format detection | Max Kellermann | 2010-05-13 | 1 | -301/+324 |
| | | | | | | | | | | Removed the "supported" / "unsupported" arrays, and auto-detect on every open() call, just like the ALSA output plugin. | ||||
* | | output/oss: use the *_NE macros | Max Kellermann | 2010-05-13 | 1 | -8/+2 |
| | | | | | | | | Removed the macro AFMT_S16_MPD. | ||||
* | | AudioCompress: include stdint.h for int16_t definition. | Avuton Olrich | 2010-05-11 | 1 | -1/+1 |
| | | | | | | | | | | | | 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. | ||||
* | | client_new: Send greeting using send() rather than write(). | Avuton Olrich | 2010-05-08 | 1 | -1/+7 |
| | | | | | | | | This is portable for win32 and fixes client logins there. | ||||
* | | mixramp: Remove maths from pcm_mix when using MixRamp overlaps. | Tim Phipps | 2010-05-08 | 2 | -22/+104 |
| | | |||||
* | | mixramp: Adjust MixRamp threshold to account for ReplayGain. | Tim Phipps | 2010-05-08 | 10 | -12/+42 |
| | | |||||
* | | log: /dev/null doesn't exist on win32. | Avuton Olrich | 2010-05-08 | 1 | -0/+2 |
| | |