Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Michael Niedermayer authored on 2015/03/31 04:50:15... | ... |
@@ -169,15 +169,20 @@ static void update_context(VignetteContext *s, AVFilterLink *inlink, AVFrame *fr |
169 | 169 |
s->var_values[VAR_T] = TS2T(frame->pts, inlink->time_base); |
170 | 170 |
s->var_values[VAR_PTS] = TS2D(frame->pts); |
171 | 171 |
} else { |
172 |
- s->var_values[VAR_N] = 0; |
|
172 |
+ s->var_values[VAR_N] = NAN; |
|
173 | 173 |
s->var_values[VAR_T] = NAN; |
174 | 174 |
s->var_values[VAR_PTS] = NAN; |
175 | 175 |
} |
176 | 176 |
|
177 |
- s->angle = av_clipf(av_expr_eval(s->angle_pexpr, s->var_values, NULL), 0, M_PI_2); |
|
177 |
+ s->angle = av_expr_eval(s->angle_pexpr, s->var_values, NULL); |
|
178 | 178 |
s->x0 = av_expr_eval(s->x0_pexpr, s->var_values, NULL); |
179 | 179 |
s->y0 = av_expr_eval(s->y0_pexpr, s->var_values, NULL); |
180 | 180 |
|
181 |
+ if (isnan(s->x0) || isnan(s->y0) || isnan(s->angle)) |
|
182 |
+ s->eval_mode = EVAL_MODE_FRAME; |
|
183 |
+ |
|
184 |
+ s->angle = av_clipf(s->angle, 0, M_PI_2); |
|
185 |
+ |
|
181 | 186 |
if (s->backward) { |
182 | 187 |
for (y = 0; y < inlink->h; y++) { |
183 | 188 |
for (x = 0; x < inlink->w; x++) |