decodebin3: Avoid selection recalculation
Currently the way decodebin3 figures out whether it should modify the current selection is not reliable.
What it should do, after posting a new collection is to check whether there already was a selection requested for that collection.
The order of events is:
- Updated collection is stored as
dbin->collection
- Collection is posted on the bus
-
update_requested_selection
is called
Three things should happen:
- When the dbin->collection is modified, dbin->select_streams_seqnum should be resetted
- UNCHANGED : If a select_streams event comes in, we store it along with the seqnum
- Within
update_requested_selection
, and with the SELECTION lock taken, Only calculate a new selection IFF the seqnum is not set, otherwise just use the selection.
Edited by Edward Hervey