From e73559f815354a279e10b6c06f71e7f15e8b0a29 Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Thu, 4 Mar 2021 16:40:06 +1100 Subject: [PATCH] matroska: also support push-mode from seek events sent to the element Otherwise sending seek events would fail to actually seek. Part-of: --- gst/matroska/matroska-demux.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c index 4d0234743b..d7b6f7edcb 100644 --- a/gst/matroska/matroska-demux.c +++ b/gst/matroska/matroska-demux.c @@ -142,6 +142,8 @@ static gboolean gst_matroska_demux_sink_activate (GstPad * sinkpad, static gboolean gst_matroska_demux_sink_activate_mode (GstPad * sinkpad, GstObject * parent, GstPadMode mode, gboolean active); +static gboolean gst_matroska_demux_handle_seek_push (GstMatroskaDemux * demux, + GstPad * pad, GstEvent * event); static gboolean gst_matroska_demux_handle_seek_event (GstMatroskaDemux * demux, GstPad * pad, GstEvent * event); static gboolean gst_matroska_demux_handle_src_event (GstPad * pad, @@ -1987,7 +1989,10 @@ gst_matroska_demux_element_send_event (GstElement * element, GstEvent * event) demux->deferred_seek_pad = NULL; return TRUE; } - res = gst_matroska_demux_handle_seek_event (demux, NULL, event); + if (!demux->streaming) + res = gst_matroska_demux_handle_seek_event (demux, NULL, event); + else + res = gst_matroska_demux_handle_seek_push (demux, NULL, event); } else { GST_WARNING_OBJECT (demux, "Unhandled event of type %s", GST_EVENT_TYPE_NAME (event));