Skip to content

decodebin3: Don't output bogus GST_MESSAGE_STREAMS_SELECTED

Edward Hervey requested to merge bilboed/gstreamer:uridecodebin3-updates into main
docs/design: Add document detailing the new gapless/instant-uri changes

uridecodebin3: propagate about-to-finish for new inputs
    
    If the pending next urisourcebin is already draining, make sure we propagate it when activating it.
    
    Fixes gapless playback of small entries
    
    Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1588

uridecodebin3: Remove old fixme

(uri)decodebin3: Ensure group-id consistency
    
    Make sure that group-id of a given play item are made consistent from the
    start (sources) and all the way through the output.
    
    This ensures that we can reliably detect that we have switched to the next play
    item on the output of decodebin3 (and we can therefore properly free/release it)

uridecodebin3: Fix shutdown procedures in probe
    
    When shutting down, we want to remove the urisourcebin blocking probes ... but
    we also want to propagate a GST_FLOW_FLUSHING upstream (and not
    GST_FLOW_NOT_LINKED) to make the upstream task gracefully stop instead of
    posting an error message.

decodebin3: Properly reset when going back to READY
    
    Clear the remaining stream-related fields when going from PAUSED to READY, and
    use when disposing.
    
    Fixes various issues when re-using decodebin3/playbin3

decodebin3: Don't output bogus GST_MESSAGE_STREAMS_SELECTED
    
    When `is_selection_done` is called, it checks that all the requested streams are
    present in the active stream list ...
    
    ... except there could very well be a (about to be removed) stream from the
    previous selection present.
    
    Therefore filter the list of streams we add to the message by the streams which
    are actually requested.
    
    Fixes issues when switching between different stream types (ex: video-only to
    audio-only).

Merge request reports