]> git.sesse.net Git - ffmpeg/commitdiff
ffmpeg: Init dts variables in output_packet()
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 8 Feb 2012 05:19:43 +0000 (06:19 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 8 Feb 2012 05:19:43 +0000 (06:19 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
ffmpeg.c

index db4edd9965fc048223a8f0df33991e8cda96bda6..c327744296920f55c7a13883517aeb2f32e8dc64 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -2227,6 +2227,8 @@ static int output_packet(InputStream *ist,
 
     AVPacket avpkt;
 
+    if (ist->next_dts == AV_NOPTS_VALUE)
+        ist->next_dts = ist->dts;
     if (ist->next_pts == AV_NOPTS_VALUE)
         ist->next_pts = ist->pts;
 
@@ -2241,6 +2243,7 @@ static int output_packet(InputStream *ist,
     }
 
     if (pkt->dts != AV_NOPTS_VALUE) {
+        ist->next_dts = ist->dts = av_rescale_q(pkt->dts, ist->st->time_base, AV_TIME_BASE_Q);
         if (ist->st->codec->codec_type != AVMEDIA_TYPE_VIDEO || !ist->decoding_needed)
             ist->next_pts = ist->pts = av_rescale_q(pkt->dts, ist->st->time_base, AV_TIME_BASE_Q);
         pkt_dts = av_rescale_q(pkt->dts, ist->st->time_base, AV_TIME_BASE_Q);
@@ -2253,6 +2256,7 @@ static int output_packet(InputStream *ist,
     handle_eof:
 
         ist->pts = ist->next_pts;
+        ist->dts = ist->next_dts;
 
         if (avpkt.size && avpkt.size != pkt->size) {
             av_log(NULL, ist->showed_multi_packet_warning ? AV_LOG_VERBOSE : AV_LOG_WARNING,