aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* conf: handle fatal errors with GErrorMax Kellermann2009-09-243-54/+115
| | | | | | | Don't call g_error(), which will abort the process and dump core. This patch does not affect all the config_get_X() functions. These need some more refactoring.
* conf: splitted function config_param_free()Max Kellermann2009-09-241-4/+11
|
* cmdline: handle fatal errors with GErrorMax Kellermann2009-09-243-5/+30
| | | | Don't call g_error(), which will abort the process and dump core.
* listen: handle fatal errors with GErrorMax Kellermann2009-09-243-10/+29
| | | | Don't call g_error(), which will abort the process and dump core.
* update: splitted update.c into several sourcesMax Kellermann2009-09-245-770/+987
|
* update: pass const string to update_enqueue()Max Kellermann2009-09-243-14/+20
| | | | | Duplicate the path string within update.c, do not expect an allocated string as parameter.
* update: renamed directory_update_init() to update_enqueue()Max Kellermann2009-09-244-4/+4
|
* decoder/sidplay: free songlength data blob in error handlerMax Kellermann2009-09-241-3/+4
| | | | | When parsing the songlength database fails, the code forgot to free the memory allocated by the raw file data.
* decoder/sidplay: moved code to sidplay_load_songlength_db()Max Kellermann2009-09-241-29/+36
|
* decoder/sidplay: free GError objectsMax Kellermann2009-09-241-0/+2
| | | | | The caller is responsible fro freeing GError objects. That g_error_free() call was missing in two places.
* decoder/sidplay: pass GError** to g_file_get_contents()Max Kellermann2009-09-241-1/+2
| | | | | The error handler dereferences GError*, but did not retrieve that object from g_file_get_contents().
* cmdline: removed options --create-db and --no-create-dbMax Kellermann2009-09-203-27/+5
| | | | | Both options are deprecated, and should not be used anymore. Many users get confused by their presence.
* output/osx: fix the OS X 10.6 buildPatrik Weiskircher2009-09-201-0/+1
| | | | Include CoreServices/CoreServices.h.
* Merge branch 'v0.15.x'Max Kellermann2009-09-101-1/+1
|\ | | | | | | | | | | | | Conflicts: NEWS configure.ac doc/mpdconf.example
| * decoder/vorbis: revert "faster tag scanning with ov_test_callback()"Max Kellermann2009-09-101-1/+1
| | | | | | | | | | This patch made ov_time_total() unusable, and MPD did not know the duration of songs.
* | output/openal: support OpenAL plugin on Mac OS XSerge Ziryukin2009-09-071-0/+6
| |
* | output/openal: fix default device nameSerge Ziryukin2009-09-061-3/+3
| |
* | openal output pluginSerge Ziryukin2009-09-062-0/+271
| |
* | decoder/sidplay: support seekingMike Dawson2009-08-301-3/+34
| |
* | decoder/sidplay: implemented songlength databaseMike Dawson2009-08-301-0/+87
| | | | | | | | [mk: added autoconf test; fixed songlen_data_size type]
* | decoder/sidplay: subtunesMike Dawson2009-08-301-8/+125
| |
* | Merged release 0.15.3 from branch 'v0.15.x'Max Kellermann2009-08-303-2/+4
|\| | | | | | | | | | | | | Conflicts: NEWS configure.ac
| * decoder/vorbis: faster tag scanning with ov_test_callback()Rasmus Steinke2009-08-241-1/+1
| | | | | | | | | | | | | | | | | | 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-191-1/+2
| | | | | | | | | | | | | | 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-181-0/+1
| | | | | | | | Fix stuttering due to uninitialized variable.
* | decoder/mpg123: new decoder plugin based on libmpg123Max Kellermann2009-08-262-0/+214
| | | | | | | | | | | | | | | | Still missing: - seeking - tags - streaming - encodings other than MPG123_ENC_SIGNED_16
* | command: add "findadd" command.Anton Khirnov2009-08-253-0/+51
| |
* | decoder/vorbis: open file in "binary" modeGunnar Roth2009-08-251-1/+1
| | | | | | | | | | fopen change for win32 in tag dup of vorbis win32 adaption for head changes
* | output/recorder: new output plugin for recording radio streamsMax Kellermann2009-08-242-0/+218
| | | | | | | | | | | | | | | | | | The recorder plugin writes audio played by MPD to a file. This may be useful for recording radio streams. This implementation is incomplete, because support for tags is missing, and MPD should be able to record each track to a different file.
* | conf: removed the deprecated "error_file" optionMax Kellermann2009-08-242-2/+0
| | | | | | | | | | This option was deprecated by the 0.15 release. This patch makes this option invalid.
* | Merged release 0.15.2 from branch 'v0.15.x'Max Kellermann2009-08-159-71/+142
|\| | | | | | | | | | | | | Conflicts: NEWS configure.ac
| * output/shout: minimize the unpause latencyMax Kellermann2009-08-141-0/+7
| | | | | | | | | | 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-143-0/+20
| | | | | | | | | | | | 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-141-3/+8
| | | | | | | | | | 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-141-2/+6
| | | | | | | | The return value of map_directory_child_fs() must be freed.
| * decoder/flac: don't allocate cuesheet twice (memleak)Max Kellermann2009-08-141-4/+6
| | | | | | | | | | | | | | 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-141-1/+2
| | | | | | | | | | 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-221-14/+18
| | | | | | | | | | 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-221-6/+28
| | | | | | | | | | | | | | 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-191-0/+3
| | | | | | | | | | | | 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-181-1/+1
| | | | | | | | | | | | | | 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.
* | decoder_control: protect command, state with a mutexMax Kellermann2009-08-136-31/+241
| | | | | | | | | | | | Replace decoder_control.notify with decoder_control.mutex and decoder_control.cond. Lock the mutex on all accesses to decoder_control.command and decoder_control.state.
* | use daemon() when the C library provides itMike Frysinger2009-08-131-6/+18
| | | | | | | | | | | | | | For systems that cannot support fork() (like no-mmu Linux), use daemon() if it is available for the daemonizing code. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* | tag_id3: moved id3_genre_name() call to tag_id3_import_text()Max Kellermann2009-08-041-6/+6
| | | | | | | | | | The ID3_FRAME_GENRE field is queried only in tag_id3_import_text(). Don't pass the tag type to import_id3_string().
* | tag_id3: splitted function tag_id3_import_frame()Max Kellermann2009-08-041-119/+91
| | | | | | | | | | | | Splitted tag_id3_import_frame() into two specialized functions: tag_id3_import_text() and tag_id3_import_comment(). Use id3_frame_field() instead of directly accessing id3_frame.fields.
* | tag_id3: corrected parameter typesMax Kellermann2009-08-041-2/+3
| | | | | | | | | | Changed "int type" to "enum tag_type". Converted "int is_id3v1" to "bool".