diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 99e012ab2f..30b0d21a5b 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1701,6 +1701,9 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, avctx->pkt = avpkt; *got_sub_ptr = 0; avcodec_get_subtitle_defaults(sub); + if (avctx->pkt_timebase.den && avpkt->pts != AV_NOPTS_VALUE) + sub->pts = av_rescale_q(avpkt->pts, + avctx->pkt_timebase, AV_TIME_BASE_Q); ret = avctx->codec->decode(avctx, sub, got_sub_ptr, avpkt); if (*got_sub_ptr) avctx->frame_number++;