From f5cdb2d00240d50dbf7fcb1c6b204bbbd0a8e0c7 Mon Sep 17 00:00:00 2001 From: Mathieu Duponchelle Date: Sun, 1 Aug 2021 18:20:06 +0200 Subject: decodebin3: fix unblocking on input gap events Initial gap events should not be discarded on the input streams, but instead cause unblocking just as buffers do. Part-of: --- gst/playback/gstdecodebin3-parse.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'gst') diff --git a/gst/playback/gstdecodebin3-parse.c b/gst/playback/gstdecodebin3-parse.c index 85e1de483..4db2f71a0 100644 --- a/gst/playback/gstdecodebin3-parse.c +++ b/gst/playback/gstdecodebin3-parse.c @@ -553,6 +553,10 @@ parsebin_pending_event_probe (GstPad * pad, GstPadProbeInfo * info, SELECTION_UNLOCK (dbin); } break; + case GST_EVENT_GAP: + /* Let gaps through to the buffer probe, as they should cause unblocking */ + ret = GST_PAD_PROBE_PASS; + break; default: break; } @@ -580,7 +584,8 @@ parsebin_pad_added_cb (GstElement * demux, GstPad * pad, DecodebinInput * input) (GstPadProbeCallback) parsebin_pending_event_probe, ppad, NULL); ppad->buffer_probe = gst_pad_add_probe (pad, - GST_PAD_PROBE_TYPE_BLOCK | GST_PAD_PROBE_TYPE_BUFFER, + GST_PAD_PROBE_TYPE_BLOCK | GST_PAD_PROBE_TYPE_BUFFER | + GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM, (GstPadProbeCallback) parsebin_buffer_probe, input, NULL); input->pending_pads = g_list_append (input->pending_pads, ppad); -- cgit v1.2.1