[FFmpeg-cvslog] lavfi/curves: introduce "all" field in presets and use it.

Clément Bœsch git at videolan.org
Thu Apr 11 13:07:26 CEST 2013


ffmpeg | branch: master | Clément Bœsch <ubitux at gmail.com> | Thu Apr 11 13:03:25 2013 +0200| [2844ea86c8f704444eebb59f78b7b04843d6b15a] | committer: Clément Bœsch

lavfi/curves: introduce "all" field in presets and use it.

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

 libavfilter/vf_curves.c |   45 ++++++++++++++-------------------------------
 1 file changed, 14 insertions(+), 31 deletions(-)

diff --git a/libavfilter/vf_curves.c b/libavfilter/vf_curves.c
index 378754d..bed5327 100644
--- a/libavfilter/vf_curves.c
+++ b/libavfilter/vf_curves.c
@@ -87,6 +87,7 @@ static const struct {
     const char *r;
     const char *g;
     const char *b;
+    const char *all;
 } curves_presets[] = {
     [PRESET_COLOR_NEGATIVE] = {
         "0/1 0.129/1 0.466/0.498 0.725/0 1/0",
@@ -98,35 +99,13 @@ static const struct {
         "0.25/0.188 0.38/0.501 0.745/0.815 1/0.815",
         "0.231/0.094 0.709/0.874",
     },
-    [PRESET_DARKER] = {
-        "0.5/0.4", "0.5/0.4", "0.5/0.4",
-    },
-    [PRESET_INCREASE_CONTRAST] = {
-        "0.149/0.066 0.831/0.905 0.905/0.98",
-        "0.149/0.066 0.831/0.905 0.905/0.98",
-        "0.149/0.066 0.831/0.905 0.905/0.98",
-    },
-    [PRESET_LIGHTER] = {
-        "0.4/0.5", "0.4/0.5", "0.4/0.5",
-    },
-    [PRESET_LINEAR_CONTRAST] = {
-        "0.305/0.286 0.694/0.713",
-        "0.305/0.286 0.694/0.713",
-        "0.305/0.286 0.694/0.713",
-    },
-    [PRESET_MEDIUM_CONTRAST] = {
-        "0.286/0.219 0.639/0.643",
-        "0.286/0.219 0.639/0.643",
-        "0.286/0.219 0.639/0.643",
-    },
-    [PRESET_NEGATIVE] = {
-        "0/1 1/0", "0/1 1/0", "0/1 1/0",
-    },
-    [PRESET_STRONG_CONTRAST] = {
-        "0.301/0.196 0.592/0.6 0.686/0.737",
-        "0.301/0.196 0.592/0.6 0.686/0.737",
-        "0.301/0.196 0.592/0.6 0.686/0.737",
-    },
+    [PRESET_DARKER]             = { .all = "0.5/0.4" },
+    [PRESET_INCREASE_CONTRAST]  = { .all = "0.149/0.066 0.831/0.905 0.905/0.98" },
+    [PRESET_LIGHTER]            = { .all = "0.4/0.5" },
+    [PRESET_LINEAR_CONTRAST]    = { .all = "0.305/0.286 0.694/0.713" },
+    [PRESET_MEDIUM_CONTRAST]    = { .all = "0.286/0.219 0.639/0.643" },
+    [PRESET_NEGATIVE]           = { .all = "0/1 1/0" },
+    [PRESET_STRONG_CONTRAST]    = { .all = "0.301/0.196 0.592/0.6 0.686/0.737" },
     [PRESET_VINTAGE] = {
         "0/0.11 0.42/0.51 1/0.95",
         "0.50/0.48",
@@ -322,11 +301,15 @@ static av_cold int init(AVFilterContext *ctx, const char *args)
     CurvesContext *curves = ctx->priv;
     struct keypoint *comp_points[NB_COMP] = {0};
     char **pts = curves->comp_points_str;
+    const char *allp = curves->comp_points_str_all;
+
+    if (!allp && curves->preset != PRESET_NONE && curves_presets[curves->preset].all)
+        allp = curves_presets[curves->preset].all;
 
-    if (curves->comp_points_str_all) {
+    if (allp) {
         for (i = 0; i < NB_COMP; i++) {
             if (!pts[i])
-                pts[i] = av_strdup(curves->comp_points_str_all);
+                pts[i] = av_strdup(allp);
             if (!pts[i])
                 return AVERROR(ENOMEM);
         }



More information about the ffmpeg-cvslog mailing list