Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2013-11-06 | OutputControl: reduce the number of OutputThread wakeups | Max Kellermann | 1 | -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 NULL | Max Kellermann | 1 | -41/+41 | |
2013-10-17 | Thread/Thread: replacement library for GThread | Max Kellermann | 1 | -9/+6 | |
2013-10-15 | gcc.h: rename to Compiler.h | Max Kellermann | 1 | -1/+1 | |
2013-10-02 | Log: new logging library API | Max Kellermann | 1 | -30/+30 | |
Prepare to migrate away from GLib. Currently, we're still using GLib as a backend. | |||||
2013-09-26 | MusicPipe: expose the C++ API | Max Kellermann | 1 | -3/+3 | |
2013-09-04 | util/Error: new error passing library | Max Kellermann | 1 | -30/+24 | |
Replaces GLib's GError. | |||||
2013-08-07 | Makefile.am: move sources to libsystem.a | Max Kellermann | 1 | -1/+1 | |
2013-08-07 | FatalError: new library to replace mpd_error.h | Max Kellermann | 1 | -3/+2 | |
2013-08-03 | audio_format: convert to C++ | Max Kellermann | 1 | -28/+24 | |
2013-07-30 | tag: convert to C++ | Max Kellermann | 1 | -0/+1 | |
2013-07-30 | output_api: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-07-30 | pcm_buffer: convert to C++ | Max Kellermann | 1 | -2/+1 | |
2013-04-17 | use g_thread_new() if GLib is recent enough | Max Kellermann | 1 | -2/+5 | |
Fixes deprecation warnings. | |||||
2013-04-17 | OutputInternal: use Mutex instead of GMutex | Max Kellermann | 1 | -33/+30 | |
2013-04-17 | output: convert to C++ | Max Kellermann | 1 | -5/+1 | |
2013-04-09 | pcm_*: move to src/pcm/ | Max Kellermann | 1 | -1/+1 | |
2013-02-02 | FilterInternal: convert struct filter to a OO interface | Max Kellermann | 1 | -22/+20 | |
2013-02-01 | filter: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-01-31 | pcm_*: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-01-30 | filter/convert: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-01-30 | {encoder,output}_api.h: allow compiling as C++ | Max Kellermann | 1 | -1/+1 | |
2013-01-20 | PlayerControl: move functions into the class | Max Kellermann | 1 | -1/+1 | |
2013-01-10 | notify: convert to C++ | Max Kellermann | 1 | -2/+2 | |
2013-01-07 | filter/replay_gain: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-01-04 | player_control.h: convert header to C++ | Max Kellermann | 1 | -1/+1 | |
2013-01-04 | MusicChunk: move functions to methods | Max Kellermann | 1 | -2/+2 | |
2013-01-04 | buffer, pipe: convert to C++ | Max Kellermann | 1 | -2/+3 | |
2013-01-04 | output_*: convert to C++ | Max Kellermann | 1 | -13/+18 | |
2012-09-25 | output: new option "tags" may be used to disable sending tags | Max Kellermann | 1 | -1/+1 | |
Implements Mantis ticket 0003340. | |||||
2012-08-29 | decoder/mad, output_thread: add gcc_unlikely() | Max Kellermann | 1 | -1/+1 | |
2012-06-12 | audio-parser, output_thread: work around -Wmaybe-uninitialized | Max Kellermann | 1 | -0/+5 | |
False positives in gcc 4.7. | |||||
2011-10-20 | pcm_mix: return bool, make unimplemented format non-fatal | Max Kellermann | 1 | -2/+6 | |
Let the caller deal with a failure. | |||||
2011-10-10 | pcm_{mix,volume}: pass only sample_format to pcm_mix() | Max Kellermann | 1 | -1/+1 | |
The other audio_format attributes are not used. | |||||
2011-09-19 | output_plugin: the plugin allocates the audio_output object | Max Kellermann | 1 | -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-01 | output_thread: reimplement CANCEL synchronization | Max Kellermann | 1 | -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-20 | output_thread: unlock the mutex while calling cancel() | Max Kellermann | 1 | -1/+6 | |
The method may take longer, and we shouldn't be holding the lock. | |||||
2011-03-16 | audio_format, output_thread: add more audio_format_valid() assertions | Max Kellermann | 1 | -0/+5 | |
2011-01-29 | copyright year 2011 | Max Kellermann | 1 | -1/+1 | |
2011-01-10 | include cleanup | Max Kellermann | 1 | -0/+1 | |
2011-01-10 | player_control: removed the global variable "pc" | Max Kellermann | 1 | -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-07 | output_thread: fix double lock | Max Kellermann | 1 | -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-21 | add void casts to suppress "result unused" warnings (clang) | Max Kellermann | 1 | -1/+1 | |
2010-11-05 | output_plugin: add method delay() | Max Kellermann | 1 | -0/+30 | |
This method is used to reduce the delay of commands issued to the shout plugin. | |||||
2010-11-04 | output_thread: fix assertion failure due to race condition in OPEN | Max Kellermann | 1 | -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(). | |||||
2010-11-04 | output_internal: protect attribute "fail_timer" with mutex | Max Kellermann | 1 | -0/+5 | |
2010-09-25 | eliminate g_error() usage | Thomas Jansen | 1 | -1/+2 | |
Replaced all occurrences of g_error() with MPD_ERROR() located in a new header file 'mpd_error.h'. This macro uses g_critical() to print the error message and then exits gracefully in contrast to g_error() which would internally call abort() to produce a core dump. The macro name is distinctive and allows to find all places with dubious error handling. The long-term goal is to get rid of MPD_ERROR() altogether. To facilitate the eventual removal of this macro it was added in a new header file rather than to an existing header file. This fixes #2995 and #3007. | |||||
2010-08-19 | output_thread: fix race condition after CANCEL command | Max Kellermann | 1 | -0/+10 | |
Clear the notification before finishing the CANCEL command, so the notify_wait() after that will always wait for the right notification, sent by audio_output_all_cancel(). | |||||
2010-05-02 | output_thread: call replay gain filter manually | Max Kellermann | 1 | -15/+57 | |
Don't add it to the filter chain, because we need to apply replay gain before cross-fading with the next song. Add a second replay_gain filter which is used for the song being faded in (chunk->other). | |||||
2010-05-02 | player_thread: move cross-fading to output thread | Max Kellermann | 1 | -0/+30 | |
Remove cross_fade_apply(), and call pcm_mix() in the output thread, mixing the chunk and chunk->other together. |