mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 10:11:08 +00:00
decodebin: Remove GstdecodePads that are not going to be exposed
This makes sure that they're unlnked and don't cause any errors or block the pipeline.
This commit is contained in:
parent
7f78f7f9e3
commit
3475d4f457
1 changed files with 3 additions and 0 deletions
|
@ -1740,6 +1740,7 @@ discarded_type:
|
|||
GST_LOG_OBJECT (pad, "Known type, but discarded because not final caps");
|
||||
chain->deadend = TRUE;
|
||||
chain->endcaps = gst_caps_ref (caps);
|
||||
gst_object_replace ((GstObject **) & chain->current_pad, NULL);
|
||||
|
||||
/* Try to expose anything */
|
||||
EXPOSE_LOCK (dbin);
|
||||
|
@ -1758,6 +1759,7 @@ unknown_type:
|
|||
|
||||
chain->deadend = TRUE;
|
||||
chain->endcaps = gst_caps_ref (caps);
|
||||
gst_object_replace ((GstObject **) & chain->current_pad, NULL);
|
||||
|
||||
gst_element_post_message (GST_ELEMENT_CAST (dbin),
|
||||
gst_missing_decoder_message_new (GST_ELEMENT_CAST (dbin), caps));
|
||||
|
@ -2491,6 +2493,7 @@ pad_event_cb (GstPad * pad, GstPadProbeInfo * info, gpointer data)
|
|||
GST_DEBUG_OBJECT (dbin, "Received EOS on a non final pad, this stream "
|
||||
"ended too early");
|
||||
chain->deadend = TRUE;
|
||||
gst_object_replace ((GstObject **) & chain->current_pad, NULL);
|
||||
/* we don't set the endcaps because NULL endcaps means early EOS */
|
||||
EXPOSE_LOCK (dbin);
|
||||
if (gst_decode_chain_is_complete (dbin->decode_chain))
|
||||
|
|
Loading…
Reference in a new issue