1. 17 Jan, 2009 1 commit
  2. 07 Jan, 2009 3 commits
  3. 28 Dec, 2008 2 commits
  4. 27 Dec, 2008 1 commit
  5. 02 Nov, 2008 1 commit
  6. 29 Oct, 2008 4 commits
  7. 08 Oct, 2008 1 commit
  8. 29 Sep, 2008 1 commit
    • Max Kellermann's avatar
      audio_output: added method pause() · 6e21e24c
      Max Kellermann authored
      pause() puts the audio output into pause mode: if supported, it may
      perform a special action, which keeps the device open, but does not
      play anything.  Output plugins like "shout" might want to play silence
      during pause, so their clients won't be disconnected.  Plugins which
      do not support pausing will simply be closed, and have to be reopened
      when unpaused.
      
      This pach includes an implementation for the shout plugin, which
      sends silence chunks.
      6e21e24c
  9. 26 Sep, 2008 1 commit
    • Max Kellermann's avatar
      audio_output: workaround for deadlock · e2a12dee
      Max Kellermann authored
      During debugging, I found a deadlock between flushAudioBuffer() and
      the audio_output_task(): audio_output_task() didn't notice that there
      is a command, and flushAudioBuffer() waited forever in notify_wait().
      I am not sure yet what is the real cause; work around this for now by
      waking up non-finished audio outputs in every iteration.
      e2a12dee
  10. 24 Sep, 2008 3 commits
    • Max Kellermann's avatar
      output: semi-asynchronous playback · 2b782b82
      Max Kellermann authored
      Send an output buffer to all output plugins at the same time, instead
      of waiting for each of them separately.  Make several functions
      non-blocking, and introduce the new function audio_output_wait_all()
      to synchronize with all audio output threads.
      2b782b82
    • Max Kellermann's avatar
      output: make "struct audio_output" opaque for output plugins · acc4a0ba
      Max Kellermann authored
      We have eliminated direct accesses to the audio_output struct from
      the all output plugins.  Make it opaque for them, and move its real
      declaration to output_internal.h, similar to decoder_internal.h.
      
      Pass the opaque structure to plugin.init() only, which will return the
      plugin's data pointer on success, and NULL on failure.  This data
      pointer will be passed to all other methods instead of the
      audio_output struct.
      acc4a0ba
    • Max Kellermann's avatar
      output: one thread per audio output · d32f49a9
      Max Kellermann authored
      To keep I/O nastiness and latencies away from the core, move the audio
      output code to a separate thread, one per output.  The thread is
      created on demand, and currently runs until mpd exits.
      d32f49a9
  11. 11 Sep, 2008 3 commits
  12. 09 Sep, 2008 5 commits
  13. 08 Sep, 2008 1 commit
  14. 07 Sep, 2008 4 commits
  15. 29 Aug, 2008 2 commits
  16. 26 Aug, 2008 1 commit
  17. 12 Apr, 2008 5 commits
  18. 05 Feb, 2008 1 commit