mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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 <bodecsb@vivanet.hu> Reviewed-by: Paul B Mahol <onemda@gmail.com Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
ff8c2c4103
commit
cc83177db4
@ -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],
|
||||
|
Loading…
Reference in New Issue
Block a user