aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-06-04client: check "expired" flag again in client_write_output()Max Kellermann1-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.
2009-06-04client: added assertions on channel!=NULLMax Kellermann1-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.
2009-06-04decoder_plugin: corrected outdated API documentationMax Kellermann1-21/+22
2009-06-03conf: make config_param.num_block_params unsignedMax Kellermann2-5/+3
2009-06-03conf: eliminated CamelCaseMax Kellermann4-21/+22
Renamed all remaining CamelCase functions.
2009-06-02player_thread: check pipe size again before exitingMax Kellermann1-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.
2009-06-02player_thread: don't leak empty music_chunksMax Kellermann1-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.
2009-05-29player_thread: reinitialize music_buffer in !NDEBUGMax Kellermann1-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.
2009-05-29output_all: explicitly return "true" from audio_output_all_play()Max Kellermann1-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.
2009-05-28input/file: log message on errorMathieu Rochette1-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)]
2009-05-28volume: changed "default" to "DISABLED" in switch statementMax Kellermann1-1/+4
Make gcc warn us if we add a new mixer type, and forget to add a new "case" line.
2009-05-28volume: converted volume_mixer_type to an enumMax Kellermann1-5/+6
Don't use CPP macros when you can use C enums.
2009-05-28volume: removed unused macro "VOLUME_MIXER_SOFTWARE_DEFAULT"Max Kellermann1-1/+0
2009-05-28playlist: reset "current song" when playlist endsMax Kellermann1-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.
2009-05-11music_chunk: added more audio_format_valid() assertionsMax Kellermann1-0/+2
Check the validity of the audio_format during write operations.
2009-05-11music_pipe: added assertion on chunk->audio_formatMax Kellermann1-0/+1
Always assert that the audio format of the new chunk is valid.
2009-05-10latest git, httpd_output_plugin compile fix, mac os xPatrik Weiskircher1-0/+4
Hello, While compiling latest git I've received a compile error in the httpd_output_plugin. Small patch attached. Patrik
2009-05-07pcm_resample: fixed typo in libsamplerate runtime checkMax Kellermann1-1/+1
The string comparison should be "!= 0", not "== 0". Ouch.
2009-05-06player_control: assert that pc.next_song is NULL after seekingMax Kellermann1-0/+2
The player thread must reset pc.next_song after seeking, even if that operation has failed. This patch adds an assertion.
2009-05-06player_control: removed pc.error check from pc_seek()Max Kellermann1-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.
2009-05-06player_control: renamed playerSeek(), return boolMax Kellermann3-9/+15
Renamed playerSeek() to pc_seek() to get rid of CamelCase. Convert the return value to bool.
2009-05-06tag_id3: added support for the UFID frameMax Kellermann1-0/+40
If the UFID frame's owner is "http://musicbrainz.org", assume its value is the MusicBrainz track id.
2009-05-05httpd_output: save the page generated by encoder_tag()Max Kellermann1-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).
2009-05-05httpd_output: moved code to httpd_output_encoder_to_clients()Max Kellermann1-14/+32
Moved some code from httpd_output_encode_and_play() into separate functions httpd_output_broadcast_page() and httpd_output_encoder_to_clients().
2009-05-05httpd_output: disable Icy-Metadata when encoder supports tagsMax Kellermann3-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.
2009-05-05vorbis_encoder: start a new stream in tag()Max Kellermann1-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.
2009-05-05vorbis_encoder: moved code to vorbis_encoder_headerout()Max Kellermann1-5/+10
2009-05-05httpd_output: assert that tag!=NULLMax Kellermann1-8/+7
In the tag() method, MPD guarantees that it does not pass tag==NULL. Converted the runtime check to an assertion.
2009-05-04archive/zip: pass NULL instead of 0 to zzip_dir_open()Max Kellermann1-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).
2009-04-28output_init: added option to disable the hardware mixerMax Kellermann1-1/+2
Added the per-device option "mixer_enabled" which allows users to disable the hardware mixer of an audio output.
2009-04-28command: added "sticker delete" commandMax Kellermann1-0/+22
2009-04-28sticker: added sticker_delete_value()Max Kellermann4-0/+85
sticker_delete_value() deletes only one value in a sticker, while the old function sticker_delete() deletes all values.
2009-04-28song_save: don't call tag_free(NULL)Max Kellermann2-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().
2009-04-28libsamplerate: use g_ascii_strncasecmp() instead of strncasecmp()Max Kellermann1-1/+1
strncasecmp() is locale dependent, making it a bad choice for internal string comparisons.
2009-04-28command: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann1-1/+1
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
2009-04-28utils: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann1-1/+1
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
2009-04-28tag: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann2-3/+3
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
2009-04-28conf: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann1-2/+2
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
2009-04-28locate: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann1-4/+4
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
2009-04-28input_curl: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann1-7/+7
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
2009-04-28mad_decoder: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann1-4/+4
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
2009-04-28mp4ff_decoder: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann1-8/+9
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
2009-04-28alsa_mixer: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann1-2/+2
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
2009-04-28alsa_mixer: add mixer_index optionDaniel Kahn Gillmor1-2/+7
This allows you to select controls with duplicate names.
2009-04-26decoder_api: removed dc.pipe assertion from decoder_read()Max Kellermann1-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.
2009-04-25vorbis_encoder: reinitialize vorbis_dsp_state after flushMax Kellermann1-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.
2009-04-25decoder_control: properly cancel an existing command in dc_stop()Max Kellermann1-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).
2009-04-25decoder: added assertions on dc.pipeMax Kellermann2-0/+13
dc.pipe must be non-NULL while the decoder thread is running. Ensure that with a load of assertions.
2009-04-25client: use GTimer to track timeoutsMax Kellermann1-7/+14
2009-04-25playlist_control: use GTimer in previousSongInPlaylist()Max Kellermann3-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).