Commit cc83177d authored by Bela Bodecs's avatar Bela Bodecs Committed by 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: 's avatarBela Bodecs <bodecsb@vivanet.hu>
Reviewed-by: Paul B Mahol <onemda@gmail.com
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent ff8c2c41
......@@ -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],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment