changeset 3056:4ce8908f4593 libavformat

Get rid of a fake timestamp discontinuity at the begin of V.VOB. This solution is not really correct but it is quite simple. Correct would be to do a second pass over the packets after all the headers have been collected.
author michael
date Wed, 20 Feb 2008 03:40:07 +0000
parents ed3653834ada
children b2853b499660
files utils.c
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/utils.c	Wed Feb 20 03:20:06 2008 +0000
+++ b/utils.c	Wed Feb 20 03:40:07 2008 +0000
@@ -641,7 +641,8 @@
     for(; pktl; pktl= pktl->next){
         if(pktl->pkt.stream_index != pkt->stream_index)
             continue;
-        if(pktl->pkt.pts == pktl->pkt.dts && pktl->pkt.dts == AV_NOPTS_VALUE){
+        if(pktl->pkt.pts == pktl->pkt.dts && pktl->pkt.dts == AV_NOPTS_VALUE
+           && !pktl->pkt.duration){
             pktl->pkt.pts= pktl->pkt.dts= st->cur_dts;
             st->cur_dts += pkt->duration;
             pktl->pkt.duration= pkt->duration;
@@ -666,7 +667,7 @@
         if (den && num) {
             pkt->duration = av_rescale(1, num * (int64_t)st->time_base.den, den * (int64_t)st->time_base.num);
 
-            if(pkt->dts == AV_NOPTS_VALUE && pkt->pts == AV_NOPTS_VALUE && st->cur_dts == 0)
+            if(st->cur_dts == 0)
                 update_initial_durations(s, st, pkt);
         }
     }