ffmpeg: fix assumed decoded_frame->pts timebase
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 26 Jul 2012 15:56:07 +0000 (17:56 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 26 Jul 2012 15:56:07 +0000 (17:56 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
ffmpeg.c

index 84efe0d..b2dc463 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -2418,9 +2418,9 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
 
     /* if the decoder provides a pts, use it instead of the last packet pts.
        the decoder could be delaying output by a packet or more. */
-    if (decoded_frame->pts != AV_NOPTS_VALUE)
-        ist->dts = ist->next_dts = ist->pts = ist->next_pts = decoded_frame->pts;
-    else if (decoded_frame->pkt_pts != AV_NOPTS_VALUE) {
+    if (decoded_frame->pts != AV_NOPTS_VALUE) {
+        ist->dts = ist->next_dts = ist->pts = ist->next_pts = av_rescale_q(decoded_frame->pts, avctx->time_base, AV_TIME_BASE_Q);
+    else if (decoded_frame->pkt_pts != AV_NOPTS_VALUE) {
         decoded_frame->pts = decoded_frame->pkt_pts;
         pkt->pts           = AV_NOPTS_VALUE;
     } else if (pkt->pts != AV_NOPTS_VALUE) {