[pulseaudio-discuss] [WIP] Passthrough support

Arun Raghavan arun.raghavan at collabora.co.uk
Wed Mar 9 02:10:45 PST 2011


Hello all,
Based on the RFC I posted earlier, I've implemented basic passthrough
support in some usable shape. It's up on the passthrough branch of each
of:

PulseAudio:
http://git.collabora.co.uk/?p=user/arun/pulseaudio.git;a=shortlog;h=refs/heads/passthrough
gst-plugins-base:
http://git.collabora.co.uk/?p=user/arun/gst-plugins-base.git;a=shortlog;h=refs/heads/passthrough
gst-plugins-good:
http://git.collabora.co.uk/?p=user/arun/gst-plugins-good.git;a=shortlog;h=refs/heads/passthrough

What's here? All the basic plumbing for clients to signal a compresed
format, have PA pick the "best" supported one, actually play that
format, and have pactl list show these. The ALSA sink takes AC3 at the
moment, and I should be pushing DTS support today/tomorrow after some
more testing.

It was a lot simpler for me to test this with pulsesink, so I've made
the required changes there (I realise this is a bother for those who
don't have local builds of gstreamer handy - sorry!). Eventually, I'd
like to have a paplay-type interface for compressed formats
(pre-payloaded).

What's left?

* Triggering renegotiation - I should be getting to this soon

* Better proplists - We have one proplist per format+rate pair, which is
fine for now, but eventually, we need to freeze the string format for
lists/ranges

* Proper UI for selecting accepted formats - I'm thinking that we need
to add bits to the various UIs to provide a checklist of formats that
the user's receiver accepts, set that as a property on the sink, and
have a module save this (m-d-m, perhaps, or just a new module)

* HDMI - in theory this should be easy to support, but I've not tested
this yet

* Bluetooth - See postscript

* Sink-input passthrough flag to go away - I'll do this after paplay
properly supports compressed formats

* Disabling monitors - I suspend them for now, which seems to work okay,
but we probably want to have way to disable these properly

* Disabling volume - I'm planning on piggybacking on Tanu's work here :)

So that's that. Comments and feedback appreciated. :)

Cheers,
Arun

p.s.: BT support is being a major pita, mostly because my headset
refuses to cooperate. There's a passthrough-bt branch in my PA tree
which adapts the a2dp sink to the new API, and Pierre's patch for an
IEC61937 payloader that never made it to the mailing list is at
http://people.collabora.co.uk/~arun/plbossart-gst-plugins-ugly.patch
(just needs a small change to pulseutil.c to set make the appropriate
gst->pa type translation).




More information about the pulseaudio-discuss mailing list