aboutsummaryrefslogtreecommitdiffstats
path: root/src/OutputThread.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-01-13copyright year 2014Max Kellermann1-1/+1
2013-12-28pcm/PcmMix: improved ditheringMax Kellermann1-1/+1
Use the existing PcmDither library.
2013-12-24OutputThread: handle failing ReplayGainFilter::Open()Max Kellermann1-4/+10
Since opening the PcmVolume object can now fail, this case must be handled.
2013-11-25Volume, Output: use new class PeriodClock instead of GTimerMax Kellermann1-17/+8
2013-11-13PcmConvert: add methods Open(), Close()Max Kellermann1-4/+12
Replaces Reset() and eliminates the AudioFormat parameters from the Convert() method.
2013-11-06OutputControl: reduce the number of OutputThread wakeupsMax Kellermann1-1/+9
Wake up the OutputThread only if it hasn't already been woken up and if it isn't already in the playback loop.
2013-10-19*: use nullptr instead of NULLMax Kellermann1-41/+41
2013-10-17Thread/Thread: replacement library for GThreadMax Kellermann1-9/+6
2013-10-15gcc.h: rename to Compiler.hMax Kellermann1-1/+1
2013-10-02Log: new logging library APIMax Kellermann1-30/+30
Prepare to migrate away from GLib. Currently, we're still using GLib as a backend.
2013-09-26MusicPipe: expose the C++ APIMax Kellermann1-3/+3
2013-09-04util/Error: new error passing libraryMax Kellermann1-30/+24
Replaces GLib's GError.
2013-08-07Makefile.am: move sources to libsystem.aMax Kellermann1-1/+1
2013-08-07FatalError: new library to replace mpd_error.hMax Kellermann1-3/+2
2013-08-03audio_format: convert to C++Max Kellermann1-28/+24
2013-07-30tag: convert to C++Max Kellermann1-0/+1
2013-07-30output_api: convert to C++Max Kellermann1-1/+1
2013-07-30pcm_buffer: convert to C++Max Kellermann1-2/+1
2013-04-17use g_thread_new() if GLib is recent enoughMax Kellermann1-2/+5
Fixes deprecation warnings.
2013-04-17OutputInternal: use Mutex instead of GMutexMax Kellermann1-33/+30
2013-04-17output: convert to C++Max Kellermann1-5/+1
2013-04-09pcm_*: move to src/pcm/Max Kellermann1-1/+1
2013-02-02FilterInternal: convert struct filter to a OO interfaceMax Kellermann1-22/+20
2013-02-01filter: convert to C++Max Kellermann1-1/+1
2013-01-31pcm_*: convert to C++Max Kellermann1-1/+1
2013-01-30filter/convert: convert to C++Max Kellermann1-1/+1
2013-01-30{encoder,output}_api.h: allow compiling as C++Max Kellermann1-1/+1
2013-01-20PlayerControl: move functions into the classMax Kellermann1-1/+1
2013-01-10notify: convert to C++Max Kellermann1-2/+2
2013-01-07filter/replay_gain: convert to C++Max Kellermann1-1/+1
2013-01-04player_control.h: convert header to C++Max Kellermann1-1/+1
2013-01-04MusicChunk: move functions to methodsMax Kellermann1-2/+2
2013-01-04buffer, pipe: convert to C++Max Kellermann1-2/+3
2013-01-04output_*: convert to C++Max Kellermann1-13/+18
2012-09-25output: new option "tags" may be used to disable sending tagsMax Kellermann1-1/+1
Implements Mantis ticket 0003340.
2012-08-29decoder/mad, output_thread: add gcc_unlikely()Max Kellermann1-1/+1
2012-06-12audio-parser, output_thread: work around -Wmaybe-uninitializedMax Kellermann1-0/+5
False positives in gcc 4.7.
2011-10-20pcm_mix: return bool, make unimplemented format non-fatalMax Kellermann1-2/+6
Let the caller deal with a failure.
2011-10-10pcm_{mix,volume}: pass only sample_format to pcm_mix()Max Kellermann1-1/+1
The other audio_format attributes are not used.
2011-09-19output_plugin: the plugin allocates the audio_output objectMax Kellermann1-17/+14
Pass audio_output objects around instead of void pointers. This will give some more control to the plugin, and prepares for non-blocking audio outputs.
2011-09-01output_thread: reimplement CANCEL synchronizationMax Kellermann1-7/+1
The output thread could hang indefinitely after finishing CANCEL, because it could have missed the signal while the output was not unlocked in ao_command_finished(). This patch removes the wait() call after CANCEL, and adds the flag "allow_play" instead. While this flag is set, playback is skipped. With this flag, there will not be any excess wait() call after the pipe has been cleared. This patch fixes a bug that causes mpd to discontinue playback after seeking, due to the race condition described above.
2011-07-20output_thread: unlock the mutex while calling cancel()Max Kellermann1-1/+6
The method may take longer, and we shouldn't be holding the lock.
2011-03-16audio_format, output_thread: add more audio_format_valid() assertionsMax Kellermann1-0/+5
2011-01-29copyright year 2011Max Kellermann1-1/+1
2011-01-10include cleanupMax Kellermann1-0/+1
2011-01-10player_control: removed the global variable "pc"Max Kellermann1-1/+1
Allocate a player_control object where needed, and pass it around. Each "client" object is associated with a "player_control" instance. This prepares multi-player support.
2011-01-07output_thread: fix double lockMax Kellermann1-3/+0
During the whole output thread, the audio_output object is locked, and it is only unlocked while waiting for the GCond and while running a plugin method. The error handler in ao_play_chunk() attempted to lock the object again, which was code from MPD 0.15.x which should have been removed a long time ago.
2010-12-21add void casts to suppress "result unused" warnings (clang)Max Kellermann1-1/+1
2010-11-05output_plugin: add method delay()Max Kellermann1-0/+30
This method is used to reduce the delay of commands issued to the shout plugin.
2010-11-04output_thread: fix assertion failure due to race condition in OPENMax Kellermann1-1/+9
Change the assertion on "fail_timer==NULL" in OPEN to a runtime check. This assertion crashed when the output thread failed while the player thread was calling audio_output_open().