summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libhb/chroma_smooth.c370
-rw-r--r--libhb/common.c5
-rw-r--r--libhb/common.h1
-rw-r--r--libhb/internal.h1
-rw-r--r--libhb/param.c225
-rw-r--r--libhb/preset.c35
-rw-r--r--libhb/preset_builtin.h239
-rw-r--r--preset/preset_builtin.json231
-rw-r--r--preset/preset_builtin.list2
-rw-r--r--preset/preset_cli_default.json3
-rw-r--r--preset/preset_template.json3
-rw-r--r--test/test.c113
12 files changed, 1216 insertions, 12 deletions
diff --git a/libhb/chroma_smooth.c b/libhb/chroma_smooth.c
new file mode 100644
index 000000000..e27ecaa77
--- /dev/null
+++ b/libhb/chroma_smooth.c
@@ -0,0 +1,370 @@
+/* chroma_smooth.c
+
+ Copyright (c) 2002 RĂ©mi Guyomarch <rguyom at pobox.com>
+ Copyright (c) 2003-2019 HandBrake Team
+ This file is part of the HandBrake source code
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License v2.
+ For full terms see the file COPYING file or visit http://www.gnu.org/licenses/gpl-2.0.html
+ */
+
+#include "hb.h"
+
+#define CHROMA_SMOOTH_STRENGTH_DEFAULT 0.25
+#define CHROMA_SMOOTH_SIZE_DEFAULT 7
+#define CHROMA_SMOOTH_SIZE_MIN 3
+#define CHROMA_SMOOTH_SIZE_MAX 63
+
+typedef struct
+{
+ int pix_fmt; // source pixel format
+ int width; // source video width
+ double strength; // strength
+ int size; // pixel context region width (must be odd)
+
+ int steps;
+ int amount;
+ int scalebits;
+ int32_t halfscale;
+} chroma_smooth_plane_context_t;
+
+typedef struct
+{
+ uint32_t * SC[CHROMA_SMOOTH_SIZE_MAX - 1];
+} chroma_smooth_thread_context_t;
+
+typedef chroma_smooth_thread_context_t chroma_smooth_thread_context3_t[3];
+
+struct hb_filter_private_s
+{
+ chroma_smooth_plane_context_t plane_ctx[3];
+ chroma_smooth_thread_context3_t * thread_ctx;
+ int threads;
+};
+
+static int chroma_smooth_init(hb_filter_object_t *filter,
+ hb_filter_init_t *init);
+
+static int chroma_smooth_init_thread(hb_filter_object_t *filter, int threads);
+
+static int chroma_smooth_work(hb_filter_object_t *filter,
+ hb_buffer_t ** buf_in,
+ hb_buffer_t ** buf_out);
+static int chroma_smooth_work_thread(hb_filter_object_t *filter,
+ hb_buffer_t ** buf_in,
+ hb_buffer_t ** buf_out, int thread);
+
+static void chroma_smooth_close(hb_filter_object_t *filter);
+
+static const char chroma_smooth_template[] =
+ "cb-strength=^"HB_FLOAT_REG"$:cb-size=^"HB_INT_REG"$:"
+ "cr-strength=^"HB_FLOAT_REG"$:cr-size=^"HB_INT_REG"$";
+
+hb_filter_object_t hb_filter_chroma_smooth =
+{
+ .id = HB_FILTER_CHROMA_SMOOTH,
+ .enforce_order = 1,
+ .name = "Chroma Smooth",
+ .settings = NULL,
+ .init = chroma_smooth_init,
+ .init_thread = chroma_smooth_init_thread,
+ .work = chroma_smooth_work,
+ .work_thread = chroma_smooth_work_thread,
+ .close = chroma_smooth_close,
+ .settings_template = chroma_smooth_template,
+};
+
+static void luma_copy(const uint8_t *src,
+ uint8_t *dst,
+ const int width,
+ const int height,
+ const int stride,
+ chroma_smooth_plane_context_t * ctx,
+ chroma_smooth_thread_context_t * tctx)
+{
+ for (int y = 0; y < height; y++)
+ {
+ memcpy(dst + y * stride, src + y * stride, stride);
+ }
+}
+
+static void chroma_smooth(const uint8_t *src,
+ uint8_t *dst,
+ const int width,
+ const int height,
+ const int stride,
+ chroma_smooth_plane_context_t * ctx,
+ chroma_smooth_thread_context_t * tctx)
+{
+ uint32_t **SC = tctx->SC;
+ uint32_t SR[CHROMA_SMOOTH_SIZE_MAX - 1],
+ Tmp1,
+ Tmp2;
+ const uint8_t *src2 = src; // avoid gcc warning
+ int32_t res;
+ int x, y, z;
+ int amount = ctx->amount;
+ int steps = ctx->steps;
+ int scalebits = ctx->scalebits;
+ int32_t halfscale = ctx->halfscale;
+
+ if (!amount)
+ {
+ if (src != dst)
+ {
+ memcpy(dst, src, stride*height);
+ }
+
+ return;
+ }
+
+ for (y = 0; y < 2 * steps; y++)
+ {
+ memset(SC[y], 0, sizeof(SC[y][0]) * (width + 2 * steps));
+ }
+
+ for (y = -steps; y < height + steps; y++)
+ {
+ if (y < height)
+ {
+ src2 = src;
+ }
+
+ memset(SR, 0, sizeof(SR[0]) * (2 * steps - 1));
+
+ for (x = -steps; x < width + steps; x++)
+ {
+ Tmp1 = x <= 0 ? src2[0] : x >= width ? src2[width - 1] : src2[x];
+
+ for (z = 0; z < steps * 2; z += 2)
+ {
+ Tmp2 = SR[z + 0] + Tmp1; SR[z + 0] = Tmp1;
+ Tmp1 = SR[z + 1] + Tmp2; SR[z + 1] = Tmp2;
+ }
+
+ for (z = 0; z < steps * 2; z += 2)
+ {
+ Tmp2 = SC[z + 0][x + steps] + Tmp1; SC[z + 0][x + steps] = Tmp1;
+ Tmp1 = SC[z + 1][x + steps] + Tmp2; SC[z + 1][x + steps] = Tmp2;
+ }
+
+ if (x >= steps && y >= steps)
+ {
+ const uint8_t * srx = src - steps * stride + x - steps;
+ uint8_t * dsx = dst - steps * stride + x - steps;
+
+ //res = (int32_t)*srx + ((((int32_t)*srx -
+ // (int32_t)((Tmp1 + halfscale) >> scalebits)) * amount) >> 16);
+ res = (int32_t)*srx - ((((int32_t)*srx -
+ (int32_t)((Tmp1 + halfscale) >> scalebits)) * amount) >> 16);
+ *dsx = res > 255 ? 255 : res < 0 ? 0 : (uint8_t)res;
+ }
+ }
+
+ if (y >= 0)
+ {
+ dst += stride;
+ src += stride;
+ }
+ }
+}
+
+static int chroma_smooth_init(hb_filter_object_t *filter,
+ hb_filter_init_t *init)
+{
+ filter->private_data = calloc(sizeof(struct hb_filter_private_s), 1);
+ if (filter->private_data == NULL)
+ {
+ hb_error("Chroma Smooth calloc failed");
+ return -1;
+ }
+ hb_filter_private_t * pv = filter->private_data;
+
+ // Mark parameters unset
+ for (int c = 0; c < 3; c++)
+ {
+ pv->plane_ctx[c].strength = -1;
+ pv->plane_ctx[c].size = -1;
+ }
+
+ // Read user parameters
+ if (filter->settings != NULL)
+ {
+ hb_dict_t * dict = filter->settings;
+ hb_dict_extract_double(&pv->plane_ctx[1].strength, dict, "cb-strength");
+ hb_dict_extract_int(&pv->plane_ctx[1].size, dict, "cb-size");
+
+ hb_dict_extract_double(&pv->plane_ctx[2].strength, dict, "cr-strength");
+ hb_dict_extract_int(&pv->plane_ctx[2].size, dict, "cr-size");
+ }
+
+ // Cascade values
+ // Cr not set; inherit Cb. Cb not set; defaults.
+ for (int c = 2; c < 3; c++)
+ {
+ chroma_smooth_plane_context_t * prev_ctx = &pv->plane_ctx[c - 1];
+ chroma_smooth_plane_context_t * ctx = &pv->plane_ctx[c];
+
+ if (ctx->strength == -1) ctx->strength = prev_ctx->strength;
+ if (ctx->size == -1) ctx->size = prev_ctx->size;
+ }
+
+ for (int c = 0; c < 3; c++)
+ {
+ chroma_smooth_plane_context_t * ctx = &pv->plane_ctx[c];
+
+ ctx->width = init->geometry.width;
+
+ // Replace unset values with defaults
+ if (ctx->strength == -1)
+ {
+ ctx->strength = CHROMA_SMOOTH_STRENGTH_DEFAULT;
+ }
+ if (ctx->size == -1)
+ {
+ ctx->size = CHROMA_SMOOTH_SIZE_DEFAULT;
+ }
+
+ // Sanitize
+ if (ctx->strength < 0) ctx->strength = 0;
+ if (ctx->strength > 1.5) ctx->strength = 1.5;
+ if (ctx->size % 2 == 0) ctx->size--;
+ if (ctx->size < CHROMA_SMOOTH_SIZE_MIN) ctx->size = CHROMA_SMOOTH_SIZE_MIN;
+ if (ctx->size > CHROMA_SMOOTH_SIZE_MAX) ctx->size = CHROMA_SMOOTH_SIZE_MAX;
+
+ ctx->amount = ctx->strength * 65536.0;
+ ctx->steps = ctx->size / 2;
+ ctx->scalebits = ctx->steps * 4;
+ ctx->halfscale = 1 << (ctx->scalebits - 1);
+ }
+
+ if (chroma_smooth_init_thread(filter, 1) < 0)
+ {
+ chroma_smooth_close(filter);
+ return -1;
+ }
+
+ return 0;
+}
+
+static void chroma_smooth_thread_close(hb_filter_private_t *pv)
+{
+ int c, z;
+ for (c = 0; c < 3; c++)
+ {
+ chroma_smooth_plane_context_t * ctx = &pv->plane_ctx[c];
+ for (int t = 0; t < pv->threads; t++)
+ {
+ chroma_smooth_thread_context_t * tctx = &pv->thread_ctx[t][c];
+ for (z = 0; z < 2 * ctx->steps; z++)
+ {
+ free(tctx->SC[z]);
+ tctx->SC[z] = NULL;
+ }
+ }
+ }
+ free(pv->thread_ctx);
+}
+
+static int chroma_smooth_init_thread(hb_filter_object_t *filter, int threads)
+{
+ hb_filter_private_t * pv = filter->private_data;
+
+ chroma_smooth_thread_close(pv);
+ pv->thread_ctx = calloc(threads, sizeof(chroma_smooth_thread_context3_t));
+ pv->threads = threads;
+ for (int c = 0; c < 3; c++)
+ {
+ chroma_smooth_plane_context_t * ctx = &pv->plane_ctx[c];
+ int w = hb_image_width(ctx->pix_fmt, ctx->width, c);
+
+ for (int t = 0; t < threads; t++)
+ {
+ chroma_smooth_thread_context_t * tctx = &pv->thread_ctx[t][c];
+ int z;
+ for (z = 0; z < 2 * ctx->steps; z++)
+ {
+ tctx->SC[z] = malloc(sizeof(*(tctx->SC[z])) *
+ (w + 2 * ctx->steps));
+ if (tctx->SC[z] == NULL)
+ {
+ hb_error("Chroma Smooth calloc failed");
+ chroma_smooth_close(filter);
+ return -1;
+ }
+ }
+ }
+ }
+ return 0;
+}
+
+static void chroma_smooth_close(hb_filter_object_t * filter)
+{
+ hb_filter_private_t *pv = filter->private_data;
+
+ if (pv == NULL)
+ {
+ return;
+ }
+
+ chroma_smooth_thread_close(pv);
+ free(pv);
+ filter->private_data = NULL;
+}
+
+static int chroma_smooth_work_thread(hb_filter_object_t *filter,
+ hb_buffer_t ** buf_in,
+ hb_buffer_t ** buf_out, int thread)
+{
+ hb_filter_private_t *pv = filter->private_data;
+ hb_buffer_t *in = *buf_in, *out;
+
+ if (in->s.flags & HB_BUF_FLAG_EOF)
+ {
+ *buf_out = in;
+ *buf_in = NULL;
+ return HB_FILTER_DONE;
+ }
+
+ out = hb_frame_buffer_init(in->f.fmt, in->f.width, in->f.height);
+
+ int c;
+ for (c = 0; c < 3; c++)
+ {
+ chroma_smooth_plane_context_t * ctx = &pv->plane_ctx[c];
+ chroma_smooth_thread_context_t * tctx = &pv->thread_ctx[thread][c];
+
+ if (c == 0)
+ {
+ // Luma
+ luma_copy(in->plane[c].data,
+ out->plane[c].data,
+ in->plane[c].width,
+ in->plane[c].height,
+ in->plane[c].stride,
+ ctx, tctx);
+ }
+ else
+ {
+ // Chroma
+ chroma_smooth(in->plane[c].data,
+ out->plane[c].data,
+ in->plane[c].width,
+ in->plane[c].height,
+ in->plane[c].stride,
+ ctx, tctx);
+ }
+ }
+
+ out->s = in->s;
+ *buf_out = out;
+
+ return HB_FILTER_OK;
+}
+
+static int chroma_smooth_work(hb_filter_object_t *filter,
+ hb_buffer_t ** buf_in,
+ hb_buffer_t ** buf_out)
+{
+ return chroma_smooth_work_thread(filter, buf_in, buf_out, 0);
+}
diff --git a/libhb/common.c b/libhb/common.c
index 7e3636d14..8bc47adbe 100644
--- a/libhb/common.c
+++ b/libhb/common.c
@@ -4101,6 +4101,10 @@ hb_filter_object_t * hb_filter_get( int filter_id )
filter = &hb_filter_nlmeans;
break;
+ case HB_FILTER_CHROMA_SMOOTH:
+ filter = &hb_filter_chroma_smooth;
+ break;
+
case HB_FILTER_RENDER_SUB:
filter = &hb_filter_render_sub;
break;
@@ -4164,6 +4168,7 @@ hb_filter_object_t * hb_filter_init( int filter_id )
{
case HB_FILTER_UNSHARP:
case HB_FILTER_LAPSHARP:
+ case HB_FILTER_CHROMA_SMOOTH:
{
hb_filter_object_t * wrapper;
diff --git a/libhb/common.h b/libhb/common.h
index 2d332d7fe..a2a86fa83 100644
--- a/libhb/common.h
+++ b/libhb/common.h
@@ -1322,6 +1322,7 @@ enum
HB_FILTER_DENOISE,
HB_FILTER_HQDN3D = HB_FILTER_DENOISE,
HB_FILTER_NLMEANS,
+ HB_FILTER_CHROMA_SMOOTH,
HB_FILTER_RENDER_SUB,
HB_FILTER_CROP_SCALE,
HB_FILTER_LAPSHARP,
diff --git a/libhb/internal.h b/libhb/internal.h
index 8983a13cd..5357a3af7 100644
--- a/libhb/internal.h
+++ b/libhb/internal.h
@@ -453,6 +453,7 @@ extern hb_filter_object_t hb_filter_vfr;
extern hb_filter_object_t hb_filter_deblock;
extern hb_filter_object_t hb_filter_denoise;
extern hb_filter_object_t hb_filter_nlmeans;
+extern hb_filter_object_t hb_filter_chroma_smooth;
extern hb_filter_object_t hb_filter_render_sub;
extern hb_filter_object_t hb_filter_crop_scale;
extern hb_filter_object_t hb_filter_rotate;
diff --git a/libhb/param.c b/libhb/param.c
index e4e3d56a3..c7f9ae052 100644
--- a/libhb/param.c
+++ b/libhb/param.c
@@ -70,6 +70,29 @@ static hb_filter_param_t hqdn3d_presets[] =
},
};
+static hb_filter_param_t chroma_smooth_presets[] =
+{
+ { 1, "Custom", "custom", NULL },
+ { 2, "Ultralight", "ultralight", NULL },
+ { 3, "Light", "light", NULL },
+ { 4, "Medium", "medium", NULL },
+ { 5, "Strong", "strong", NULL },
+ { 6, "Stronger", "stronger", NULL },
+ { 7, "Very Strong", "verystrong", NULL },
+ { 0, NULL, NULL, NULL }
+};
+
+static hb_filter_param_t chroma_smooth_tunes[] =
+{
+ { 0, "None", "none", NULL },
+ { 1, "Tiny", "tiny", NULL },
+ { 2, "Small", "small", NULL },
+ { 3, "Medium", "medium", NULL },
+ { 4, "Wide", "wide", NULL },
+ { 5, "Very Wide", "verywide", NULL },
+ { 0, NULL, NULL, NULL }
+};
+
static hb_filter_param_t unsharp_presets[] =
{
{ 1, "Custom", "custom", NULL },
@@ -188,6 +211,10 @@ static filter_param_map_t param_map[] =
{ HB_FILTER_HQDN3D, hqdn3d_presets, NULL,
sizeof(hqdn3d_presets) / sizeof(hb_filter_param_t), 0, },
+ { HB_FILTER_CHROMA_SMOOTH, chroma_smooth_presets, chroma_smooth_tunes,
+ sizeof(chroma_smooth_presets) / sizeof(hb_filter_param_t),
+ sizeof(chroma_smooth_tunes) / sizeof(hb_filter_param_t), },
+
{ HB_FILTER_UNSHARP, unsharp_presets, unsharp_tunes,
sizeof(unsharp_presets) / sizeof(hb_filter_param_t),
sizeof(unsharp_tunes) / sizeof(hb_filter_param_t), },
@@ -463,6 +490,201 @@ static hb_dict_t * generate_nlmeans_settings(const char *preset,
return settings;
}
+static hb_dict_t * generate_chroma_smooth_settings(const char *preset,
+ const char *tune,
+ const char *custom)
+{
+ hb_dict_t * settings;
+
+ if (preset == NULL)
+ return NULL;
+
+ if (!strcasecmp(preset, "custom"))
+ {
+ return hb_parse_filter_settings(custom);
+ }
+ if (!strcasecmp(preset, "ultralight") ||
+ !strcasecmp(preset, "light") ||
+ !strcasecmp(preset, "medium") ||
+ !strcasecmp(preset, "strong") ||
+ !strcasecmp(preset, "stronger") ||
+ !strcasecmp(preset, "verystrong"))
+ {
+ double strength;
+ int size;
+
+ if (tune == NULL || !strcasecmp(tune, "none"))
+ {
+ strength = 0.25;
+ size = 7;
+ if (!strcasecmp(preset, "ultralight"))
+ {
+ strength = 0.05;
+ }
+ else if (!strcasecmp(preset, "light"))
+ {
+ strength = 0.15;
+ }
+ else if (!strcasecmp(preset, "strong"))
+ {
+ strength = 0.5;
+ }
+ else if (!strcasecmp(preset, "stronger"))
+ {
+ strength = 0.8;
+ }
+ else if (!strcasecmp(preset, "verystrong"))
+ {
+ strength = 1.2;
+ }
+ }
+ else if (!strcasecmp(tune, "tiny"))
+ {
+ strength = 0.4;
+ size = 3;
+ if (!strcasecmp(preset, "ultralight"))
+ {
+ strength = 0.15;
+ }
+ else if (!strcasecmp(preset, "light"))
+ {
+ strength = 0.25;
+ }
+ else if (!strcasecmp(preset, "strong"))
+ {
+ strength = 0.8;
+ }
+ else if (!strcasecmp(preset, "stronger"))
+ {
+ strength = 1.2;
+ }
+ else if (!strcasecmp(preset, "verystrong"))
+ {
+ strength = 1.5;
+ }
+ }
+ else if (!strcasecmp(tune, "small"))
+ {
+ strength = 0.275;
+ size = 7;
+ if (!strcasecmp(preset, "ultralight"))
+ {
+ strength = 0.055;
+ }
+ else if (!strcasecmp(preset, "light"))
+ {
+ strength = 0.165;
+ }
+ else if (!strcasecmp(preset, "strong"))
+ {
+ strength = 0.55;
+ }
+ else if (!strcasecmp(preset, "stronger"))
+ {
+ strength = 0.9;
+ }
+ else if (!strcasecmp(preset, "verystrong"))
+ {
+ strength = 1.35;
+ }
+ }
+ else if (!strcasecmp(tune, "medium"))
+ {
+ strength = 0.275;
+ size = 9;
+ if (!strcasecmp(preset, "ultralight"))
+ {
+ strength = 0.055;
+ }
+ else if (!strcasecmp(preset, "light"))
+ {
+ strength = 0.165;
+ }
+ else if (!strcasecmp(preset, "strong"))
+ {
+ strength = 0.55;
+ }
+ else if (!strcasecmp(preset, "stronger"))
+ {
+ strength = 0.9;
+ }
+ else if (!strcasecmp(preset, "verystrong"))
+ {
+ strength = 1.35;
+ }
+ }
+ else if (!strcasecmp(tune, "wide"))
+ {
+ strength = 0.275;
+ size = 11;
+ if (!strcasecmp(preset, "ultralight"))
+ {
+ strength = 0.055;
+ }
+ else if (!strcasecmp(preset, "light"))
+ {
+ strength = 0.165;
+ }
+ else if (!strcasecmp(preset, "strong"))
+ {
+ strength = 0.55;
+ }
+ else if (!strcasecmp(preset, "stronger"))
+ {
+ strength = 0.9;
+ }
+ else if (!strcasecmp(preset, "verystrong"))
+ {
+ strength = 1.35;
+ }
+ }
+ else if (!strcasecmp(tune, "verywide"))
+ {
+ strength = 0.275;
+ size = 13;
+ if (!strcasecmp(preset, "ultralight"))
+ {
+ strength = 0.055;
+ }
+ else if (!strcasecmp(preset, "light"))
+ {
+ strength = 0.165;
+ }
+ else if (!strcasecmp(preset, "strong"))
+ {
+ strength = 0.55;
+ }
+ else if (!strcasecmp(preset, "stronger"))
+ {
+ strength = 0.9;
+ }
+ else if (!strcasecmp(preset, "verystrong"))
+ {
+ strength = 1.35;
+ }
+ }
+ else
+ {
+ fprintf(stderr, "Unrecognized chroma smooth tune (%s).\n", tune);
+ return NULL;
+ }
+
+ settings = hb_dict_init();
+ hb_dict_set(settings, "cb-strength", hb_value_double(strength));
+ hb_dict_set(settings, "cb-size", hb_value_int(size));
+ }
+ else
+ {
+ settings = hb_parse_filter_settings(preset);
+ if (tune != NULL)
+ {
+ fprintf(stderr, "Custom chroma smooth parameters specified; ignoring chroma smooth tune (%s).\n", tune);
+ }
+ }
+
+ return settings;
+}
+
static hb_dict_t * generate_unsharp_settings(const char *preset,
const char *tune,
const char *custom)
@@ -1094,6 +1316,9 @@ hb_generate_filter_settings(int filter_id, const char *preset, const char *tune,
case HB_FILTER_NLMEANS:
settings = generate_nlmeans_settings(preset, tune, custom);
break;
+ case HB_FILTER_CHROMA_SMOOTH:
+ settings = generate_chroma_smooth_settings(preset, tune, custom);
+ break;
case HB_FILTER_LAPSHARP:
settings = generate_lapsharp_settings(preset, tune, custom);
break;
diff --git a/libhb/preset.c b/libhb/preset.c
index 898740298..89f7db30d 100644
--- a/libhb/preset.c
+++ b/libhb/preset.c
@@ -1389,6 +1389,41 @@ int hb_preset_apply_filters(const hb_dict_t *preset, hb_dict_t *job_dict)
}
}
+ // Chroma Smooth filter
+ const char *chroma_smooth_preset, *chroma_smooth_tune, *chroma_smooth_custom;
+ chroma_smooth_preset = hb_value_get_string(hb_dict_get(preset,
+ "PictureChromaSmoothPreset"));
+ chroma_smooth_tune = hb_value_get_string(hb_dict_get(preset,
+ "PictureChromaSmoothTune"));
+ chroma_smooth_custom = hb_value_get_string(hb_dict_get(preset,
+ "PictureChromaSmoothCustom"));
+ if (chroma_smooth_preset != NULL &&
+ strcasecmp(chroma_smooth_preset, "off"))
+ {
+ int filter_id = HB_FILTER_CHROMA_SMOOTH;
+ filter_settings = hb_generate_filter_settings(filter_id,
+ chroma_smooth_preset, chroma_smooth_tune, chroma_smooth_custom);
+ if (filter_settings == NULL)
+ {
+ hb_error("Invalid chroma smooth filter settings (%s%s%s)",
+ chroma_smooth_preset,
+ chroma_smooth_tune ? "," : "",
+ chroma_smooth_tune ? chroma_smooth_tune : "");
+ return -1;
+ }
+ else if (!hb_dict_get_bool(filter_settings, "disable"))
+ {
+ filter_dict = hb_dict_init();
+ hb_dict_set(filter_dict, "ID", hb_value_int(filter_id));
+ hb_dict_set(filter_dict, "Settings", filter_settings);
+ hb_add_filter2(filter_list, filter_dict);
+ }
+ else
+ {
+ hb_value_free(&filter_settings);
+ }
+ }
+
// Sharpen filter
const char *sharpen_filter, *sharpen_preset, *sharpen_tune, *sharpen_custom;
sharpen_filter = hb_value_get_string(hb_dict_get(preset,
diff --git a/libhb/preset_builtin.h b/libhb/preset_builtin.h
index 3c2d8ce88..bd69f6dd5 100644
--- a/libhb/preset_builtin.h
+++ b/libhb/preset_builtin.h
@@ -38,6 +38,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"fast\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -140,6 +143,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"fast\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -242,6 +248,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"fast\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -344,6 +353,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"fast\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -446,6 +458,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -548,6 +563,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -650,6 +668,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -752,6 +773,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -868,6 +892,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -984,6 +1011,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -1100,6 +1130,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -1216,6 +1249,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -1332,6 +1368,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -1448,6 +1487,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -1564,6 +1606,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -1680,6 +1725,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -1789,6 +1837,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -1891,6 +1942,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -1993,6 +2047,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -2095,6 +2152,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -2197,6 +2257,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -2299,6 +2362,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -2401,6 +2467,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -2503,6 +2572,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -2612,6 +2684,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -2714,6 +2789,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -2816,6 +2894,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -2918,6 +2999,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -3034,6 +3118,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -3150,6 +3237,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -3266,6 +3356,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -3382,6 +3475,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -3498,6 +3594,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -3600,6 +3699,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": true, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -3716,6 +3818,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -3832,6 +3937,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -3948,6 +4056,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -4064,6 +4175,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -4180,6 +4294,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -4282,6 +4399,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -4398,6 +4518,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -4500,6 +4623,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -4602,6 +4728,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -4721,6 +4850,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -4837,6 +4969,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -4953,6 +5088,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -5055,6 +5193,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -5157,6 +5298,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -5259,6 +5403,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -5361,6 +5508,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -5463,6 +5613,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -5565,6 +5718,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -5681,6 +5837,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -5797,6 +5956,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -5906,6 +6068,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -6008,6 +6173,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -6110,6 +6278,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -6212,6 +6383,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -6314,6 +6488,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -6416,6 +6593,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -6518,6 +6698,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -6620,6 +6803,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -6722,6 +6908,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -6824,6 +7013,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -6924,6 +7116,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -7024,6 +7219,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -7124,6 +7322,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -7224,6 +7425,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -7324,6 +7528,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -7424,6 +7631,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -7524,6 +7734,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -7624,6 +7837,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -7724,6 +7940,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -7833,6 +8052,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": false, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"off\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -7935,6 +8157,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": false, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"off\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -8037,6 +8262,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": false, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"off\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -8139,6 +8367,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": false, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"off\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -8255,6 +8486,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"off\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -8373,6 +8607,9 @@ const char hb_builtin_presets_json[] =
" \"Mp4iPodCompatible\": false, \n"
" \"PictureAutoCrop\": true, \n"
" \"PictureBottomCrop\": 0, \n"
+" \"PictureChromaSmoothCustom\": \"\", \n"
+" \"PictureChromaSmoothPreset\": \"off\", \n"
+" \"PictureChromaSmoothTune\": \"none\", \n"
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"off\", \n"
" \"PictureDARWidth\": 0, \n"
@@ -8440,7 +8677,7 @@ const char hb_builtin_presets_json[] =
" \"x264Option\": \"\", \n"
" \"x264UseAdvancedOptions\": false\n"
" }, \n"
-" \"VersionMajor\": 34, \n"
+" \"VersionMajor\": 35, \n"
" \"VersionMicro\": 0, \n"
" \"VersionMinor\": 0\n"
" }\n"
diff --git a/preset/preset_builtin.json b/preset/preset_builtin.json
index 3ed618ff1..96af01e6a 100644
--- a/preset/preset_builtin.json
+++ b/preset/preset_builtin.json
@@ -53,6 +53,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -158,6 +161,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -263,6 +269,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -368,6 +377,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -473,6 +485,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -578,6 +593,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -683,6 +701,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -788,6 +809,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -907,6 +931,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -1026,6 +1053,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -1145,6 +1175,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -1264,6 +1297,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -1383,6 +1419,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -1502,6 +1541,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -1621,6 +1663,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -1740,6 +1785,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -1852,6 +1900,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -1957,6 +2008,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -2062,6 +2116,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -2167,6 +2224,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -2272,6 +2332,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -2377,6 +2440,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -2482,6 +2548,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -2587,6 +2656,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -2699,6 +2771,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -2804,6 +2879,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -2909,6 +2987,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -3014,6 +3095,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -3133,6 +3217,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -3252,6 +3339,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -3371,6 +3461,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -3490,6 +3583,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -3609,6 +3705,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -3714,6 +3813,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -3833,6 +3935,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -3952,6 +4057,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -4071,6 +4179,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -4190,6 +4301,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -4309,6 +4423,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -4414,6 +4531,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -4533,6 +4653,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -4638,6 +4761,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -4743,6 +4869,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -4865,6 +4994,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -4984,6 +5116,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -5103,6 +5238,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -5208,6 +5346,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -5313,6 +5454,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -5418,6 +5562,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -5523,6 +5670,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -5628,6 +5778,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -5733,6 +5886,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -5852,6 +6008,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -5971,6 +6130,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -6083,6 +6245,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -6188,6 +6353,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -6293,6 +6461,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -6398,6 +6569,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -6503,6 +6677,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -6608,6 +6785,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -6713,6 +6893,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -6818,6 +7001,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -6923,6 +7109,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -7028,6 +7217,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -7132,6 +7324,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -7236,6 +7431,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -7340,6 +7538,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -7444,6 +7645,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -7548,6 +7752,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -7652,6 +7859,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -7756,6 +7966,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -7860,6 +8073,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -7964,6 +8180,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -8076,6 +8295,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -8181,6 +8403,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -8286,6 +8511,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
@@ -8391,6 +8619,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "light",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
diff --git a/preset/preset_builtin.list b/preset/preset_builtin.list
index 702d5a83c..3c51542a3 100644
--- a/preset/preset_builtin.list
+++ b/preset/preset_builtin.list
@@ -1,6 +1,6 @@
<resources>
<section name="PresetTemplate">
- <integer name="VersionMajor" value="34" />
+ <integer name="VersionMajor" value="35" />
<integer name="VersionMinor" value="0" />
<integer name="VersionMicro" value="0" />
<json name="Preset" file="preset_template.json" />
diff --git a/preset/preset_cli_default.json b/preset/preset_cli_default.json
index a67225a70..76c0b28cd 100644
--- a/preset/preset_cli_default.json
+++ b/preset/preset_cli_default.json
@@ -58,6 +58,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "medium",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
diff --git a/preset/preset_template.json b/preset/preset_template.json
index ae96e2172..f93c68141 100644
--- a/preset/preset_template.json
+++ b/preset/preset_template.json
@@ -58,6 +58,9 @@
"PictureDenoiseFilter": "off",
"PictureDenoisePreset": "medium",
"PictureDenoiseTune": "none",
+ "PictureChromaSmoothCustom": "",
+ "PictureChromaSmoothPreset": "off",
+ "PictureChromaSmoothTune": "none",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
diff --git a/test/test.c b/test/test.c
index b6a4a0013..a55987588 100644
--- a/test/test.c
+++ b/test/test.c
@@ -46,16 +46,17 @@
#include <sys/mount.h>
#endif
-#define LAPSHARP_DEFAULT_PRESET "medium"
-#define UNSHARP_DEFAULT_PRESET "medium"
-#define NLMEANS_DEFAULT_PRESET "medium"
-#define DEINTERLACE_DEFAULT_PRESET "default"
-#define DECOMB_DEFAULT_PRESET "default"
-#define DETELECINE_DEFAULT_PRESET "default"
-#define COMB_DETECT_DEFAULT_PRESET "default"
-#define HQDN3D_DEFAULT_PRESET "medium"
-#define ROTATE_DEFAULT "angle=180:hflip=0"
-#define DEBLOCK_DEFAULT "qp=5"
+#define LAPSHARP_DEFAULT_PRESET "medium"
+#define UNSHARP_DEFAULT_PRESET "medium"
+#define CHROMA_SMOOTH_DEFAULT_PRESET "medium"
+#define NLMEANS_DEFAULT_PRESET "medium"
+#define DEINTERLACE_DEFAULT_PRESET "default"
+#define DECOMB_DEFAULT_PRESET "default"
+#define DETELECINE_DEFAULT_PRESET "default"
+#define COMB_DETECT_DEFAULT_PRESET "default"
+#define HQDN3D_DEFAULT_PRESET "medium"
+#define ROTATE_DEFAULT "angle=180:hflip=0"
+#define DEBLOCK_DEFAULT "qp=5"
/* Options */
static int debug = HB_DEBUG_ALL;
@@ -86,6 +87,10 @@ static int nlmeans_disable = 0;
static int nlmeans_custom = 0;
static char * nlmeans = NULL;
static char * nlmeans_tune = NULL;
+static int chroma_smooth_disable = 0;
+static int chroma_smooth_custom = 0;
+static char * chroma_smooth = NULL;
+static char * chroma_smooth_tune = NULL;
static int unsharp_disable = 0;
static int unsharp_custom = 0;
static char * unsharp = NULL;
@@ -618,6 +623,8 @@ cleanup:
free(hqdn3d);
free(nlmeans);
free(nlmeans_tune);
+ free(chroma_smooth);
+ free(chroma_smooth_tune);
free(unsharp);
free(unsharp_tune);
free(lapsharp);
@@ -1191,6 +1198,9 @@ static void showFilterDefault(FILE* const out, int filter_id)
case HB_FILTER_LAPSHARP:
preset = LAPSHARP_DEFAULT_PRESET;
break;
+ case HB_FILTER_CHROMA_SMOOTH:
+ preset = CHROMA_SMOOTH_DEFAULT_PRESET;
+ break;
case HB_FILTER_NLMEANS:
preset = NLMEANS_DEFAULT_PRESET;
break;
@@ -1216,6 +1226,7 @@ static void showFilterDefault(FILE* const out, int filter_id)
{
case HB_FILTER_DEINTERLACE:
case HB_FILTER_NLMEANS:
+ case HB_FILTER_CHROMA_SMOOTH:
case HB_FILTER_UNSHARP:
case HB_FILTER_LAPSHARP:
case HB_FILTER_DECOMB:
@@ -1716,6 +1727,18 @@ static void ShowHelp()
fprintf( out,
" Applies to NLMeans presets only (does not affect\n"
" custom settings)\n"
+" --chroma-smooth[=string] Sharpen video with chroma smooth filter\n");
+ showFilterPresets(out, HB_FILTER_CHROMA_SMOOTH);
+ showFilterKeys(out, HB_FILTER_CHROMA_SMOOTH);
+ showFilterDefault(out, HB_FILTER_CHROMA_SMOOTH);
+ fprintf( out,
+
+" --no-chroma-smooth Disable preset chroma smooth filter\n"
+" --chroma-smooth-tune <string> Tune chroma smooth filter\n");
+ showFilterTunes(out, HB_FILTER_CHROMA_SMOOTH);
+ fprintf( out,
+" Applies to chroma smooth presets only (does\n"
+" not affect custom settings)\n"
" --unsharp[=string] Sharpen video with unsharp filter\n");
showFilterPresets(out, HB_FILTER_UNSHARP);
showFilterKeys(out, HB_FILTER_UNSHARP);
@@ -2126,6 +2149,8 @@ static int ParseOptions( int argc, char ** argv )
#define SSA_LANG 319
#define SSA_DEFAULT 320
#define SSA_BURN 321
+ #define FILTER_CHROMA_SMOOTH 322
+ #define FILTER_CHROMA_SMOOTH_TUNE 323
for( ;; )
{
@@ -2208,6 +2233,9 @@ static int ParseOptions( int argc, char ** argv )
{ "nlmeans", optional_argument, NULL, FILTER_NLMEANS },
{ "no-nlmeans", no_argument, &nlmeans_disable, 1 },
{ "nlmeans-tune",required_argument, NULL, FILTER_NLMEANS_TUNE },
+ { "chroma-smooth", optional_argument, NULL, FILTER_CHROMA_SMOOTH },
+ { "no-chroma-smooth", no_argument, &chroma_smooth_disable, 1 },
+ { "chroma-smooth-tune",required_argument, NULL, FILTER_CHROMA_SMOOTH_TUNE },
{ "unsharp", optional_argument, NULL, FILTER_UNSHARP },
{ "no-unsharp", no_argument, &unsharp_disable, 1 },
{ "unsharp-tune",required_argument, NULL, FILTER_UNSHARP_TUNE },
@@ -2686,6 +2714,21 @@ static int ParseOptions( int argc, char ** argv )
free(nlmeans_tune);
nlmeans_tune = strdup(optarg);
break;
+ case FILTER_CHROMA_SMOOTH:
+ free(chroma_smooth);
+ if (optarg != NULL)
+ {
+ chroma_smooth = strdup(optarg);
+ }
+ else
+ {
+ chroma_smooth = strdup(CHROMA_SMOOTH_DEFAULT_PRESET);
+ }
+ break;
+ case FILTER_CHROMA_SMOOTH_TUNE:
+ free(chroma_smooth_tune);
+ chroma_smooth_tune = strdup(optarg);
+ break;
case FILTER_UNSHARP:
free(unsharp);
if (optarg != NULL)
@@ -3217,6 +3260,32 @@ static int ParseOptions( int argc, char ** argv )
}
}
+ if (chroma_smooth != NULL)
+ {
+ if (chroma_smooth_disable)
+ {
+ fprintf(stderr,
+ "Incompatible options --chroma-smooth and --no-chroma-smooth\n");
+ return -1;
+ }
+ if (!hb_validate_filter_preset(HB_FILTER_CHROMA_SMOOTH, chroma_smooth,
+ chroma_smooth_tune, NULL))
+ {
+ // Nothing to do, but must validate preset before
+ // attempting to validate custom settings to prevent potential
+ // false positive
+ }
+ else if (!hb_validate_filter_string(HB_FILTER_CHROMA_SMOOTH, chroma_smooth))
+ {
+ chroma_smooth_custom = 1;
+ }
+ else
+ {
+ fprintf(stderr, "Invalid chroma smooth option %s\n", chroma_smooth);
+ return -1;
+ }
+ }
+
if (unsharp != NULL)
{
if (unsharp_disable)
@@ -4259,6 +4328,30 @@ static hb_dict_t * PreparePreset(const char *preset_name)
hb_value_string(nlmeans));
}
}
+ if (chroma_smooth_disable)
+ {
+ hb_dict_set(preset, "PictureChromaSmoothPreset", hb_value_string("off"));
+ }
+ if (chroma_smooth != NULL)
+ {
+ if (!chroma_smooth_custom)
+ {
+ hb_dict_set(preset, "PictureChromaSmoothPreset",
+ hb_value_string(chroma_smooth));
+ if (chroma_smooth_tune != NULL)
+ {
+ hb_dict_set(preset, "PictureChromaSmoothTune",
+ hb_value_string(chroma_smooth_tune));
+ }
+ }
+ else
+ {
+ hb_dict_set(preset, "PictureChromaSmoothPreset",
+ hb_value_string("custom"));
+ hb_dict_set(preset, "PictureChromaSmoothCustom",
+ hb_value_string(chroma_smooth));
+ }
+ }
if (unsharp_disable && !strcasecmp(s, "unsharp"))
{
hb_dict_set(preset, "PictureSharpenFilter", hb_value_string("off"));