Module: libav
Branch: master
Commit: 8916f1fbcba0f2a3927752ddd0b6ea6e209c6698

Author:    Justin Ruggles <[email protected]>
Committer: Justin Ruggles <[email protected]>
Date:      Thu Apr 26 11:02:02 2012 -0400

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 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;
+            }
         }
     }
 

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to