Re: [FFmpeg-devel] [PATCH] avfilter/vf_vignette: force per frame evaluation if per frame variables are used

2015-04-04 Thread Clément Bœsch
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

2015-04-04 Thread Michael Niedermayer
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