(uri)decodebin3: Remove custom force-sw-decoders property
Sadly I wasn't quite paying attention when !485 (merged) went in.
I'd very much like to have that force-sw-decoders property removed from (uri)decodebin3 and instead have a generic way of influencing what elements should be plugged/tried.
Proposal
Add a new signal for selecting a decoder if and only if there is more than one candidate decoder for a given stream.
/**
* decoder-select
*
* Return : NULL to let (uri)decodebin3 do its own selection,
* or the specific elementfactory from the candidates.
*/
GstElementFactory* decoder-select (GstElement *decodebin3,
GstStream *stream,
GValueArray *candidates)
The default implementation would return NULL to let decodebin3 do its (pre-force-sw-decoder-patch) standard behaviour. And playbin3 can still strip out candidates based on hardware flags, phase of the moon, day of the month or whatever you chose.
Use-cases
- Match ideal decoder based on configured sink (ex: match optimal decoder to configured sink).
- Avoid software decoders
- FIXME What is the rationale for this use-case ?