From 8916f1fbcba0f2a3927752ddd0b6ea6e209c6698 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Thu, 26 Apr 2012 11:02:02 -0400 Subject: [PATCH] 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. --- libavformat/utils.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavformat/utils.c b/libavformat/utils.c index 31708cfaa7..e867b73017 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; + } } }