]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/vf_eq.h
Merge commit '404a416d4b1fcbf9db5569481d8181f296c01ea9'
[ffmpeg] / libavfilter / vf_eq.h
index fe9c09caca0130a902fab950456b829309d0dea1..8525048b3fc314b0b5e65501e90ac5953d38ca4a 100644 (file)
 #include "avfilter.h"
 #include "libavutil/eval.h"
 
-static const char * const var_names[] = {
-    "contrast",
-    "brightness",
-    "saturation",
-    "gamma",
-    "gamma_weight",
-    "gamma_r",
-    "gamma_g",
-    "gamma_b",
+static const char *const var_names[] = {
+    "n",   // frame count
+    "pos", // frame position
+    "r",   // frame rate
+    "t",   // timestamp expressed in seconds
     NULL
 };
 
 enum var_name {
-    VAR_CONTRAST ,
-    VAR_BRIGHTNESS ,
-    VAR_SATURATION ,
-    VAR_GAMMA ,
-    VAR_GAMMA_WEIGHT ,
-    VAR_GAMMA_R ,
-    VAR_GAMMA_G ,
-    VAR_GAMMA_B ,
-    VAR_VARS_NB ,
+    VAR_N,
+    VAR_POS,
+    VAR_R,
+    VAR_T,
+    VAR_NB
 };
 
 typedef struct EQParameters {
@@ -70,33 +62,42 @@ typedef struct {
 
     char   *contrast_expr;
     AVExpr *contrast_pexpr;
+    double  contrast;
 
     char   *brightness_expr;
     AVExpr *brightness_pexpr;
+    double  brightness;
 
     char   *saturation_expr;
     AVExpr *saturation_pexpr;
+    double  saturation;
 
     char   *gamma_expr;
     AVExpr *gamma_pexpr;
+    double  gamma;
 
     char   *gamma_weight_expr;
     AVExpr *gamma_weight_pexpr;
+    double  gamma_weight;
 
     char   *gamma_r_expr;
     AVExpr *gamma_r_pexpr;
+    double  gamma_r;
 
     char   *gamma_g_expr;
     AVExpr *gamma_g_pexpr;
+    double  gamma_g;
 
     char   *gamma_b_expr;
     AVExpr *gamma_b_pexpr;
+    double  gamma_b;
 
-    double var_values[VAR_VARS_NB];
+    double var_values[VAR_NB];
 
     void (*process)(struct EQParameters *par, uint8_t *dst, int dst_stride,
                     const uint8_t *src, int src_stride, int w, int h);
 
+    enum EvalMode { EVAL_MODE_INIT, EVAL_MODE_FRAME, EVAL_MODE_NB } eval_mode;
 } EQContext;
 
 void ff_eq_init_x86(EQContext *eq);