aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* decoder_thread: reopen the stream after file_decode() has failedMax Kellermann2009-06-191-0/+11
| | | | | | | | | When decoding a local file, the decoder thread tries to run all matching decoders, until one succeeds. Both file_decode() and stream_decode() can decode a stream, but MPD closes the stream before calling file_decode(). Problem is: when this decoder fails, and the next's stream_decode() method is invoked, the input_stream is still closed. This patch reopens it.
* listen: bind() failure on secondary address is non-fatalMax Kellermann2009-06-102-3/+26
| | | | | | | | | Several users had problems with binding MPD to "localhost". The cause was duplicate /etc/hosts entries: the resolver library returns 127.0.0.1 twice, and of course, MPD attempts to bind to "both" of them. This patch makes failures non-fatal, given that at least one address was bound successfully. This is a workaround; users should rather fix their /etc/hosts file.
* listen: renamed "error" to "error_r" in listen_add_host()Max Kellermann2009-06-101-4/+4
|
* listen: print debug message before bind()Max Kellermann2009-06-101-0/+7
| | | | Dump each socket address before binding to it.
* doc: refer to command_list_ok_begin, not command_list_beginMax Kellermann2009-06-091-1/+1
| | | | list_OK is returned only after command_list_ok_begin.
* doc: fixed a typo in the protocol documentationMax Kellermann2009-06-091-1/+1
|
* ffmpeg: moved code to ffmpeg_copy_metadata()Max Kellermann2009-06-081-33/+18
|
* ffmpeg: removed "new metadata api" warningMax Kellermann2009-06-081-2/+0
| | | | | This warning is useless. I assume the author added it for debugging purposes.
* client: check "expired" flag again in client_write_output()Max Kellermann2009-06-041-0/+3
| | | | | | | When client_defer_output() aborts the connection to the client, client_write_output() called client_write_deferred() anyway. This caused an assertion failure. Fix it by checking for the "expired" flag again after client_defer_output() returns.
* client: added assertions on channel!=NULLMax Kellermann2009-06-041-0/+10
| | | | | | I'm hunting down a bug where client->channel==NULL during I/O operations. These new assertions help avoid this kind of bug in the future.
* decoder_plugin: corrected outdated API documentationMax Kellermann2009-06-041-21/+22
|
* conf: make config_param.num_block_params unsignedMax Kellermann2009-06-032-5/+3
|
* conf: eliminated CamelCaseMax Kellermann2009-06-035-23/+24
| | | | Renamed all remaining CamelCase functions.
* doc: mark the "User's Manual" as incompleteMax Kellermann2009-06-021-0/+2
|
* doc: added Developer's ManualMax Kellermann2009-06-023-1/+111
| | | | Just a start...
* doc: added "since MPD version" to commandsMax Kellermann2009-06-021-4/+17
| | | | Document which commands were introduced after MPD 0.13.
* player_thread: check pipe size again before exitingMax Kellermann2009-06-021-1/+5
| | | | | | When the decoder is finished, break out of the player loop only after another player.pipe check. We did check the pipe size a few lines above, but that check was kind of racy.
* player_thread: don't leak empty music_chunksMax Kellermann2009-06-021-1/+3
| | | | | | | When a music_chunk only contains a tag but no PCM data, play_chunk() returns true without freeing the chunk. The caller now assumes that the chunk is moved into some music_pipe and does not bother to free it either.
* player_thread: reinitialize music_buffer in !NDEBUGMax Kellermann2009-05-291-0/+9
| | | | | | To check for leaked music_chunk objects, free the music buffer on CLOSE_AUDIO. This invokes an assertion check which ensures that all chunks have been returned to the buffer.
* output_all: explicitly return "true" from audio_output_all_play()Max Kellermann2009-05-291-1/+1
| | | | | | Instead of returning the local variable "ret" which is always true at this point, hard-code the "true" return value, because that might be more readable.
* input/file: log message on errorMathieu Rochette2009-05-281-0/+2
| | | | | | | | If a file is removed the library, next time mpd will try to play it it will result in an error 'ERROR: problems decoding some/file.ogg'. Nothing is written in log files (verbose mode or not) [mk: append strerror(errno)]
* volume: changed "default" to "DISABLED" in switch statementMax Kellermann2009-05-281-1/+4
| | | | | Make gcc warn us if we add a new mixer type, and forget to add a new "case" line.
* added doc/sticker to .gitignoreMax Kellermann2009-05-281-0/+1
|
* volume: converted volume_mixer_type to an enumMax Kellermann2009-05-281-5/+6
| | | | Don't use CPP macros when you can use C enums.
* volume: removed unused macro "VOLUME_MIXER_SOFTWARE_DEFAULT"Max Kellermann2009-05-281-1/+0
|
* playlist: reset "current song" when playlist endsMax Kellermann2009-05-281-0/+3
| | | | | | Commit f78cddb4 introduced a regression: when the playlist reached its end, MPD did not reset the "current song" pointer anymore after stop. Add a "current = -1" code line.
* Incorrect identifying of --with-tremor option in configure.acVictor A. Safronov2009-05-261-3/+9
| | | | [mk: moved check out of the AC_ARG_WITH block]
* configure.ac: use $FAAD_LIBS in libmp4ff checkMax Kellermann2009-05-261-1/+1
| | | | | Append $FAAD_LIBS to $LIBS when detecting libmp4ff. $FAAD_LIBS may contain an important -L flag.
* doc: fixed DocBook markup in doc/sticker.xmlMax Kellermann2009-05-152-43/+56
| | | | | The old sticker.xml used elements which are not valid in DocBook. Now that the file is valid, let's add it to $(DOCBOOK_FILES).
* Makefile.am: added doc/doxygen.conf to $(EXTRA_DIST)Max Kellermann2009-05-151-1/+1
|
* configure.ac: removed the --disable-lametest optionMax Kellermann2009-05-151-9/+0
| | | | | | | | The M4 function AM_PATH_LAME (m4/lame.m4) defined a configure flag named "--disable-lametest". This is redundant with configure.ac's --disable-lame-encoder, and specifying both options may break the build. Since AM_PATH_LAME is only called when the encoder plugin is enabled, we can safely remove that --disable-lametest option.
* music_chunk: added more audio_format_valid() assertionsMax Kellermann2009-05-111-0/+2
| | | | Check the validity of the audio_format during write operations.
* music_pipe: added assertion on chunk->audio_formatMax Kellermann2009-05-111-0/+1
| | | | Always assert that the audio format of the new chunk is valid.
* latest git, httpd_output_plugin compile fix, mac os xPatrik Weiskircher2009-05-101-0/+4
| | | | | | | | | | Hello, While compiling latest git I've received a compile error in the httpd_output_plugin. Small patch attached. Patrik
* Modify version string to post-release version 0.15~gitAvuton Olrich2009-05-081-1/+1
|
* mpd version 0.15~beta2release-0.15_beta2Avuton Olrich2009-05-081-1/+1
|
* pcm_resample: fixed typo in libsamplerate runtime checkMax Kellermann2009-05-071-1/+1
| | | | The string comparison should be "!= 0", not "== 0". Ouch.
* player_control: assert that pc.next_song is NULL after seekingMax Kellermann2009-05-061-0/+2
| | | | | The player thread must reset pc.next_song after seeking, even if that operation has failed. This patch adds an assertion.
* player_control: removed pc.error check from pc_seek()Max Kellermann2009-05-061-6/+3
| | | | | | The only pc_seek() caller clears the error, rendering the check useless. Even if the previous PLAY command resulted in a player error, this check is not very useful.
* player_control: renamed playerSeek(), return boolMax Kellermann2009-05-063-9/+15
| | | | | Renamed playerSeek() to pc_seek() to get rid of CamelCase. Convert the return value to bool.
* tag_id3: added support for the UFID frameMax Kellermann2009-05-061-0/+40
| | | | | If the UFID frame's owner is "http://musicbrainz.org", assume its value is the MusicBrainz track id.
* test/run_encoder: flush the encoder before exitingMax Kellermann2009-05-051-5/+21
|
* httpd_output: save the page generated by encoder_tag()Max Kellermann2009-05-051-0/+21
| | | | | | | | Flush the encoder before calling encoder_tag(). The first page generated by the encoder after sending the tag will be the new "header" page, which is sent to all HTTP clients when they connect. This is a little bit specific to the vorbis encoder, but there are no other encoders which support tags (yet).
* httpd_output: moved code to httpd_output_encoder_to_clients()Max Kellermann2009-05-051-14/+32
| | | | | | Moved some code from httpd_output_encode_and_play() into separate functions httpd_output_broadcast_page() and httpd_output_encoder_to_clients().
* httpd_output: disable Icy-Metadata when encoder supports tagsMax Kellermann2009-05-053-18/+35
| | | | | | There's no reason to send both encoder tags and Icy-Metadata to the client. Let's disable Icy-Metadata when the encoder supports embedded tags.
* vorbis_encoder: start a new stream in tag()Max Kellermann2009-05-051-6/+9
| | | | | | | When a new tag is set, end the current stream and begin a new one. Use vorbis_analysis_headerout() to write a full ogg header. This fixes a problem with icecast: after a song change in MPD, icecast stops forwarding ogg packets to its clients.
* vorbis_encoder: moved code to vorbis_encoder_headerout()Max Kellermann2009-05-051-5/+10
|
* httpd_output: assert that tag!=NULLMax Kellermann2009-05-051-8/+7
| | | | | In the tag() method, MPD guarantees that it does not pass tag==NULL. Converted the runtime check to an assertion.
* archive/zip: pass NULL instead of 0 to zzip_dir_open()Max Kellermann2009-05-041-2/+2
| | | | | The second parameter of zzip_dir_open() is a pointer. Pass the NULL pointer instead of 0 (with implicit conversion at compile time).
* Makefile.am: run sparse once with all sourcesMax Kellermann2009-05-041-4/+1
| | | | Don't loop over source files, do all checks in one run.