summaryrefslogtreecommitdiff
path: root/gst/isomp4/qtdemux.c
diff options
context:
space:
mode:
authorMatej Knopp <matej.knopp@gmail.com>2015-02-28 18:10:06 +0100
committerTim-Philipp Müller <tim@centricular.com>2015-03-01 13:06:55 +0000
commitf75e443a7a0bd27b3e1935dd5e82a4e4e2498397 (patch)
treedd1189d58cfd24d610f3448e286d08cc220bbe06 /gst/isomp4/qtdemux.c
parentbc6d68c93a7ae0bb0995531fe7b59be11603e181 (diff)
downloadgstreamer-plugins-good-f75e443a7a0bd27b3e1935dd5e82a4e4e2498397.tar.gz
qtdemux: fix key unit seek
Unlike many other seek flags, the KEY_UNIT seek flag is not copied over into the GstSegment, since it's only relevant for the seek itself, so we need to pass it explicitly to the seek handler here. https://bugzilla.gnome.org/show_bug.cgi?id=745339
Diffstat (limited to 'gst/isomp4/qtdemux.c')
-rw-r--r--gst/isomp4/qtdemux.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c
index 71c782d31..153d03196 100644
--- a/gst/isomp4/qtdemux.c
+++ b/gst/isomp4/qtdemux.c
@@ -1393,7 +1393,7 @@ no_format:
*/
static gboolean
gst_qtdemux_perform_seek (GstQTDemux * qtdemux, GstSegment * segment,
- guint32 seqnum)
+ guint32 seqnum, GstSeekFlags flags)
{
gint64 desired_offset;
gint n;
@@ -1406,7 +1406,7 @@ gst_qtdemux_perform_seek (GstQTDemux * qtdemux, GstSegment * segment,
/* may not have enough fragmented info to do this adjustment,
* and we can't scan (and probably should not) at this time with
* possibly flushing upstream */
- if ((segment->flags & GST_SEEK_FLAG_KEY_UNIT) && !qtdemux->fragmented) {
+ if ((flags & GST_SEEK_FLAG_KEY_UNIT) && !qtdemux->fragmented) {
gint64 min_offset;
gst_qtdemux_adjust_seek (qtdemux, desired_offset, TRUE, &min_offset, NULL);
@@ -1507,7 +1507,7 @@ gst_qtdemux_do_seek (GstQTDemux * qtdemux, GstPad * pad, GstEvent * event)
}
/* now do the seek, this actually never returns FALSE */
- gst_qtdemux_perform_seek (qtdemux, &seeksegment, seqnum);
+ gst_qtdemux_perform_seek (qtdemux, &seeksegment, seqnum, flags);
/* prepare for streaming again */
if (flush) {