aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* 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.
* Modify version string to post-release version 0.15~gitAvuton Olrich2009-04-301-1/+1
|
* mpd version 0.15~beta1release-0.15_beta1Avuton Olrich2009-04-301-1/+1
|
* Makefile.am: ship DocBook sources even when documentation is disabledMax Kellermann2009-04-301-2/+2
|
* configure: Fix where mikmod was not explicitly disabled.Avuton Olrich2009-04-291-1/+1
|
* configure: Fix where mp4 was not explicitly disabled.Avuton Olrich2009-04-291-1/+3
|
* scripts: Remove mpd.spec, it was always half-baked.Avuton Olrich2009-04-293-98/+1
| | | | | Remove mpd.spec and makerpm.sh. It was never used or maintained and the distributors take care of this kinda thing now anyhow.
* output_init: added option to disable the hardware mixerMax Kellermann2009-04-282-1/+13
| | | | | Added the per-device option "mixer_enabled" which allows users to disable the hardware mixer of an audio output.
* command: added "sticker delete" commandMax Kellermann2009-04-282-0/+40
|
* sticker: added sticker_delete_value()Max Kellermann2009-04-284-0/+85
| | | | | sticker_delete_value() deletes only one value in a sticker, while the old function sticker_delete() deletes all values.
* song_save: don't call tag_free(NULL)Max Kellermann2009-04-282-1/+4
| | | | | | When a song was in the database twice (which shouldn't happen), and the first song had no tag items, MPD calledd tag_free(NULL). Add a check to that source location, and an assertion to tag_free().
* clean up documentation of mixer options.Daniel Kahn Gillmor2009-04-281-15/+23
|
* libsamplerate: use g_ascii_strncasecmp() instead of strncasecmp()Max Kellermann2009-04-281-1/+1
| | | | | strncasecmp() is locale dependent, making it a bad choice for internal string comparisons.
* command: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann2009-04-281-1/+1
| | | | | strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
* utils: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann2009-04-281-1/+1
| | | | | strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
* tag: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann2009-04-282-3/+3
| | | | | strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
* conf: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann2009-04-281-2/+2
| | | | | strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
* locate: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann2009-04-281-4/+4
| | | | | strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
* input_curl: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann2009-04-281-7/+7
| | | | | strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
* mad_decoder: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann2009-04-281-4/+4
| | | | | strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
* mp4ff_decoder: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann2009-04-281-8/+9
| | | | | strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
* alsa_mixer: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann2009-04-281-2/+2
| | | | | strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
* alsa_mixer: add mixer_index optionDaniel Kahn Gillmor2009-04-284-2/+16
| | | | This allows you to select controls with duplicate names.
* Makefile.am: moved doxygen invocation out of HAVE_XMLTOMax Kellermann2009-04-261-3/+3
| | | | | The doxygen invocation was misplaced: it was only defined when xmlto is available.
* decoder_api: removed dc.pipe assertion from decoder_read()Max Kellermann2009-04-261-1/+0
| | | | | | Database update was broken due to the dc.pipe!=NULL assertion. This assertion is only valid while MPD decodes a song, not during database update.
* vorbis_encoder: reinitialize vorbis_dsp_state after flushMax Kellermann2009-04-251-0/+7
| | | | | | | libvorbis goes into a very long loop if we try to add data after a flush was invoked by vorbis_analysis_wrote(0). This seems to be a problem with the internal end-of-stream marker. Thus, we cannot reuse the vorbis_dsp_state object.
* decoder_control: properly cancel an existing command in dc_stop()Max Kellermann2009-04-251-2/+8
| | | | | | | When the decoder thread has a pending command, send the STOP command to cancel this command. Send STOP again if the decoder thread is still running after that, just in case the decoder thread has executed the previous command (which was overwritten).
* decoder: added assertions on dc.pipeMax Kellermann2009-04-252-0/+13
| | | | | dc.pipe must be non-NULL while the decoder thread is running. Ensure that with a load of assertions.
* client: use GTimer to track timeoutsMax Kellermann2009-04-251-7/+14
|
* playlist_control: use GTimer in previousSongInPlaylist()Max Kellermann2009-04-253-6/+15
| | | | | To determine whether to rewind the current song or to go to the previous song, use a GTimer instead of manually diffing time(NULL).
* pulse_mixer: use PULSE's mainloop lock instead of GMutexMax Kellermann2009-04-251-27/+13
| | | | | | Using two different kinds of locks may result in a race condition with a deadlock. The libpulse callbacks need no locks at all, because the mainloop object can be assumed to be already locked.
* curl: moved proxy settings to "input" blockMax Kellermann2009-04-255-47/+72
| | | | | The old global settings "http_proxy_host", "http_proxy_port", "http_proxy_user" and "http_proxy_password" continue to work.
* doc: added input plugin documentationMax Kellermann2009-04-251-0/+93
|
* doc: added decoder documentationMax Kellermann2009-04-251-0/+56
|
* doc: added more audio output documentationMax Kellermann2009-04-251-1/+63
|
* Makefile.am: moved source files to $(TAG_SRC)Max Kellermann2009-04-251-13/+25
| | | | | $(TAG_SRC) contains the names of all tag reader source files. Some of these are required for test/run_decoder.
* INSTALL: added libcue dependencyMax Kellermann2009-04-251-0/+3
|
* fluidsynth: added "experimental" comments in the source fileMax Kellermann2009-04-252-1/+10
|
* player_thread: pause when all audio outputs fail to playMax Kellermann2009-04-252-2/+8
| | | | | | When all audio outputs have been closed due to failures, pause the playback instead of stopping it. This way, the user may resume at the current position after the problem has been dealt with.
* player_thread: pause when output fails while seekingMax Kellermann2009-04-251-7/+11
| | | | | | | | | When no audio outputs could be opened while seeking, leave MPD seeked at that position and pause playback. The user may continue from this point at any time, as soon as the audio outputs are fixed. The old behaviour triggered an assertion failure: the failure wasn't passed properly to the do_play() function, which attempted to play audio chunks.
* stored_playlist: don't close NULL file on errorMax Kellermann2009-04-241-5/+1
| | | | | spl_append_song() can crash when fopen() fails, because it attempts to close the invalid file handle (NULL) in the error handler.