1. 10 Mar, 2010 1 commit
    • Max Kellermann's avatar
      output: added option "always_on" for radio stations · e686d191
      Max Kellermann authored
      Did you ever accidently click "stop" while feeding a radio station?
      This option sets the output device to "pause" to disable the "close"
      method.  It falls back to "pause" then, which is specific to the
      plugin.  Some plugins implement it by feeding silence.
      e686d191
  2. 17 Feb, 2010 1 commit
    • Max Kellermann's avatar
      replay_gain: reimplement as a filter plugin · 752dfb3d
      Max Kellermann authored
      Apply the replay gain in the output thread.  This means a new setting
      will be active instantly, without going through the whole music pipe.
      And we might have different replay gain settings for each audio output
      device.
      752dfb3d
  3. 01 Jan, 2010 1 commit
  4. 09 Nov, 2009 1 commit
  5. 29 Oct, 2009 1 commit
  6. 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
  7. 21 Oct, 2009 1 commit
  8. 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
  9. 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
  10. 26 Mar, 2009 1 commit
  11. 25 Mar, 2009 1 commit
    • Max Kellermann's avatar
      output: protect audio_output.open with the mutex · 4dbf73d8
      Max Kellermann authored
      There was a deadlock between the output thread and the player thread:
      when the output thread failed (and closed itself) while the player
      thread worked with the audio_output object, MPD could crash.
      4dbf73d8
  12. 20 Mar, 2009 1 commit
    • Max Kellermann's avatar
      output: convert audio_output.config_audio_format to boolean · e6c753a4
      Max Kellermann authored
      The config_audio_format used to contain the configured audio format,
      which is copied to out_audio_format.  Let's convert the former to a
      boolean, which indicates whether out_audio_format was already set.
      This simplifies some code and saves a few bytes.
      e6c753a4
  13. 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
  14. 09 Mar, 2009 1 commit
    • 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
  15. 28 Feb, 2009 1 commit
  16. 23 Feb, 2009 1 commit
  17. 16 Feb, 2009 1 commit
    • Max Kellermann's avatar
      output: include cleanup · 46c15e4a
      Max Kellermann authored
      Don't include output_api.h in output_internal.h.  This change requires
      adding missing includes in several sources.
      46c15e4a
  18. 15 Feb, 2009 1 commit
  19. 10 Feb, 2009 2 commits
  20. 17 Jan, 2009 1 commit
  21. 07 Jan, 2009 1 commit
  22. 28 Dec, 2008 1 commit
  23. 27 Dec, 2008 1 commit
  24. 31 Oct, 2008 1 commit
    • Max Kellermann's avatar
      added prefix to header macros · ea515494
      Max Kellermann authored
      "LOG_H" is a macro which is also used by ffmpeg/log.h.  This is
      ffmpeg's fault, because short macros should be reserved for
      applications, but since it's always a good idea to choose prefixed
      macro names, even for applications, we are going to do that in MPD.
      ea515494
  25. 29 Oct, 2008 4 commits
  26. 21 Oct, 2008 1 commit
  27. 24 Sep, 2008 4 commits
    • Max Kellermann's avatar
      output: removed DEVICE_ON, DEVICE_OFF · 9a5b5998
      Max Kellermann authored
      To check whether a device is really on or off, we should rather check
      audio_output.open, instead of managing another variable.  Wrap
      audio_output.open in the inline function audio_output_is_open() and
      use it instead of DEVICE_ON and DEVICE_OFF.
      9a5b5998
    • 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
      08352184
    • 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
  28. 07 Sep, 2008 1 commit
  29. 26 Aug, 2008 2 commits
    • Max Kellermann's avatar
      moved code to crossfade.c · 6104e969
      Max Kellermann authored
      decode.c should be a lot smaller; start by moving all code which
      handles cross-fading to crossfade.c.  Also includes camelCase
      conversion.
      6104e969
    • Max Kellermann's avatar
      clean up CPP includes · b6909da7
      Max Kellermann authored
      Include only headers which are really required.  This speeds up
      compilation and helps detect cross-layer accesses.
      b6909da7
  30. 02 Jun, 2008 1 commit
  31. 13 Apr, 2008 1 commit