qtdemux: fragmented support; avoid adjustment for keyframe seek
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Mon, 5 Sep 2011 12:49:32 +0000 (14:49 +0200)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Mon, 5 Sep 2011 12:56:18 +0000 (14:56 +0200)
... since all index data may not yet be available at that time.

gst/isomp4/qtdemux.c

index a91be6f..39d2e4f 100644 (file)
@@ -1281,7 +1281,10 @@ gst_qtdemux_perform_seek (GstQTDemux * qtdemux, GstSegment * segment)
   GST_DEBUG_OBJECT (qtdemux, "seeking to %" GST_TIME_FORMAT,
       GST_TIME_ARGS (desired_offset));
 
-  if (segment->flags & GST_SEEK_FLAG_KEY_UNIT) {
+  /* 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) {
     gint64 min_offset;
 
     gst_qtdemux_adjust_seek (qtdemux, desired_offset, &min_offset, NULL);