X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavfilter%2Fvf_overlay.c;h=37f19ea01c647692d2c190de9e8f9613ebdde82e;hb=9f18be42f0af47cd88148ce2b0bfac7d2c86c89b;hp=74578205262a3ff13b8e1de9529d705da5fcecdb;hpb=f00e12e630da2b82dac42eb54ad9aa91d800aacd;p=ffmpeg diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c index 74578205262..37f19ea01c6 100644 --- a/libavfilter/vf_overlay.c +++ b/libavfilter/vf_overlay.c @@ -520,10 +520,10 @@ static void blend_image(AVFilterContext *ctx, for (i = 0; i < 3; i++) { int hsub = i ? s->hsub : 0; int vsub = i ? s->vsub : 0; - int src_wp = FF_CEIL_RSHIFT(src_w, hsub); - int src_hp = FF_CEIL_RSHIFT(src_h, vsub); - int dst_wp = FF_CEIL_RSHIFT(dst_w, hsub); - int dst_hp = FF_CEIL_RSHIFT(dst_h, vsub); + int src_wp = AV_CEIL_RSHIFT(src_w, hsub); + int src_hp = AV_CEIL_RSHIFT(src_h, vsub); + int dst_wp = AV_CEIL_RSHIFT(dst_w, hsub); + int dst_hp = AV_CEIL_RSHIFT(dst_h, vsub); int yp = y>>vsub; int xp = x>>hsub; uint8_t *s, *sp, *d, *dp, *a, *ap; @@ -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],