Re: [FFmpeg-devel] [PATCH] avfilter/vf_vignette: force per frame evaluation if per frame variables are used
On Mon, Mar 30, 2015 at 09:57:35PM +0200, Michael Niedermayer wrote: Signed-off-by: Michael Niedermayer michae...@gmx.at --- libavfilter/vf_vignette.c |9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libavfilter/vf_vignette.c b/libavfilter/vf_vignette.c index 806bd72..9a05651 100644 --- a/libavfilter/vf_vignette.c +++ b/libavfilter/vf_vignette.c @@ -161,15 +161,20 @@ static void update_context(VignetteContext *s, AVFilterLink *inlink, AVFrame *fr s-var_values[VAR_T] = TS2T(frame-pts, inlink-time_base); s-var_values[VAR_PTS] = TS2D(frame-pts); } else { -s-var_values[VAR_N] = 0; +s-var_values[VAR_N] = NAN; Why? s-var_values[VAR_T] = NAN; s-var_values[VAR_PTS] = NAN; } -s-angle = av_clipf(av_expr_eval(s-angle_pexpr, s-var_values, NULL), 0, M_PI_2); +s-angle = av_expr_eval(s-angle_pexpr, s-var_values, NULL); s-x0 = av_expr_eval(s-x0_pexpr, s-var_values, NULL); s-y0 = av_expr_eval(s-y0_pexpr, s-var_values, NULL); +if (isnan(s-x0) || isnan(s-y0) || isnan(s-angle)) +s-eval_mode = EVAL_MODE_FRAME; + +s-angle = av_clipf(s-angle, 0, M_PI_2); + if (s-backward) { for (y = 0; y inlink-h; y++) { for (x = 0; x inlink-w; x++) -- Clément B. pgpSfM2O3VWo8.pgp Description: PGP signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] avfilter/vf_vignette: force per frame evaluation if per frame variables are used
On Sat, Apr 04, 2015 at 11:42:34AM +0200, Clément Bœsch wrote: On Mon, Mar 30, 2015 at 09:57:35PM +0200, Michael Niedermayer wrote: Signed-off-by: Michael Niedermayer michae...@gmx.at --- libavfilter/vf_vignette.c |9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libavfilter/vf_vignette.c b/libavfilter/vf_vignette.c index 806bd72..9a05651 100644 --- a/libavfilter/vf_vignette.c +++ b/libavfilter/vf_vignette.c @@ -161,15 +161,20 @@ static void update_context(VignetteContext *s, AVFilterLink *inlink, AVFrame *fr s-var_values[VAR_T] = TS2T(frame-pts, inlink-time_base); s-var_values[VAR_PTS] = TS2D(frame-pts); } else { -s-var_values[VAR_N] = 0; +s-var_values[VAR_N] = NAN; Why? if some code uses VAR_N, the value depends on the current frame number so its not constant and per frame evaluation is needed or am i missing something ? [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Awnsering whenever a program halts or runs forever is On a turing machine, in general impossible (turings halting problem). On any real computer, always possible as a real computer has a finite number of states N, and will either halt in less than N cycles or never halt. signature.asc Description: Digital signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel