From 9b195435b3f98480e300f7c00a20e52c9bbce65f Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Thu, 25 Nov 2010 21:22:55 +0000 Subject: [PATCH] Fix timestamp scaling in the overlay filter. Compute the outpicref PTS in start_frame(), since it is required for comparing that value with the value of the overpicref. Originally committed as revision 25828 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavfilter/vf_overlay.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c index 1c04ecd34e..a170e817a2 100644 --- a/libavfilter/vf_overlay.c +++ b/libavfilter/vf_overlay.c @@ -212,6 +212,8 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref) OverlayContext *over = ctx->priv; inlink->dst->outputs[0]->out_buf = outpicref; + outpicref->pts = av_rescale_q(outpicref->pts, ctx->inputs[MAIN]->time_base, + ctx->outputs[0]->time_base); if (!over->overpicref || over->overpicref->pts < outpicref->pts) { AVFilterBufferRef *old = over->overpicref; @@ -322,9 +324,6 @@ static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) AVFilterBufferRef *outpicref = outlink->out_buf; OverlayContext *over = ctx->priv; - outpicref->pts = av_rescale_q(outpicref->pts, ctx->inputs[MAIN]->time_base, - outlink->time_base); - if (over->overpicref && !(over->x >= outpicref->video->w || over->y >= outpicref->video->h || y+h < over->y || y >= over->y + over->overpicref->video->h)) {