summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--gst/qtdemux/qtdemux.c6
2 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 3a848fb5..97bb3c10 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-08-30 Edward Hervey <edward@fluendo.com>
+
+ * gst/qtdemux/qtdemux.c:
+ (gst_qtdemux_do_seek):
+ Reset each streams last_flow to GST_FLOW_OK.
+ (gst_qtdemux_activate_segment):
+ Removing mystic modifications for good.
+
2006-08-30 Stefan Kost <ensonic@users.sf.net>
* gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment),
diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c
index de5f842c..2b0e7536 100644
--- a/gst/qtdemux/qtdemux.c
+++ b/gst/qtdemux/qtdemux.c
@@ -753,6 +753,7 @@ gst_qtdemux_do_seek (GstQTDemux * qtdemux, GstPad * pad, GstEvent * event)
gboolean res;
gboolean update;
GstSegment seeksegment;
+ int i;
if (event) {
GST_DEBUG_OBJECT (qtdemux, "doing seek with event");
@@ -843,6 +844,9 @@ gst_qtdemux_do_seek (GstQTDemux * qtdemux, GstPad * pad, GstEvent * event)
/* restart streaming, NEWSEGMENT will be sent from the streaming
* thread. */
qtdemux->segment_running = TRUE;
+ for (i = 0; i < qtdemux->n_streams; i++) {
+ qtdemux->streams[i]->last_ret = GST_FLOW_OK;
+ }
gst_pad_start_task (qtdemux->sinkpad, (GstTaskFunction) gst_qtdemux_loop,
qtdemux->sinkpad);
@@ -1088,7 +1092,7 @@ gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream,
stop = segment->media_stop;
else
stop = MIN (segment->media_stop, qtdemux->segment.stop);
- start = segment->media_start + seg_time;
+ start = MIN (segment->media_start + seg_time, stop);
GST_DEBUG_OBJECT (qtdemux, "newsegment %d from %" GST_TIME_FORMAT
" to %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT, seg_idx,