+2008-03-11 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/qtdemux/qtdemux.c: (gst_qtdemux_perform_seek),
+ (gst_qtdemux_activate_segment),
+ (gst_qtdemux_prepare_current_sample),
+ (gst_qtdemux_loop_state_movie), (qtdemux_parse_trak):
+ Make sure we always send a DISCONT after a seek by setting the sample
+ index to an undefined value after a seek.
+
2008-03-11 Tim-Philipp Müller <tim at centricular dot net>
* gst/avi/gstavisubtitle.h: (GST_IS_AVI_SUBTITLE),
QtDemuxStream *stream = qtdemux->streams[n];
stream->time_position = desired_offset;
- stream->sample_index = 0;
+ stream->sample_index = -1;
stream->segment_index = -1;
stream->last_ret = GST_FLOW_OK;
}
}
/* we're at the right spot */
- if (index == stream->sample_index)
+ if (index == stream->sample_index) {
+ GST_DEBUG_OBJECT (qtdemux, "we are at the right index");
return TRUE;
+ }
/* find keyframe of the target index */
kf_index = gst_qtdemux_find_keyframe (qtdemux, stream, index);
GstBuffer *buffer = (GstBuffer *) stream->buffers->data;
if (stream->discont) {
+ GST_LOG_OBJECT (qtdemux, "marking discont buffer");
GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT);
stream->discont = FALSE;
}
goto next;
if (stream->discont) {
+ GST_LOG_OBJECT (qtdemux, "marking discont buffer");
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
stream->discont = FALSE;
}
stream->need_clip = FALSE;
stream->segment_index = -1;
stream->time_position = 0;
- stream->sample_index = 0;
+ stream->sample_index = -1;
stream->last_ret = GST_FLOW_OK;
if (!(tkhd = qtdemux_tree_get_child_by_type (trak, FOURCC_tkhd)))