diff --git a/ffmpeg.c b/ffmpeg.c index dfef64f344..c48aec7116 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -202,13 +202,14 @@ static void sub2video_push_ref(InputStream *ist, int64_t pts) AV_BUFFERSRC_FLAG_PUSH); } -static void sub2video_update(InputStream *ist, AVSubtitle *sub, int64_t pts) +static void sub2video_update(InputStream *ist, AVSubtitle *sub) { int w = ist->sub2video.w, h = ist->sub2video.h; AVFilterBufferRef *ref = ist->sub2video.ref; int8_t *dst; int dst_linesize; int i; + int64_t pts = av_rescale_q(sub->pts, AV_TIME_BASE_Q, ist->st->time_base); if (!ref) return; @@ -1680,7 +1681,7 @@ static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output) FFSWAP(AVSubtitle, subtitle, ist->prev_sub.subtitle); } - sub2video_update(ist, &subtitle, pkt->pts); + sub2video_update(ist, &subtitle); if (!*got_output || !subtitle.num_rects) return ret;