summaryrefslogtreecommitdiff
path: root/subprojects/gst-plugins-good
diff options
context:
space:
mode:
authorPiotr Brzeziński <piotr@centricular.com>2023-06-29 15:20:29 +0200
committerTim-Philipp Müller <tim@centricular.com>2023-11-15 19:44:38 +0000
commit15e9b513da660914282bb29b284dad871d7c7453 (patch)
treef9d1f06f279fdc5538abd722bc4832fcc4c32aac /subprojects/gst-plugins-good
parent07cb8432cc4fa6c9a713dbc4b0d64f9998bd71a6 (diff)
qtdemux: Ignore raw audio streams when adjusting seek
Because we treat raw audio chunks/samples as keyframes, they were interfering with seek time adjustment. Became apparent when the accompanying video stream was I-frame only, for example ProRes. Since raw audio streams can be seeked freely, it's fine to just ignore them here, giving priority to the real keyframes in the video stream. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5674>
Diffstat (limited to 'subprojects/gst-plugins-good')
-rw-r--r--subprojects/gst-plugins-good/gst/isomp4/qtdemux.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/subprojects/gst-plugins-good/gst/isomp4/qtdemux.c b/subprojects/gst-plugins-good/gst/isomp4/qtdemux.c
index efd48b1456..a202f919bf 100644
--- a/subprojects/gst-plugins-good/gst/isomp4/qtdemux.c
+++ b/subprojects/gst-plugins-good/gst/isomp4/qtdemux.c
@@ -1144,6 +1144,10 @@ gst_qtdemux_adjust_seek (GstQTDemux * qtdemux, gint64 desired_time,
if (CUR_STREAM (str)->sparse && !use_sparse)
continue;
+ /* raw audio streams can be ignored as we can seek anywhere within them */
+ if (str->subtype == FOURCC_soun && str->need_clip)
+ continue;
+
seg_idx = gst_qtdemux_find_segment (qtdemux, str, desired_time);
GST_DEBUG_OBJECT (qtdemux, "align segment %d", seg_idx);