From 8aaddaee2b6d50c0527ca8062fa67ab5e28e3ade Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Mon, 11 Feb 2008 21:24:30 +0000 Subject: 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 --- ChangeLog | 8 ++++++++ gst/avi/gstavidemux.c | 16 +++------------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5944373a..718909ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-02-11 Jan Schmidt + + * 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 * gst/multifile/gstmultifilesrc.c: (gst_multi_file_src_create): diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 5e7eacc0..97e8263f 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -3431,17 +3431,10 @@ gst_avi_demux_process_next_entry (GstAviDemux * avi) buf = gst_avi_demux_invert (stream, buf); /* 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); - /* 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 - * 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_TIMESTAMP (buf) = entry->ts; GST_BUFFER_DURATION (buf) = entry->dur; GST_BUFFER_OFFSET (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) 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_DURATION (buf) = dur_ts - next_ts; gst_buffer_set_caps (buf, GST_PAD_CAPS (stream->pad)); -- cgit