aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClément Bœsch <ubitux@gmail.com>2013-04-10 22:26:06 +0200
committerClément Bœsch <ubitux@gmail.com>2013-04-10 23:16:03 +0200
commit34610e11e7d597d747d9b92e961e17c23ac5b4e0 (patch)
tree9d65df0bf7dd22e115aae9bc7983bca64d984d2c
parent8da1f1f2081c615852e036f3f8e45eee07ee3bbc (diff)
downloadffmpeg-34610e11e7d597d747d9b92e961e17c23ac5b4e0.tar.gz
lavfi/curves: switch to an AVOptions-based system.
-rw-r--r--doc/filters.texi32
-rw-r--r--libavfilter/avfilter.c1
-rw-r--r--libavfilter/vf_curves.c18
3 files changed, 23 insertions, 28 deletions
diff --git a/doc/filters.texi b/doc/filters.texi
index d5b7e68c8d..c94e5123ad 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
-@item red, r
-Set the key points for the red component.
-@item green, g
-Set the key points for the green component.
-@item blue, b
-Set the key points for the blue component.
-@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
-@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
+@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}.
+@item red, r
+Set the key points for the red component.
+@item green, g
+Set the key points for the green component.
+@item blue, b
+Set the key points for the blue component.
+@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
+@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 0d76b985ab..8643992a4b 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 1f4e733c3d..5cd3f52c18 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,
};