diff --git a/ffmpeg.c b/ffmpeg.c index 84efe0d7c1..b2dc463673 100644 --- 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) {