Commit 6b090307 authored by Paul B Mahol's avatar Paul B Mahol

avfilter/vf_delogo: unbreak fate

It is not clear what was real intention of previous commit to this filter.
It was not working correctly, hopefully this is fixed now.
It never checked that new x/y/w/h are actually valid, hopeffully this is fixed now.
It uses named variables in expressions that are never set, still not fixed.
It does not set named variables that uses actual frame widht/height, making actual
expressions less usable for our users, still now fixed.
parent e0fab596
...@@ -318,6 +318,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) ...@@ -318,6 +318,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
int direct = 0; int direct = 0;
int plane; int plane;
AVRational sar; AVRational sar;
int ret;
s->var_values[VAR_N] = inlink->frame_count_out; s->var_values[VAR_N] = inlink->frame_count_out;
s->var_values[VAR_T] = TS2T(in->pts, inlink->time_base); s->var_values[VAR_T] = TS2T(in->pts, inlink->time_base);
...@@ -326,6 +327,17 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) ...@@ -326,6 +327,17 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
s->w = av_expr_eval(s->w_pexpr, s->var_values, s); s->w = av_expr_eval(s->w_pexpr, s->var_values, s);
s->h = av_expr_eval(s->h_pexpr, s->var_values, s); s->h = av_expr_eval(s->h_pexpr, s->var_values, s);
ret = config_input(inlink);
if (ret < 0) {
av_frame_free(&in);
return ret;
}
s->w += s->band*2;
s->h += s->band*2;
s->x -= s->band;
s->y -= s->band;
if (av_frame_is_writable(in)) { if (av_frame_is_writable(in)) {
direct = 1; direct = 1;
out = in; out = in;
......
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