[FFmpeg-cvslog] avformat: only fill-in interpolated timestamps if duration is non-zero
Justin Ruggles
git at videolan.org
Sat May 5 00:58:06 CEST 2012
ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Thu Apr 26 11:02:02 2012 -0400| [8916f1fbcba0f2a3927752ddd0b6ea6e209c6698] | committer: Justin Ruggles
avformat: only fill-in interpolated timestamps if duration is non-zero
This avoids returning duplicate timestamps for multiple packets when the
demuxer does not provide all timestamps and packet duration is not known.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8916f1fbcba0f2a3927752ddd0b6ea6e209c6698
---
libavformat/utils.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 31708cf..e867b73 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -985,6 +985,8 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
}
}
+ if (pkt->pts != AV_NOPTS_VALUE || pkt->dts != AV_NOPTS_VALUE ||
+ duration) {
/* presentation is not delayed : PTS and DTS are the same */
if(pkt->pts == AV_NOPTS_VALUE)
pkt->pts = pkt->dts;
@@ -994,6 +996,7 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
pkt->dts = pkt->pts;
if(pkt->pts != AV_NOPTS_VALUE)
st->cur_dts = pkt->pts + duration;
+ }
}
}
More information about the ffmpeg-cvslog
mailing list