aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* decoder_thread: change the fallback decoder name to "mad"Max Kellermann2009-10-112-1/+2
| | | | | | When there is no Content-Type response header, try the "mad" decoder plugin. It uesd to be named "mp3", and we forgot to change the fallback name in decoder_thread.c.
* input/curl: don't abort if a packet has only metadataMax Kellermann2009-10-112-20/+24
| | | | | | | | | When a received chunk of data has only icy-metadata, there was no usable data left for input_curl_read() to return, and thus it returned 0 bytes. "0" however is a special value for "end of file" or "error". This patch makes input_curl_read() read more data from the socket, until the read request can be fulfilled (or until there's really EOF).
* input/curl: moved code to fill_buffer()Max Kellermann2009-10-111-27/+40
|
* Modify version string to post-release version 0.15.5~gitAvuton Olrich2009-10-032-1/+4
|
* mpd version 0.15.4release-0.15.4Avuton Olrich2009-10-032-2/+2
|
* decoder/ffmpeg: use the "artist" tag if "author" is not presentMax Kellermann2009-09-302-2/+6
| | | | | | | Usually, we read our "artist" tag from ffmpeg's "author" tag. In some cases however (e.g. APE), this tag is named "artist". This patch implements a fallback: if no "author" is found, MPD tries to use "artist".
* decoder/faad: skip assertion failure on large ID3 tagsMax Kellermann2009-09-302-2/+7
| | | | | | When the ID3 tag in an AAC file is larger than the current buffer, the function decoder_buffer_consume() aborts. By using the new function decoder_buffer_skip() instead, we can safely skip the ID3 tag.
* decoder_buffer: added function decoder_buffer_skip()Max Kellermann2009-09-302-0/+36
|
* input/mms: fix G_LOG_DOMAIN valueSerge Ziryukin2009-09-201-1/+1
|
* output/osx: fix the OS X 10.6 buildPatrik Weiskircher2009-09-202-0/+3
| | | | Include CoreServices/CoreServices.h.
* doc/protocol: clarify "update"Max Kellermann2009-09-101-13/+8
| | | | | The update job id is positive. When used in a command list, MPD prints one job id for each "update" command.
* doc/mpdconf.example: additional comment signs for some parametersMax Kellermann2009-09-101-18/+18
| | | | | Add a second column of comment signs on some parameters which users shouldn't usually set, unless they know what they're doing.
* decoder/vorbis: revert "faster tag scanning with ov_test_callback()"Max Kellermann2009-09-102-1/+3
| | | | | This patch made ov_time_total() unusable, and MPD did not know the duration of songs.
* Modify version string to post-release version 0.15.4~gitAvuton Olrich2009-08-292-1/+4
|
* mpd version 0.15.3release-0.15.3Avuton Olrich2009-08-292-2/+2
|
* Document nextsong and nextsongid.Anton Khirnov2009-08-241-0/+18
|
* decoder/vorbis: faster tag scanning with ov_test_callback()Rasmus Steinke2009-08-242-1/+3
| | | | | | | | | using ov_test_callback with function CALLBACKS_STREAMONLY will cause scanning to stop after the comment field. ov_open (and ov_test) default to CALLBACKS_DEFAULT which scans the file structure causing a huge slowdown. The speed improvement is huge: It scanned my files around 10x faster This procedure has been recommended by monthy (main vorbis developer) and was said to be safe for scanning files.
* update: don't re-read unchanged container filesIgor Kuzmin2009-08-192-1/+3
| | | | | | | MPD checks if every flac (possibly other types as well) file contains cuesheet on every update, which produces unneeded I/O. My music collection is on NFS share, so it's quite noticeable. IMHO, it shouldn't re-read unchanged files, so I wrote simple patch to fix it.
* output_init: initialize the "pause" flagMax Kellermann2009-08-182-0/+3
| | | | Fix stuttering due to uninitialized variable.
* Modify version string to post-release version 0.15.3~gitAvuton Olrich2009-08-152-1/+4
|
* mpd version 0.15.2release-0.15.2Avuton Olrich2009-08-152-2/+2
|
* output/shout: minimize the unpause latencyMax Kellermann2009-08-142-0/+8
| | | | | During the pause loop, manually sleep for 500ms if shout_delay() returns a value greater than that. Don't exhaust libshout's buffer.
* output: fixed shout stuck pause bugMax Kellermann2009-08-144-0/+22
| | | | | | Explicitly make the output thread leave the ao_pause() loop. This patch is a workaround, and the "pause" flag is not managed in a thread-safe way, but that's good enough for now.
* directory: free empty directories after removing them (memleak)Max Kellermann2009-08-142-3/+9
| | | | | dirvec_delete() does not free the object, we have to call directory_free() afterwards.
* update: free temporary string in container scan (memleak)Max Kellermann2009-08-142-2/+7
| | | | The return value of map_directory_child_fs() must be freed.
* decoder/flac: don't allocate cuesheet twice (memleak)Max Kellermann2009-08-142-4/+7
| | | | | | | The function flac_cue_track() first calls FLAC__metadata_object_new(), then overwrites this pointer with FLAC__metadata_get_cuesheet(). This allocate two FLAC__StreamMetadata objects, but the first pointer is lost, and never freed.
* update: free empty path string (memleak)Max Kellermann2009-08-142-1/+3
| | | | | When you pass an empty string to directory_update_init(), it was not freed by update_task().
* decoder/flac: fixed indentation of flac_comment_value()Max Kellermann2009-07-221-19/+21
|
* decoder/flac: parse all replaygain tagsMax Kellermann2009-07-222-14/+19
| | | | | The FLAC replaygain parser used the "||" operator. This made the code stop after the first value which was found.
* decoder/flac: return early from flac_find_float_comment()Max Kellermann2009-07-221-21/+22
| | | | | When one metadata check fails, return quickly. This removes 2 levels of indent.
* decoder/flac: removed misplaced authorship commentMax Kellermann2009-07-221-1/+0
| | | | This belongs into "git annotate" or AUTHORS.
* mad: skip ID3 frames when libid3tag is disabledMax Kellermann2009-07-222-6/+30
| | | | | | | When libid3tag is disabled, the libmad decoder plugin is unable to identify ID3 frames. If the file starts with an (unidentified) ID3 frame, it assumes that the file is not a valid MP3 song. This patch solves this by adding minimal stubs for the ID3 functions.
* ape: added protection against large memory allocationsMax Kellermann2009-07-192-0/+4
| | | | | | The function tag_ape_load() retrieves a 32 bit unsigned integer from the input file, and passes it to g_malloc(). This is dangerous, and may be used for a denial of service attack on MPD.
* tag_ape: removed redundant length checkMax Kellermann2009-07-191-3/+4
| | | | | Extend the tagLen check after reading it. Removed the second (redundant) check after the subtraction.
* ape: check the tag size (fixes integer underflow)Max Kellermann2009-07-182-1/+3
| | | | | | | The expression "tagLen - size > 0" may result in an integer underflow and a buffer overflow, when "size" is larger than "tagLen". "size" is read from the input file, and must not be trusted. This patch changes the expression to "tagLen > size", which is a lot safer.
* configure.ac: fix the --enable-alsa help stringMax Kellermann2009-07-171-2/+1
| | | | --enable means "enable", not "disable".
* Modify version string to post-release version 0.15.2~gitAvuton Olrich2009-07-152-1/+4
|
* mpd version 0.15.1release-0.15.1Avuton Olrich2009-07-152-2/+2
|
* Makefile.am: disable test/run_encoder without pluginsMax Kellermann2009-07-151-1/+3
| | | | | If the encoder plugin API is disabled at compile time, don't compile test/run_encoder.c.
* NEWS: fixed typoMax Kellermann2009-07-141-1/+1
|
* configure.ac: fail when ffmpeg is enabled, but not foundMax Kellermann2009-07-141-7/+5
|
* output/httpd: removed duplicate sys/types.h includeMax Kellermann2009-07-141-4/+0
| | | | | The first patch by Patrick didn't work, because his "#ifdef HAVE_OSX" line would have required config.h.
* doc: documented the "shout" output plugin settingsMax Kellermann2009-07-061-0/+123
|
* doc: documented the "pulse" output plugin settingsMax Kellermann2009-07-061-0/+34
|
* doc: documented the "command" setting of the "pipe" output pluginMax Kellermann2009-07-061-0/+22
|
* decoder/flac: fix assertion failure in tag_free() callMax Kellermann2009-07-062-2/+3
| | | | | | Initialize flac_data.tag right after flac_data_init(). This way, the "goto fail" won't jump to the point where tag_free(NULL) can be called.
* output/httpd: include sys/types.hMax Kellermann2009-07-062-0/+3
| | | | | | On Mac OS X, the httpd plugin cannot be compiled, because OS X's system headers do nto include sys/types.h, although they use u_int32_t.
* song: initialize mtime in song_alloc()Max Kellermann2009-07-061-0/+1
|
* log: fix double free() bug during shutdownMax Kellermann2009-07-052-6/+3
| | | | | Don't free an internal configuration value in log_init(). Call config_get_path() instead of manually calling parsePath().
* database: fixed NULL pointer dereference after charset changeMax Kellermann2009-06-302-4/+6
| | | | | | | When the filesystem_charset is changed in mpd.conf, MPD should discard the old database. In this error branch, MPD did not fill the GError object properly, and logged a warning message instead, which caused a segmentation fault.