mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-09 08:55:33 +00:00
gst/avi/gstavidemux.c: Revert patch which sends timestamps only on keyframes, as it breaks playback with current gst-...
Original commit message from CVS: * gst/avi/gstavidemux.c: Revert patch which sends timestamps only on keyframes, as it breaks playback with current gst-ffmpeg. Fixes: #515562
This commit is contained in:
parent
0f180098a1
commit
8aaddaee2b
2 changed files with 11 additions and 13 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2008-02-11 Jan Schmidt <jan.schmidt@sun.com>
|
||||||
|
|
||||||
|
* gst/avi/gstavidemux.c:
|
||||||
|
Revert patch which sends timestamps only on keyframes, as it
|
||||||
|
breaks playback with current gst-ffmpeg.
|
||||||
|
|
||||||
|
Fixes: #515562
|
||||||
|
|
||||||
2008-02-11 Sebastian Dröge <slomo@circular-chaos.org>
|
2008-02-11 Sebastian Dröge <slomo@circular-chaos.org>
|
||||||
|
|
||||||
* gst/multifile/gstmultifilesrc.c: (gst_multi_file_src_create):
|
* gst/multifile/gstmultifilesrc.c: (gst_multi_file_src_create):
|
||||||
|
|
|
@ -3431,17 +3431,10 @@ gst_avi_demux_process_next_entry (GstAviDemux * avi)
|
||||||
buf = gst_avi_demux_invert (stream, buf);
|
buf = gst_avi_demux_invert (stream, buf);
|
||||||
|
|
||||||
/* mark non-keyframes */
|
/* mark non-keyframes */
|
||||||
if (!(entry->flags & GST_AVI_INDEX_ENTRY_FLAG_KEYFRAME)) {
|
if (!(entry->flags & GST_AVI_INDEX_ENTRY_FLAG_KEYFRAME))
|
||||||
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
|
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
|
||||||
/* AVI stores DTS as the timestamps and we don't have a way to put a DTS
|
|
||||||
* on a buffer yet (TIMESTAMP is PTS). We therefore only copy the DTS
|
GST_BUFFER_TIMESTAMP (buf) = entry->ts;
|
||||||
* if we are dealing with a keyframe. Decoders are supposed to
|
|
||||||
* interpollate the timestamps based on framerate, which is exactly
|
|
||||||
* what we do too when constructing the index */
|
|
||||||
GST_BUFFER_TIMESTAMP (buf) = GST_CLOCK_TIME_NONE;
|
|
||||||
} else {
|
|
||||||
GST_BUFFER_TIMESTAMP (buf) = entry->ts;
|
|
||||||
}
|
|
||||||
GST_BUFFER_DURATION (buf) = entry->dur;
|
GST_BUFFER_DURATION (buf) = entry->dur;
|
||||||
GST_BUFFER_OFFSET (buf) = GST_BUFFER_OFFSET_NONE;
|
GST_BUFFER_OFFSET (buf) = GST_BUFFER_OFFSET_NONE;
|
||||||
GST_BUFFER_OFFSET_END (buf) = GST_BUFFER_OFFSET_NONE;
|
GST_BUFFER_OFFSET_END (buf) = GST_BUFFER_OFFSET_NONE;
|
||||||
|
@ -3638,9 +3631,6 @@ gst_avi_demux_stream_data (GstAviDemux * avi)
|
||||||
if (format != GST_FORMAT_TIME)
|
if (format != GST_FORMAT_TIME)
|
||||||
goto wrong_format;
|
goto wrong_format;
|
||||||
|
|
||||||
/* FIXME. this is always the DTS, not the PTS. We should only set the
|
|
||||||
* TIMESTAMP to the PTS (which is == PTS on I frames but we don't know
|
|
||||||
* about keyframes here */
|
|
||||||
GST_BUFFER_TIMESTAMP (buf) = next_ts;
|
GST_BUFFER_TIMESTAMP (buf) = next_ts;
|
||||||
GST_BUFFER_DURATION (buf) = dur_ts - next_ts;
|
GST_BUFFER_DURATION (buf) = dur_ts - next_ts;
|
||||||
gst_buffer_set_caps (buf, GST_PAD_CAPS (stream->pad));
|
gst_buffer_set_caps (buf, GST_PAD_CAPS (stream->pad));
|
||||||
|
|
Loading…
Reference in a new issue