From fd21d970605f282e08861db62b9da3a6f9ea32bc Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Mon, 8 Jan 2024 20:06:24 +0900 Subject: [PATCH] qtdemux: Handle keyunit trick mode in case of push mode too Skip non-keyframe video frames if trickmode-keyunit flag is set Part-of: --- subprojects/gst-plugins-good/gst/isomp4/qtdemux.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/subprojects/gst-plugins-good/gst/isomp4/qtdemux.c b/subprojects/gst-plugins-good/gst/isomp4/qtdemux.c index ee01e280af..32df6eeb85 100644 --- a/subprojects/gst-plugins-good/gst/isomp4/qtdemux.c +++ b/subprojects/gst-plugins-good/gst/isomp4/qtdemux.c @@ -8463,6 +8463,13 @@ gst_qtdemux_process_adapter (GstQTDemux * demux, gboolean force) gst_adapter_flush (demux->adapter, demux->neededbytes); ret = GST_FLOW_EOS; + } else if ((demux->segment.flags & + GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS) != 0 && + stream->subtype == FOURCC_vide && !keyframe) { + GST_LOG_OBJECT (demux, "Skipping non-keyframe on track-id %u", + stream->track_id); + gst_adapter_flush (demux->adapter, demux->neededbytes); + ret = GST_FLOW_OK; } else { GstBuffer *outbuf;