diff --git a/ChangeLog b/ChangeLog index 27da9e866a..0ac887d3da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-06-14 Wim Taymans + + * ext/dv/gstdvdemux.c: (gst_dvdemux_demux_frame): + Respect segment.stop. Fixes #342592. + 2006-06-14 Tim-Philipp Müller * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream): diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c index 890e65e158..bd2c3ac3fd 100644 --- a/ext/dv/gstdvdemux.c +++ b/ext/dv/gstdvdemux.c @@ -1397,10 +1397,15 @@ gst_dvdemux_demux_frame (GstDVDemux * dvdemux, GstBuffer * buffer) goto done; } - ret = GST_FLOW_OK; gst_segment_set_last_stop (&dvdemux->time_segment, GST_FORMAT_TIME, next_ts); dvdemux->frame_offset++; + /* check for the end of the segment */ + if (dvdemux->time_segment.stop != -1 && next_ts > dvdemux->time_segment.stop) + ret = GST_FLOW_UNEXPECTED; + else + ret = GST_FLOW_OK; + done: return ret;