1. 02 Nov, 2009 2 commits
  2. 29 Oct, 2009 2 commits
  3. 23 Oct, 2009 1 commit
    • Max Kellermann's avatar
      output_plugin: added methods enable() and disable() · e53ca368
      Max Kellermann authored
      With these methods, an output plugin can allocate some global
      resources only if it is actually enabled.  The method enable() is
      called after daemonization, which allows for more sophisticated
      resource allocation during that method.
      e53ca368
  4. 20 Oct, 2009 1 commit
  5. 14 Aug, 2009 1 commit
    • Max Kellermann's avatar
      output: fixed shout stuck pause bug · 7133f560
      Max Kellermann authored
      Explicitly make the output thread leave the ao_pause() loop.  This
      patch is a workaround, and the "pause" flag is not managed in a
      thread-safe way, but that's good enough for now.
      7133f560
  6. 06 Jul, 2009 2 commits
    • Max Kellermann's avatar
      output: attach a filter chain to each audio_output · e47bdfe8
      Max Kellermann authored
      This patch adds initial filter support for audio outputs.  Each audio
      output gets a "filter" attribute, which is used by ao_play_chunk().
      
      The PCM conversion is now performed by convert_filter_plugin.
      audio_output.convert_state has been removed.
      e47bdfe8
    • Max Kellermann's avatar
      output: added command REOPEN · 78fa3f06
      Max Kellermann authored
      REOPEN is called when the input audio format changes.  The output
      thread may be reconfigure the PCM converter.
      78fa3f06
  7. 21 Apr, 2009 1 commit
  8. 26 Mar, 2009 2 commits
    • Max Kellermann's avatar
      mixer: added flag "open" · 617a4fd2
      Max Kellermann authored
      Remember if a mixer object is open or closed.  Don't call open() again
      if it is already open.  This guarantees that the mixer plugin is
      always called in a consistent state, and we will be able to remove
      lots of checks from the implementations.
      
      To support mixers which are automatically opened even if the audio
      output is still closed (to set the volume before playback starts),
      this patch also adds the "global" flag to the mixer_plugin struct.
      Both ALSA and OSS set this flag, while PULSE does not.
      617a4fd2
    • Max Kellermann's avatar
      output_plugin: replaced output_plugin.get_mixer() with mixer_plugin · 66a2c566
      Max Kellermann authored
      The mixer core library is now responsible for creating and managing
      the mixer object.  This removes duplicated code from the output
      plugins.
      66a2c566
  9. 20 Mar, 2009 2 commits
  10. 13 Mar, 2009 1 commit
    • Avuton Olrich's avatar
      all: Update copyright header. · 0aee49bd
      Avuton Olrich authored
      This updates the copyright header to all be the same, which is
      pretty much an update of where to mail request for a copy of the GPL
      and the years of the MPD project. This also puts all committers under
      'The Music Player Project' umbrella. These entries should go
      individually in the AUTHORS file, for consistancy.
      0aee49bd
  11. 10 Mar, 2009 1 commit
  12. 09 Mar, 2009 2 commits
    • Max Kellermann's avatar
      output: play from a music_pipe object · 3291666b
      Max Kellermann authored
      Instead of passing individual buffers to audio_output_all_play(), pass
      music_chunk objects.  Append all those chunks asynchronously to a
      music_pipe instance.  All output threads may then read chunks from
      this pipe.  This reduces MPD's internal latency by an order of
      magnitude.
      3291666b
    • Max Kellermann's avatar
      output_control: make audio_output_open() static · 8de179ef
      Max Kellermann authored
      audio_output_open() is only called by audio_output_update().  Don't
      export it.
      8de179ef
  13. 07 Mar, 2009 1 commit
  14. 28 Feb, 2009 1 commit
  15. 23 Feb, 2009 1 commit
  16. 16 Feb, 2009 1 commit
  17. 15 Feb, 2009 1 commit
  18. 10 Feb, 2009 1 commit
  19. 17 Jan, 2009 1 commit
  20. 07 Jan, 2009 3 commits
  21. 28 Dec, 2008 2 commits
  22. 27 Dec, 2008 1 commit
  23. 02 Nov, 2008 1 commit
  24. 29 Oct, 2008 4 commits
  25. 08 Oct, 2008 1 commit
  26. 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
  27. 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
  28. 24 Sep, 2008 1 commit
    • 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