mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-02 12:32:29 +00:00
gst/mpegdemux/gstmpegdemux.c: Fix reverse playback regression.
Original commit message from CVS: * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data): Fix reverse playback regression. Fixes #557080
This commit is contained in:
parent
2c4fc7cd4a
commit
a794d8cccf
2 changed files with 22 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
|||
2008-10-20 Edward Hervey <edward.hervey@collabora.co.uk>
|
||||
|
||||
* gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data):
|
||||
Fix reverse playback regression.
|
||||
Fixes #557080
|
||||
|
||||
2008-10-19 Tim-Philipp Müller <tim.muller at collabora co uk>
|
||||
|
||||
* ext/apexsink/gstapexplugin.c: (plugin_init):
|
||||
|
|
|
@ -453,21 +453,33 @@ gst_flups_demux_send_data (GstFluPSDemux * demux, GstFluPSStream * stream,
|
|||
gint64 time, start, stop;
|
||||
GstEvent *newsegment;
|
||||
|
||||
GST_DEBUG ("timestamp:%" GST_TIME_FORMAT " base_time %" GST_TIME_FORMAT
|
||||
" src_segment.start:%" GST_TIME_FORMAT " .stop:%" GST_TIME_FORMAT,
|
||||
GST_TIME_ARGS (timestamp), GST_TIME_ARGS (demux->base_time),
|
||||
GST_TIME_ARGS (demux->src_segment.start),
|
||||
GST_TIME_ARGS (demux->src_segment.stop));
|
||||
|
||||
if (GST_CLOCK_TIME_IS_VALID (demux->base_time) &&
|
||||
GST_CLOCK_TIME_IS_VALID (demux->src_segment.start))
|
||||
start = demux->base_time + demux->src_segment.start;
|
||||
else
|
||||
start = 0;
|
||||
|
||||
if (timestamp != GST_CLOCK_TIME_NONE &&
|
||||
GST_CLOCK_DIFF (start, timestamp) > GST_SECOND)
|
||||
start = timestamp;
|
||||
|
||||
if (GST_CLOCK_TIME_IS_VALID (demux->src_segment.stop) &&
|
||||
GST_CLOCK_TIME_IS_VALID (demux->base_time))
|
||||
stop = demux->base_time + demux->src_segment.stop;
|
||||
else
|
||||
stop = -1;
|
||||
|
||||
if (timestamp != GST_CLOCK_TIME_NONE) {
|
||||
if (demux->src_segment.rate > 0) {
|
||||
if (GST_CLOCK_DIFF (start, timestamp) > GST_SECOND)
|
||||
start = timestamp;
|
||||
} else {
|
||||
if (GST_CLOCK_DIFF (stop, timestamp) > GST_SECOND)
|
||||
stop = timestamp;
|
||||
}
|
||||
}
|
||||
time = start;
|
||||
|
||||
#ifdef HAVE_NEWSEG_FULL
|
||||
|
|
Loading…
Reference in a new issue