- 30 Oct, 2008 18 commits
-
-
Max Kellermann authored
Move code from ffmpeg_decode_internal() to make it smaller and more readable.
-
Max Kellermann authored
The decoder API provides the function decoder_seek_error() to report seek errors. Use this function instead of logging the error.
-
Max Kellermann authored
The function mpdurl_read() is too complicated, and uses the wrong data types.
-
Max Kellermann authored
tag objects must be freed with tag_free() to ensure that all resources are freed.
-
Max Kellermann authored
The function ffmpeg_tag() already has the variable base.tag, which can be used for this.
-
Max Kellermann authored
ffmpeg_try_decode() did not interpret ffmpeg_helper()'s return value properly; migrate everything to bool to make it consistent.
-
Max Kellermann authored
We don't need those anymore, they just fill the log.
-
Max Kellermann authored
ffmpeg_tag() did not initialize base.decoder, which made valgrind unhappy, and can lead to a egmentation fault.
-
Max Kellermann authored
Depending on MPD's umask, the file permissions of the unix socket were too restrictive, and many clients were not able to connect. Do a chmod(0666) on the socket, to allow everybody to connect.
-
Max Kellermann authored
Commit d692e9 broke configurations without explicit server or sink configuration. Check for getBlockParam()==NULL.
-
Richard Brown authored
calling aclocal -I PWD/m4 in autogen.sh, rather than aclocal -I m4 is causing autotools to to not include the m4 directory in the dist tarball. This makes it quite hard to regenerate aclocal/configure.
-
Max Kellermann authored
Similar to libmad, libmpcdec provides samples with higher quality than 16 bit. Send 24 bit samples to MPD, which allows MPD to apply dithering just in case the output devices are only 16 bit capable.
-
Max Kellermann authored
Don't hard-code the "16 bits" or "2 bytes" in multiple locations.
-
Max Kellermann authored
The name "s16" implies 16 bit integers. To make the code more generic, rename it to "dest".
-
Max Kellermann authored
The conversion of integer samples was completely broken, which presumably didn't annoy anybody because libmpcdec provides float samples on most installations.
-
Max Kellermann authored
When input_stream_seek() was converted to return a bool, this wasn't adjusted in the musepack plugin.
-
Max Kellermann authored
Don't return 0/-1 on success/error, but true/false. Instead of int, use bool for storing flags.
-
Max Kellermann authored
Its only caller in mp3_decode() just compared its value with DECODE_BREAK. Convert that to bool, and return false if the loop should be ended. Also eliminate some superfluous command checking code, which was already done in the preceding while loop.
-
- 29 Oct, 2008 22 commits
-
-
Max Kellermann authored
Since open() and play() close the device on error, we can simply check audio_output.open instead of audio_output.result after a call.
-
Max Kellermann authored
When one of several output devices failed, MPD tried to reopen it quite often, wasting a lot of resources. This patch adds a delay: wait 10 seconds before retrying. This might be changed to exponential delays later, but for now, it makes the problem go away.
-
Max Kellermann authored
Moved code from syncAudioDeviceStates() to audio_output_update().
-
Max Kellermann authored
Stopping an audio output device without cancelling its buffer doesn't make sense. Combine the two operations, which saves several cancel calls.
-
Max Kellermann authored
Don't allow users to open a file which is non-regular (e.g. pipes, devices).
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
Prefer GLib over utils.h.
-
Max Kellermann authored
-
Max Kellermann authored
When an output plugin fails to play a chunk, close it. This replaces various manual close() calls in nearly all plugins.
-
Max Kellermann authored
Don't return 0/-1 on success/error, but true/false. Instead of int, use bool for storing flags.
-
Max Kellermann authored
Instead of implementing another loop which calls audio_output_close() on all configured devices, simply call closeAudioDevice().
-
Max Kellermann authored
This variable is never read, and can be removed.
-
Max Kellermann authored
The pointer becomes invalid due to pa_simple_free(), which may lead to segmentation faults when the output is reopened later.
-
Max Kellermann authored
Use GLib allocation and logging functions.
-
Max Kellermann authored
-
Max Kellermann authored
When the decoder exited before the buffer has grown big enough ("buffer_before_play"), the player thread waited forever. Add an additional check which disables buffering as soon as the decoder exits.
-
Max Kellermann authored
Don't accept 24 bit audio. Force MPD to use 16 bit if anything other than 8 or 16 bit is selected.
-
Max Kellermann authored
The local variable "play_audio_format" is updated every time the player starts playing a new song. This way, we always know exactly which audio format is current. The old code broke when a new song had a different format: ob.audio_format is the format of the next song, not of the current one - using this caused breakage for the software volume control.
-
Max Kellermann authored
A decoder_flush() invocation was missing in the FLAC plugin, resulting in casual assertion failures due to a wrong assumption about the last chunk's audio format. It's much easier to remove that decoder_flush() function and make the decoder thread call ob_flush().
-
Max Kellermann authored
There are no callers which pass audio_format==NULL, and it shouldn't be allowed.
-
Max Kellermann authored
Request the next song from the playlist (by clearing pc.next_song) only if the player command is empty. If it is not, the player may be clearing the song that has already been queued, leading to an assertion failure.
-