ffmpeg | branch: master | Bela Bodecs <bode...@vivanet.hu> | Tue Jan 19 20:22:06 2016 +0100| [cc83177db4e08bb11908a8a8387859e2e8fcb162] | committer: Michael Niedermayer
vf_overlay: handles expression evaluation of frame size change in frame-by-frame evalutaion mode vf_overlay video filter accepts expressions in its parameters. In 'frame-by-frame' evaluation mode it recalculates them regularly, but incoming video frame size changes did not reflect in their values. So if you used width or height of any source videos in expressions as parameters, they stayed on their initial values. This patch corrects this bug. Signed-off-by: Bela Bodecs <bode...@vivanet.hu> Reviewed-by: Paul B Mahol <one...@gmail.com Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cc83177db4e08bb11908a8a8387859e2e8fcb162 --- libavfilter/vf_overlay.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c index 7457820..3eac7f0 100644 --- a/libavfilter/vf_overlay.c +++ b/libavfilter/vf_overlay.c @@ -599,6 +599,11 @@ static AVFrame *do_blend(AVFilterContext *ctx, AVFrame *mainpic, NAN : mainpic->pts * av_q2d(inlink->time_base); s->var_values[VAR_POS] = pos == -1 ? NAN : pos; + s->var_values[VAR_OVERLAY_W] = s->var_values[VAR_OW] = second->width; + s->var_values[VAR_OVERLAY_H] = s->var_values[VAR_OH] = second->height; + s->var_values[VAR_MAIN_W ] = s->var_values[VAR_MW] = mainpic->width; + s->var_values[VAR_MAIN_H ] = s->var_values[VAR_MH] = mainpic->height; + eval_expr(ctx); av_log(ctx, AV_LOG_DEBUG, "n:%f t:%f pos:%f x:%f xi:%d y:%f yi:%d\n", s->var_values[VAR_N], s->var_values[VAR_T], s->var_values[VAR_POS], _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog