[FFmpeg-cvslog] lavfi/curves: switch to an AVOptions-based system.

Clément Bœsch git at videolan.org
Wed Apr 10 23:34:35 CEST 2013


ffmpeg | branch: master | Clément Bœsch <ubitux at gmail.com> | Wed Apr 10 22:26:06 2013 +0200| [34610e11e7d597d747d9b92e961e17c23ac5b4e0] | committer: Clément Bœsch

lavfi/curves: switch to an AVOptions-based system.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=34610e11e7d597d747d9b92e961e17c23ac5b4e0
---

 doc/filters.texi        |   32 ++++++++++++++------------------
 libavfilter/avfilter.c  |    1 +
 libavfilter/vf_curves.c |   18 ++++++++----------
 3 files changed, 23 insertions(+), 28 deletions(-)

diff --git a/doc/filters.texi b/doc/filters.texi
index d5b7e68..c94e512 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -2369,30 +2369,15 @@ If there is no key point defined in @code{x=0}, the filter will automatically
 insert a @var{(0;0)} point. In the same way, if there is no key point defined
 in @code{x=1}, the filter will automatically insert a @var{(1;1)} point.
 
-The filter accepts parameters as a list of @var{key}=@var{value}
-pairs, separated by ":". If the key of the first options is omitted,
-the arguments are interpreted according to the syntax
-curves[=@var{preset}].
-
-A description of the accepted parameters follows.
+The filter accepts the following options:
 
 @table @option
- at item red, r
-Set the key points for the red component.
- at item green, g
-Set the key points for the green component.
- at item blue, b
-Set the key points for the blue component.
- at item all
-Set the key points for all components.
-Can be used in addition to the other key points component
-options. In this case, the unset component(s) will fallback on this
- at option{all} setting.
 @item preset
 Select one of the available color presets. This option can not be used in
 addition to the @option{r}, @option{g}, @option{b} parameters.
 Available presets are:
 @table @samp
+ at item none
 @item color_negative
 @item cross_process
 @item darker
@@ -2404,7 +2389,18 @@ Available presets are:
 @item strong_contrast
 @item vintage
 @end table
-Default is unset.
+Default is @code{none}.
+ at item red, r
+Set the key points for the red component.
+ at item green, g
+Set the key points for the green component.
+ at item blue, b
+Set the key points for the blue component.
+ at item all
+Set the key points for all components.
+Can be used in addition to the other key points component
+options. In this case, the unset component(s) will fallback on this
+ at option{all} setting.
 @end table
 
 To avoid some filtergraph syntax conflicts, each key points list need to be
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 0d76b98..8643992 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -662,6 +662,7 @@ int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque
         !strcmp(filter->filter->name,  "colormatrix") ||
         !strcmp(filter->filter->name,  "crop"      ) ||
         !strcmp(filter->filter->name,  "cropdetect") ||
+        !strcmp(filter->filter->name,  "curves"    ) ||
         !strcmp(filter->filter->name,  "delogo"    ) ||
         !strcmp(filter->filter->name,  "drawbox"   ) ||
         !strcmp(filter->filter->name,  "drawtext"  ) ||
diff --git a/libavfilter/vf_curves.c b/libavfilter/vf_curves.c
index 1f4e733..5cd3f52 100644
--- a/libavfilter/vf_curves.c
+++ b/libavfilter/vf_curves.c
@@ -59,14 +59,8 @@ typedef struct {
 #define OFFSET(x) offsetof(CurvesContext, x)
 #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
 static const AVOption curves_options[] = {
-    { "red",   "set red points coordinates",   OFFSET(comp_points_str[0]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
-    { "r",     "set red points coordinates",   OFFSET(comp_points_str[0]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
-    { "green", "set green points coordinates", OFFSET(comp_points_str[1]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
-    { "g",     "set green points coordinates", OFFSET(comp_points_str[1]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
-    { "blue",  "set blue points coordinates",  OFFSET(comp_points_str[2]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
-    { "b",     "set blue points coordinates",  OFFSET(comp_points_str[2]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
-    { "all",   "set points coordinates for all components",   OFFSET(comp_points_str_all),AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
     { "preset", "select a color curves preset", OFFSET(preset), AV_OPT_TYPE_INT, {.i64=PRESET_NONE}, PRESET_NONE, NB_PRESETS-1, FLAGS, "preset_name" },
+        { "none",               NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_NONE},                 INT_MIN, INT_MAX, FLAGS, "preset_name" },
         { "color_negative",     NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_COLOR_NEGATIVE},       INT_MIN, INT_MAX, FLAGS, "preset_name" },
         { "cross_process",      NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_CROSS_PROCESS},        INT_MIN, INT_MAX, FLAGS, "preset_name" },
         { "darker",             NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_DARKER},               INT_MIN, INT_MAX, FLAGS, "preset_name" },
@@ -77,6 +71,13 @@ static const AVOption curves_options[] = {
         { "negative",           NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_NEGATIVE},             INT_MIN, INT_MAX, FLAGS, "preset_name" },
         { "strong_contrast",    NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_STRONG_CONTRAST},      INT_MIN, INT_MAX, FLAGS, "preset_name" },
         { "vintage",            NULL, 0, AV_OPT_TYPE_CONST, {.i64=PRESET_VINTAGE},              INT_MIN, INT_MAX, FLAGS, "preset_name" },
+    { "red",   "set red points coordinates",   OFFSET(comp_points_str[0]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
+    { "r",     "set red points coordinates",   OFFSET(comp_points_str[0]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
+    { "green", "set green points coordinates", OFFSET(comp_points_str[1]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
+    { "g",     "set green points coordinates", OFFSET(comp_points_str[1]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
+    { "blue",  "set blue points coordinates",  OFFSET(comp_points_str[2]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
+    { "b",     "set blue points coordinates",  OFFSET(comp_points_str[2]), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
+    { "all",   "set points coordinates for all components",   OFFSET(comp_points_str_all),AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
     { NULL }
 };
 
@@ -447,8 +448,6 @@ static const AVFilterPad curves_outputs[] = {
      { NULL }
 };
 
-static const char *const shorthand[] = { "preset", NULL };
-
 AVFilter avfilter_vf_curves = {
     .name          = "curves",
     .description   = NULL_IF_CONFIG_SMALL("Adjust components curves."),
@@ -458,5 +457,4 @@ AVFilter avfilter_vf_curves = {
     .inputs        = curves_inputs,
     .outputs       = curves_outputs,
     .priv_class    = &curves_class,
-    .shorthand     = shorthand,
 };



More information about the ffmpeg-cvslog mailing list