Hi,

this is the patch set I promised yesterday: it moves all audio outputs
into separate threads, where they can play the current chunk at the
same time, instead of sending each chunk separately to all outputs one
after another.

After a few tweaks, testing was positive.

There is still a lot left which can be done asynchronously,
e.g. initialization (asynchronous connect to shoutcast server, etc.).

Max


Max Kellermann (15):
      notify: declare "struct notify"
      notify: make notify_init() failures fatal
      notify: added notify_deinit()
      notify: added macro NOTIFY_INITIALIZER
      output: one thread per audio output
      output: pass audio_format to plugin.init() and plugin.open()
      output: set audio_output->open=1 in audio_output_task()
      output: added audio_output_get_name()
      output: added audio_output_closed()
      output: make "struct audio_output" opaque for output plugins
      output: document the audio_output elements
      output: document the audio_output_plugin methods
      output: call send_tag() only if device is on
      output: semi-asynchronous playback
      output: removed DEVICE_ON, DEVICE_OFF

 Makefile.am                      |    4 +
 audio.c                          |  118 +++++++++++++++++++++++------------
 audioOutputs/audioOutput_alsa.c  |   37 ++++-------
 audioOutputs/audioOutput_ao.c    |   45 ++++++-------
 audioOutputs/audioOutput_fifo.c  |   41 +++++-------
 audioOutputs/audioOutput_jack.c  |   64 ++++++++++---------
 audioOutputs/audioOutput_mvp.c   |    7 --
 audioOutputs/audioOutput_null.c  |   46 ++++++++-----
 audioOutputs/audioOutput_oss.c   |   54 +++++++---------
 audioOutputs/audioOutput_osx.c   |    9 --
 audioOutputs/audioOutput_pulse.c |   63 +++++++++---------
 audioOutputs/audioOutput_shout.c |   60 +++++++++---------
 decoder_control.c                |    5 +
 decoder_control.h                |    2 
 main.c                           |    4 +
 main_notify.c                    |    8 ++
 main_notify.h                    |    2 
 notify.c                         |   27 ++++----
 notify.h                         |   21 ++++--
 output_api.c                     |   33 +++++++++
 output_api.h                     |   99 +++++++++++++++++++++--------
 output_control.c                 |   94 +++++++++++++++-------------
 output_control.h                 |    4 -
 output_init.c                    |    8 ++
 output_internal.h                |  130 +++++++++++++++++++++++++++++++++++++++
 output_thread.c                  |  129 ++++++++++++++++++++++++++++++++++++++
 output_thread.h                  |   26 +++++++
 player_control.c                 |    5 +
 player_control.h                 |    2 
 29 files changed, 798 insertions(+), 349 deletions(-)

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team

Reply via email to