ffmpeg: use PTS from the AVSubtitle structure for sub2video.
authorNicolas George <nicolas.george@normalesup.org>
Sun, 9 Sep 2012 14:37:45 +0000 (16:37 +0200)
committerNicolas George <nicolas.george@normalesup.org>
Sat, 15 Sep 2012 14:14:33 +0000 (16:14 +0200)
ffmpeg.c

index dfef64f..c48aec7 100644 (file)
--- 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;