- 30 Oct, 2008 10 commits
-
-
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 30 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.
-
Max Kellermann authored
Call ob_clear() in decoder_command_finished() instead of implementing that call in every decoder plugin.
-
Max Kellermann authored
Remember the seek_where argument and call decoder_command_finished() immediately. This way, the player thread can continue working, and we can receive more commands. This also fixes several issues which resulted in broken frames, leading to erroneos "elapsed" values: frames weren't parsed properly, since the code was checking for command!=NONE.
-
Max Kellermann authored
Previously, the function would only return when a STOP was issued. It makes more sense to consider all possible commands.
-
Max Kellermann authored
Break the large function mp3_read() into smaller pieces.
-
Max Kellermann authored
Break the large function mp3_read() into smaller pieces.
-
Max Kellermann authored
Break the large function mp3_read() into smaller pieces.
-
Max Kellermann authored
Break the large function mp3_read() into smaller pieces.
-
Max Kellermann authored
Break the large function mp3_read() into smaller pieces.
-