lavfi/curves: support preset shorthand.
authorClément Bœsch <ubitux@gmail.com>
Mon, 25 Mar 2013 23:00:15 +0000 (00:00 +0100)
committerClément Bœsch <ubitux@gmail.com>
Mon, 25 Mar 2013 23:04:06 +0000 (00:04 +0100)
doc/filters.texi
libavfilter/version.h
libavfilter/vf_curves.c
tests/fate/filter.mak

index 94fc6f3..450f6ab 100644 (file)
@@ -2328,8 +2328,10 @@ 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 ":".
+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.
 
@@ -2390,6 +2392,12 @@ The previous example can also be achieved with the associated built-in preset:
 @example
 curves=preset=vintage
 @end example
+
+@item
+Or simply:
+@example
+curves=vintage
+@end example
 @end itemize
 
 @section decimate
index d0ed722..ce6d874 100644 (file)
@@ -30,7 +30,7 @@
 
 #define LIBAVFILTER_VERSION_MAJOR  3
 #define LIBAVFILTER_VERSION_MINOR  48
-#define LIBAVFILTER_VERSION_MICRO 103
+#define LIBAVFILTER_VERSION_MICRO 104
 
 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
                                                LIBAVFILTER_VERSION_MINOR, \
index d83b702..6137262 100644 (file)
@@ -287,12 +287,6 @@ static av_cold int init(AVFilterContext *ctx, const char *args)
     CurvesContext *curves = ctx->priv;
     struct keypoint *comp_points[NB_COMP] = {0};
 
-    curves->class = &curves_class;
-    av_opt_set_defaults(curves);
-
-    if ((ret = av_set_options_string(curves, args, "=", ":")) < 0)
-        return ret;
-
     if (curves->preset) {
         char **pts = curves->comp_points_str;
         if (pts[0] || pts[1] || pts[2]) {
@@ -354,7 +348,6 @@ static av_cold int init(AVFilterContext *ctx, const char *args)
         }
     }
 
-    av_opt_free(curves);
     return 0;
 }
 
@@ -424,6 +417,8 @@ 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."),
@@ -433,4 +428,5 @@ AVFilter avfilter_vf_curves = {
     .inputs        = curves_inputs,
     .outputs       = curves_outputs,
     .priv_class    = &curves_class,
+    .shorthand     = shorthand,
 };
index 23724b1..4b1b056 100644 (file)
@@ -48,7 +48,7 @@ FATE_HQDN3D += fate-filter-hqdn3d
 fate-filter-hqdn3d: CMD = framecrc -idct simple -i $(SAMPLES)/smjpeg/scenwin.mjpg -vf perms=random,hqdn3d -an
 FATE_FILTER-$(call ALLYES, SMJPEG_DEMUXER MJPEG_DECODER PERMS_FILTER HQDN3D_FILTER) += $(FATE_HQDN3D)
 
-fate-filter-curves: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgb_median.avi -vf perms=random,curves=preset=vintage
+fate-filter-curves: CMD = framecrc -i $(SAMPLES)/utvideo/utvideo_rgb_median.avi -vf perms=random,curves=vintage
 FATE_FILTER-$(call ALLYES, UTVIDEO_DECODER AVI_DEMUXER PERMS_FILTER CURVES_FILTER) += fate-filter-curves
 
 FATE_GRADFUN += fate-filter-gradfun