diff --git a/subprojects/gst-plugins-base/ext/ogg/gstoggdemux.c b/subprojects/gst-plugins-base/ext/ogg/gstoggdemux.c index ec16bc9672..30df4436e2 100644 --- a/subprojects/gst-plugins-base/ext/ogg/gstoggdemux.c +++ b/subprojects/gst-plugins-base/ext/ogg/gstoggdemux.c @@ -1288,9 +1288,19 @@ gst_ogg_pad_stream_out (GstOggPad * pad, gint npackets) GstFlowReturn result = GST_FLOW_OK; gboolean done = FALSE; GstOggDemux *ogg; + gboolean drop; ogg = pad->ogg; + GST_PUSH_LOCK (ogg); + drop = (ogg->seek_event_drop_till != GST_SEQNUM_INVALID); + GST_PUSH_UNLOCK (ogg); + if (drop) { + GST_DEBUG_OBJECT (ogg, + "Not pushing new packets until the pending seek is over"); + return result; + } + while (!done) { int ret; ogg_packet packet;