Draft: playbin3/decodebin3: Allow {en|dis}abling of decoders via GST_EVENT_RECONFIGURE to allow passthrough changes


The idea of this MR is to implement audio passthrough for playbin3 at runtime.

It looks like probing RECONFIGURE events from downstream to perform the reconfiguration when it is necessary is enough for this.

The typical sequence of events is:

  • the source bin is created
  • caps are sent downstream
  • playsink is created
  • sink is linked to the source
  • the actual sink becomes aware its caps
  • (pending) reconfigure are sent upstream
  • decodebin3 checks if a decoder is needed now

In order for this method to work in any case at runtime, the entire audio path needs to handle reconfigure events properly too. This is why, in my opinion, playsinkconvertbin has to bypass identity on reconfigure events because this element on his own can't do much, the "real" processing is implemented in the bin.


Merge request reports