avfilter/phase: do not pass the whole context to analyze_plane().
authorClément Bœsch <u@pkh.me>
Sat, 3 May 2014 20:41:33 +0000 (22:41 +0200)
committerClément Bœsch <u@pkh.me>
Thu, 8 May 2014 20:59:47 +0000 (22:59 +0200)
Also make sure the AVFilterContext is only being used for logging by
changing the type to void*

libavfilter/vf_phase.c

index 281f736..11337e4 100644 (file)
@@ -112,8 +112,7 @@ static int config_input(AVFilterLink *inlink)
  * Find which field combination has the smallest average squared difference
  * between the fields.
  */
-static enum PhaseMode analyze_plane(AVFilterContext *ctx, PhaseContext *s,
-                                    AVFrame *old, AVFrame *new)
+static enum PhaseMode analyze_plane(void *ctx, enum PhaseMode mode, AVFrame *old, AVFrame *new)
 {
     double bdiff, tdiff, pdiff, scale;
     const int ns = new->linesize[0];
@@ -123,7 +122,6 @@ static enum PhaseMode analyze_plane(AVFilterContext *ctx, PhaseContext *s,
     const int h = new->height;
     const int w = new->width;
     int bdif, tdif, pdif;
-    enum PhaseMode mode = s->mode;
     uint8_t *end, *rend;
     int top, t;
 
@@ -261,7 +259,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
             return AVERROR(ENOMEM);
         }
     } else {
-        mode = analyze_plane(ctx, s, s->frame, in);
+        mode = analyze_plane(ctx, s->mode, s->frame, in);
     }
 
     for (plane = 0; plane < s->nb_planes; plane++) {