Contents
There are a couple of use cases we don't support in PlayBin2 right now (mid 2010). One is dynamically switching to S/PDIF,HDMI audio. A related use-case might be switching to a MP3 capable bluetooth headset. Thanks to IEC-958 framing one can send AC3 audio directly to the external decoder through alsa (and hopefully soon through pulseaudio).
Issues that need to be solved
Switching decoders
In the ac3 passthrough case, we would need to switch from ac3dec to ac3iec958 when the caps on pulsesink change.
This could be implemneted using the autoconvert element (a smart bin). This would contain ac3dec and ac3iec958. Depending on the negotiated caps the respective element will be proxied with the ghostpads. As neither ac3dec or ac3iec958 are running a GstTask having one of them unconnected would not harm.
Switching to native-audio
Whenever switching to passthrough, we need to disable audioconvert, audioresample and volume. This is equal to NATIVE_AUDIO flag. It needs to be addressed in gstplaysink (GstPlayAudioChain).
Transcoding
Do we need to transcode? Are there outputs that don't accept PCM?
S/PDIF can also accept stereo PCM
HDMI can take PCM
- for bluetooth headsets pulseaudio would accepts PCM and transparently encode to SBC
Open items
framing other formats
Can we send mp3 frames the same way to a bluetooth headset?
downmix
For local playback we'd prefer to downmix in gstreamer (bit off-topic).

