From 7efeb73a5a2dcf0018cd1e7e2a3faf7de16e4cb7 Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Tue, 8 Jul 2008 23:25:01 +0000
Subject: [PATCH] 10000l for myself, my last change was incomplete. This one
 also reverts the libav mpeg ts regression test score change.

Originally committed as revision 14132 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavformat/utils.c        | 4 +++-
 tests/libav.regression.ref | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/libavformat/utils.c b/libavformat/utils.c
index 671595b4afe..b90436a9773 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -627,7 +627,7 @@ static void update_initial_timestamps(AVFormatContext *s, int stream_index,
     AVStream *st= s->streams[stream_index];
     AVPacketList *pktl= s->packet_buffer;
 
-    if(st->first_dts != AV_NOPTS_VALUE || dts == AV_NOPTS_VALUE)
+    if(st->first_dts != AV_NOPTS_VALUE || dts == AV_NOPTS_VALUE || st->cur_dts == AV_NOPTS_VALUE)
         return;
 
     st->first_dts= dts - st->cur_dts;
@@ -746,6 +746,7 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
             of the frame we are displaying, i.e. the last I- or P-frame */
             if (st->last_IP_duration == 0)
                 st->last_IP_duration = pkt->duration;
+            if(pkt->dts != AV_NOPTS_VALUE)
             st->cur_dts = pkt->dts + st->last_IP_duration;
             st->last_IP_duration  = pkt->duration;
             st->last_IP_pts= pkt->pts;
@@ -768,6 +769,7 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
             if(pkt->pts == AV_NOPTS_VALUE)
                 pkt->pts = st->cur_dts;
             pkt->dts = pkt->pts;
+            if(pkt->pts != AV_NOPTS_VALUE)
             st->cur_dts = pkt->pts + pkt->duration;
         }
     }
diff --git a/tests/libav.regression.ref b/tests/libav.regression.ref
index 02f6faee1d8..6c5c23690a0 100644
--- a/tests/libav.regression.ref
+++ b/tests/libav.regression.ref
@@ -11,7 +11,7 @@ bdb7484c68db722f66ba1630cf79844c *./tests/data/b-libav.mpg
 ./tests/data/b-libav.mpg CRC=0x2b71a386
 447b005e527cf495ec13092e788f028d *./tests/data/b-libav.ts
 471692 ./tests/data/b-libav.ts
-./tests/data/b-libav.ts CRC=0xd14320e2
+./tests/data/b-libav.ts CRC=0xcc4948e1
 d6fdeb9f7083cc827f9510c6c4517dc0 *./tests/data/b-libav.swf
 335771 ./tests/data/b-libav.swf
 ./tests/data/b-libav.swf CRC=0xe14e8847
-- 
GitLab