summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gtk/src/callbacks.c5
-rw-r--r--gtk/src/ghb.m468
-rw-r--r--gtk/src/hb-backend.c24
-rw-r--r--gtk/src/makedeps.py3
-rw-r--r--gtk/src/presets.c5
-rw-r--r--gtk/src/queuehandler.c49
-rw-r--r--libhb/deblock.c483
-rw-r--r--libhb/hb_dict.c5
-rw-r--r--libhb/hb_dict.h1
-rw-r--r--libhb/hbavfilter.c17
-rw-r--r--libhb/param.c95
-rw-r--r--libhb/preset.c43
-rw-r--r--libhb/preset_builtin.h397
-rw-r--r--preset/preset_builtin.json385
-rw-r--r--preset/preset_builtin.list2
-rw-r--r--preset/preset_cli_default.json5
-rw-r--r--preset/preset_template.json5
-rw-r--r--test/test.c66
18 files changed, 809 insertions, 849 deletions
diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c
index f73892ba9..a84e2115f 100644
--- a/gtk/src/callbacks.c
+++ b/gtk/src/callbacks.c
@@ -2472,7 +2472,6 @@ ghb_update_summary_info(signal_user_data_t *ud)
gboolean detel, comb_detect, deint, decomb, deblock, nlmeans, denoise;
gboolean unsharp, lapsharp, rot, gray;
const char * sval;
- int ival;
sval = ghb_dict_get_string(ud->settings, "PictureDetelecine");
detel = sval != NULL && !!strcasecmp(sval, "off");
@@ -2481,8 +2480,8 @@ ghb_update_summary_info(signal_user_data_t *ud)
sval = ghb_dict_get_string(ud->settings, "PictureDeinterlaceFilter");
deint = sval != NULL && !strcasecmp(sval, "deinterlace");
decomb = sval != NULL && !strcasecmp(sval, "decomb");
- ival = ghb_dict_get_int(ud->settings, "PictureDeblock");
- deblock = ival >= 5;
+ sval = ghb_dict_get_string(ud->settings, "PictureDeblockPreset");
+ deblock = sval != NULL && !!strcasecmp(sval, "off");
sval = ghb_dict_get_string(ud->settings, "PictureDenoiseFilter");
nlmeans = sval != NULL && !strcasecmp(sval, "nlmeans");
denoise = sval != NULL && !strcasecmp(sval, "hqdn3d");
diff --git a/gtk/src/ghb.m4 b/gtk/src/ghb.m4
index a9cb6ea8b..6a7ecc964 100644
--- a/gtk/src/ghb.m4
+++ b/gtk/src/ghb.m4
@@ -2965,34 +2965,80 @@ filter_output([
<property name="halign">start</property>
<property name="valign">start</property>
<child>
- <object class="GtkLabel" id="label41">
+ <object class="GtkLabel" id="PictureDeblockPresetLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
- <property name="label" translatable="yes">Deblock:</property>
+ <property name="label" translatable="yes">Deblock Filter:</property>
</object>
<packing>
- <property name="top_attach">0</property>
+ <property name="top_attach">1</property>
<property name="left_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkScale" id="PictureDeblock">
+ <object class="GtkComboBox" id="PictureDeblockPreset">
+ <property name="valign">GTK_ALIGN_CENTER</property>
+ <property name="width_request">100</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="tooltip_text" translatable="yes">The deblocking filter removes a common type of compression artifact.
+If your source exhibits 'blockiness', this filter may help clean it up.</property>
+ <signal name="changed" handler="denoise_filter_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="left_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="PictureDeblockTuneLabel">
<property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Deblock Tune:</property>
+ </object>
+ <packing>
+ <property name="top_attach">2</property>
+ <property name="left_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="PictureDeblockTune">
+ <property name="valign">GTK_ALIGN_CENTER</property>
<property name="width_request">100</property>
- <property name="can_focus">True</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="tooltip_text" translatable="yes">The deblocking filter removes a common type of compression artifact.
If your source exhibits 'blockiness', this filter may help clean it up.</property>
- <property name="adjustment">adjustment20</property>
- <property name="digits">0</property>
- <property name="value_pos">right</property>
- <signal name="format-value" handler="format_deblock_cb" swapped="no"/>
- <signal name="value-changed" handler="setting_widget_changed_cb" swapped="no"/>
+ <signal name="changed" handler="setting_widget_changed_cb" swapped="no"/>
</object>
<packing>
- <property name="top_attach">0</property>
+ <property name="top_attach">2</property>
+ <property name="left_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="PictureDeblockCustom">
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes">Custom deblock filter string format
+
+strength=weak|strong:thresh=0-100:blocksize=4-512</property>
+ <property name="width-chars">8</property>
+ <signal name="changed" handler="setting_widget_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="top_attach">3</property>
<property name="left_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
diff --git a/gtk/src/hb-backend.c b/gtk/src/hb-backend.c
index b80bed556..6d70fb300 100644
--- a/gtk/src/hb-backend.c
+++ b/gtk/src/hb-backend.c
@@ -360,6 +360,18 @@ typedef struct
gboolean preset;
} filter_opts_t;
+static filter_opts_t deblock_preset_opts =
+{
+ .filter_id = HB_FILTER_DEBLOCK,
+ .preset = TRUE
+};
+
+static filter_opts_t deblock_tune_opts =
+{
+ .filter_id = HB_FILTER_DEBLOCK,
+ .preset = FALSE
+};
+
static filter_opts_t deint_preset_opts =
{
.filter_id = HB_FILTER_DECOMB,
@@ -565,6 +577,18 @@ combo_name_map_t combo_name_map[] =
filter_opt_get
},
{
+ "PictureDeblockPreset",
+ &deblock_preset_opts,
+ filter_opts_set,
+ filter_opt_get
+ },
+ {
+ "PictureDeblockTune",
+ &deblock_tune_opts,
+ filter_opts_set,
+ filter_opt_get
+ },
+ {
"PictureDenoiseFilter",
&denoise_opts,
small_opts_set,
diff --git a/gtk/src/makedeps.py b/gtk/src/makedeps.py
index 2cbd1bcb1..5294eb88c 100644
--- a/gtk/src/makedeps.py
+++ b/gtk/src/makedeps.py
@@ -26,6 +26,9 @@ dep_map = (
DepEntry("PictureDeinterlaceFilter", "PictureDeinterlacePresetLabel", "off", True, True),
DepEntry("PictureDeinterlaceFilter", "PictureDeinterlaceCustom", "off", True, True),
DepEntry("PictureDeinterlacePreset", "PictureDeinterlaceCustom", "custom", False, True),
+ DepEntry("PictureDeblockPreset", "PictureDeblockTune", "off|custom", True, True),
+ DepEntry("PictureDeblockPreset", "PictureDeblockTuneLabel", "off|custom", True, True),
+ DepEntry("PictureDeblockPreset", "PictureDeblockCustom", "custom", False, True),
DepEntry("PictureDenoiseFilter", "PictureDenoisePreset", "off", True, True),
DepEntry("PictureDenoiseFilter", "PictureDenoisePresetLabel", "off", True, True),
DepEntry("PictureDenoiseFilter", "PictureDenoiseTune", "nlmeans", False, True),
diff --git a/gtk/src/presets.c b/gtk/src/presets.c
index 9284b94f7..e522c88f6 100644
--- a/gtk/src/presets.c
+++ b/gtk/src/presets.c
@@ -1694,11 +1694,6 @@ ghb_settings_to_preset(GhbValue *settings)
ghb_dict_set_string(preset, "VideoFramerateMode", "vfr");
}
- if (ghb_dict_get_int(preset, "PictureDeblock") < 5)
- {
- ghb_dict_set_int(preset, "PictureDeblock", 0);
- }
-
GhbValue *alist, *adict;
gint count, ii;
diff --git a/gtk/src/queuehandler.c b/gtk/src/queuehandler.c
index d00dc4a66..b1ee364e3 100644
--- a/gtk/src/queuehandler.c
+++ b/gtk/src/queuehandler.c
@@ -328,16 +328,19 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *queueDict, GtkTreeIter *pite
preset_modified = ghb_dict_get_bool(uiDict, "preset_modified");
name = ghb_dict_get_string(uiDict, "PresetFullName");
+ escape = g_markup_escape_text(name, -1);
markers = ghb_dict_get_bool(uiDict, "ChapterMarkers");
if (preset_modified)
{
- XPRINT(_("<b>Modified Preset Based On:</b> <small>%s</small>\n"), name);
+ XPRINT(_("<b>Modified Preset Based On:</b> <small>%s</small>\n"),
+ escape);
}
else
{
- XPRINT(_("<b>Preset:</b> <small>%s</small>\n"), name);
+ XPRINT(_("<b>Preset:</b> <small>%s</small>\n"), escape);
}
+ g_free(escape);
// Next line in the display (Container type)
// Format: XXX Container
@@ -439,12 +442,12 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *queueDict, GtkTreeIter *pite
// Next line in the display (Filter settings)
// Filters: - Deinterlace
- gint deblock, denoise, deint;
- const gchar *deint_preset, *detel_preset, *denoise_preset;
- const gchar *denoise_tune;
- const gchar *deint_cust, *detel_cust, *denoise_cust;
+ gint denoise, deint;
+ const gchar *deint_preset, *detel_preset, *deblock_preset, *denoise_preset;
+ const gchar *deblock_tune, *denoise_tune;
+ const gchar *deint_cust, *detel_cust, *deblock_cust, *denoise_cust;
gchar *deint_opt, *denoise_opt;
- gboolean grayscale, detel, filters;
+ gboolean grayscale, deblock, detel, filters;
deint = ghb_settings_combo_int(uiDict, "PictureDeinterlaceFilter");
deint_opt = ghb_settings_combo_option(uiDict, "PictureDeinterlaceFilter");
@@ -459,7 +462,12 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *queueDict, GtkTreeIter *pite
detel = detel_preset != NULL && !!strcasecmp(detel_preset, "off");
detel_cust = ghb_dict_get_string(uiDict, "PictureDetelecineCustom");
- deblock = ghb_dict_get_int(uiDict, "PictureDeblock");
+ deblock_preset = ghb_lookup_filter_name(HB_FILTER_DEBLOCK,
+ ghb_dict_get_string(uiDict, "PictureDeblockPreset"), 1);
+ deblock_tune = ghb_lookup_filter_name(HB_FILTER_DEBLOCK,
+ ghb_dict_get_string(uiDict, "PictureDeblockTune"), 0);
+ deblock = deblock_preset != NULL && !!strcasecmp(deblock_preset, "off");
+ deblock_cust = ghb_dict_get_string(uiDict, "PictureDeblockCustom");
denoise = ghb_settings_combo_int(uiDict, "PictureDenoiseFilter");
denoise_opt = ghb_settings_combo_option(uiDict, "PictureDenoiseFilter");
@@ -474,10 +482,9 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *queueDict, GtkTreeIter *pite
grayscale = ghb_dict_get_bool(uiDict, "VideoGrayScale");
- filters = detel || grayscale ||
+ filters = detel || grayscale || deblock ||
deint != HB_FILTER_INVALID ||
- denoise != HB_FILTER_INVALID ||
- (deblock >= 5);
+ denoise != HB_FILTER_INVALID;
if (filters)
{
const char *prefix = " ";
@@ -528,9 +535,25 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *queueDict, GtkTreeIter *pite
}
prefix = " - ";
}
- if (deblock >= 5)
+ if (deblock)
{
- XPRINT(_("%sDeblock: %d"), prefix, deblock);
+ XPRINT(_("%sDeblock:"), prefix);
+ const char *preset;
+ preset = ghb_dict_get_string(uiDict, "PictureDeblockPreset");
+ if (preset && !strcasecmp(preset, "custom"))
+ {
+ XPRINT(" %s", deblock_cust);
+ }
+ else
+ {
+ XPRINT(" %s", deblock_preset);
+ const char *tune;
+ tune = ghb_dict_get_string(uiDict, "PictureDeblockTune");
+ if (deblock_tune != NULL && strcasecmp(tune, "none"))
+ {
+ XPRINT(",%s", deblock_tune);
+ }
+ }
prefix = " - ";
}
if (grayscale)
diff --git a/libhb/deblock.c b/libhb/deblock.c
index c334b4ef2..31efc1d15 100644
--- a/libhb/deblock.c
+++ b/libhb/deblock.c
@@ -1,464 +1,85 @@
-/*
- Copyright (C) 2005 Michael Niedermayer <[email protected]>
+/* deblock.c
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
+ Copyright (c) 2003-2015 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
+ */
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
+#include "common.h"
+#include "avfilter_priv.h"
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
+static int deblock_init(hb_filter_object_t * filter, hb_filter_init_t * init);
-#include "hb.h"
-#include "hbffmpeg.h"
-
-#define PP7_QP_DEFAULT 5
-#define PP7_MODE_DEFAULT 2
-
-#define XMIN(a,b) ((a) < (b) ? (a) : (b))
-#define XMAX(a,b) ((a) > (b) ? (a) : (b))
-
-typedef short DCTELEM;
-
-//===========================================================================//
-static const uint8_t __attribute__((aligned(8))) pp7_dither[8][8] =
-{
- { 0, 48, 12, 60, 3, 51, 15, 63, },
- { 32, 16, 44, 28, 35, 19, 47, 31, },
- { 8, 56, 4, 52, 11, 59, 7, 55, },
- { 40, 24, 36, 20, 43, 27, 39, 23, },
- { 2, 50, 14, 62, 1, 49, 13, 61, },
- { 34, 18, 46, 30, 33, 17, 45, 29, },
- { 10, 58, 6, 54, 9, 57, 5, 53, },
- { 42, 26, 38, 22, 41, 25, 37, 21, },
-};
-
-struct hb_filter_private_s
-{
- int pp7_qp;
- int pp7_mode;
- int pp7_mpeg2;
- int pp7_temp_stride;
- uint8_t * pp7_src;
-
- hb_filter_init_t input;
- hb_filter_init_t output;
-};
-
-static int hb_deblock_init( hb_filter_object_t * filter,
- hb_filter_init_t * init );
-
-static int hb_deblock_work( hb_filter_object_t * filter,
- hb_buffer_t ** buf_in,
- hb_buffer_t ** buf_out );
-
-static void hb_deblock_close( hb_filter_object_t * filter );
-
-static const char deblock_template[] =
- "qp=^"HB_INT_REG"$:mode=^([012])$:disable=^"HB_BOOL_REG"$";
+const char deblock_template[] =
+ "strength=^"HB_ALL_REG"$:thresh=^"HB_INT_REG"$:blocksize=^"HB_INT_REG"$:"
+ "disable=^"HB_BOOL_REG"$";
hb_filter_object_t hb_filter_deblock =
{
.id = HB_FILTER_DEBLOCK,
.enforce_order = 1,
- .name = "Deblock (pp7)",
+ .skip = 1,
+ .name = "Deblock",
.settings = NULL,
- .init = hb_deblock_init,
- .work = hb_deblock_work,
- .close = hb_deblock_close,
+ .init = deblock_init,
+ .work = hb_avfilter_null_work,
+ .close = hb_avfilter_alias_close,
.settings_template = deblock_template,
};
-static inline void pp7_dct_a( DCTELEM * dst, uint8_t * src, int stride )
-{
- int i;
-
- for( i = 0; i < 4; i++ )
- {
- int s0 = src[0*stride] + src[6*stride];
- int s1 = src[1*stride] + src[5*stride];
- int s2 = src[2*stride] + src[4*stride];
- int s3 = src[3*stride];
- int s = s3+s3;
-
- s3 = s - s0;
- s0 = s + s0;
- s = s2 + s1;
- s2 = s2 - s1;
-
- dst[0] = s0 + s;
- dst[2] = s0 - s;
- dst[1] = 2*s3 + s2;
- dst[3] = s3 - s2*2;
-
- src++;
- dst += 4;
- }
-}
-
-static void pp7_dct_b( DCTELEM * dst, DCTELEM * src )
-{
- int i;
-
- for( i = 0; i < 4; i++ )
- {
- int s0 = src[0*4] + src[6*4];
- int s1 = src[1*4] + src[5*4];
- int s2 = src[2*4] + src[4*4];
- int s3 = src[3*4];
- int s = s3+s3;
-
- s3 = s - s0;
- s0 = s + s0;
- s = s2 + s1;
- s2 = s2 - s1;
-
- dst[0*4] = s0 + s;
- dst[2*4] = s0 - s;
- dst[1*4] = 2*s3 + s2;
- dst[3*4] = s3 - s2*2;
-
- src++;
- dst++;
- }
-}
-
-#define N (1<<16)
-#define N0 4
-#define N1 5
-#define N2 10
-#define SN0 2
-#define SN1 2.2360679775
-#define SN2 3.16227766017
-
-static const int pp7_factor[16] =
-{
- N/(N0*N0), N/(N0*N1), N/(N0*N0),N/(N0*N2),
- N/(N1*N0), N/(N1*N1), N/(N1*N0),N/(N1*N2),
- N/(N0*N0), N/(N0*N1), N/(N0*N0),N/(N0*N2),
- N/(N2*N0), N/(N2*N1), N/(N2*N0),N/(N2*N2),
-};
-
-static int pp7_threshold[99][16];
-
-static void pp7_init_threshold( void )
-{
- int qp, i;
- int bias = 0;
-
- for( qp = 0; qp < 99; qp++ )
- {
- for( i = 0; i < 16; i++ )
- {
- pp7_threshold[qp][i] =
- ((i&1)?SN2:SN0) * ((i&4)?SN2:SN0) *
- XMAX(1,qp) * (1<<2) - 1 - bias;
- }
- }
-}
-
-static int pp7_hard_threshold( DCTELEM * src, int qp )
-{
- int i;
- int a;
-
- a = src[0] * pp7_factor[0];
- for( i = 1; i < 16; i++ )
- {
- unsigned int threshold1 = pp7_threshold[qp][i];
- unsigned int threshold2 = (threshold1<<1);
- int level= src[i];
- if( ((unsigned)(level+threshold1)) > threshold2 )
- {
- a += level * pp7_factor[i];
- }
- }
- return (a + (1<<11)) >> 12;
-}
-
-static int pp7_medium_threshold( DCTELEM * src, int qp )
-{
- int i;
- int a;
-
- a = src[0] * pp7_factor[0];
- for( i = 1; i < 16; i++ )
- {
- unsigned int threshold1 = pp7_threshold[qp][i];
- unsigned int threshold2 = (threshold1<<1);
- int level= src[i];
- if( ((unsigned)(level+threshold1)) > threshold2 )
- {
- if( ((unsigned)(level+2*threshold1)) > 2*threshold2 )
- {
- a += level * pp7_factor[i];
- }
- else
- {
- if( level>0 )
- {
- a += 2*(level - (int)threshold1) * pp7_factor[i];
- }
- else
- {
- a += 2*(level + (int)threshold1) * pp7_factor[i];
- }
- }
- }
- }
- return (a + (1<<11)) >> 12;
-}
-
-static int pp7_soft_threshold( DCTELEM * src, int qp )
+/* Deblock presets and tunes
+ *
+ * There are currently no presets and tunes for deblock
+ * The custom deblock string is converted to an avformat filter graph string
+ */
+static int deblock_init(hb_filter_object_t * filter, hb_filter_init_t * init)
{
- int i;
- int a;
+ hb_filter_private_t * pv = NULL;
- a = src[0] * pp7_factor[0];
- for( i = 1; i < 16; i++ )
+ pv = calloc(1, sizeof(struct hb_filter_private_s));
+ filter->private_data = pv;
+ if (pv == NULL)
{
- unsigned int threshold1 = pp7_threshold[qp][i];
- unsigned int threshold2 = (threshold1<<1);
- int level= src[i];
- if( ((unsigned)(level+threshold1))>threshold2 )
- {
- if( level>0 )
- {
- a += (level - (int)threshold1) * pp7_factor[i];
- }
- else
- {
- a += (level + (int)threshold1) * pp7_factor[i];
- }
- }
+ return 1;
}
- return (a + (1<<11)) >> 12;
-}
+ pv->input = *init;
-static int ( * pp7_requantize )( DCTELEM * src, int qp ) = pp7_hard_threshold;
-
-static void pp7_filter( hb_filter_private_t * pv,
- uint8_t * dst,
- uint8_t * src,
- int width,
- int height,
- uint8_t * qp_store,
- int qp_stride,
- int is_luma)
-{
- int x, y;
+ hb_dict_t * settings = filter->settings;
- const int stride = is_luma ? pv->pp7_temp_stride : ((width+16+15)&(~15));
- uint8_t * p_src = pv->pp7_src + 8*stride;
- DCTELEM * block = (DCTELEM *)(pv->pp7_src);
- DCTELEM * temp = (DCTELEM *)(pv->pp7_src + 32);
-
- if( !src || !dst )
- {
- return;
- }
+ int thresh = -1, blocksize = 8;
+ char * strength = NULL;
- for( y = 0; y < height; y++ )
- {
- int index = 8 + 8*stride + y*stride;
- memcpy( p_src + index, src + y*width, width );
+ hb_dict_extract_string(&strength, settings, "strength");
+ hb_dict_extract_int(&thresh, settings, "thresh");
+ hb_dict_extract_int(&blocksize, settings, "blocksize");
- for( x = 0; x < 8; x++ )
- {
- p_src[index - x - 1] = p_src[index + x ];
- p_src[index + width + x ] = p_src[index + width - x - 1];
- }
- }
+ hb_dict_t * avfilter = hb_dict_init();
+ hb_dict_t * avsettings = hb_dict_init();
- for( y = 0; y < 8; y++ )
+ if (strength != NULL)
{
- memcpy( p_src + ( 7-y)*stride,
- p_src + ( y+8)*stride, stride );
- memcpy( p_src + (height+8+y)*stride,
- p_src + (height-y+7)*stride, stride );
+ hb_dict_set_string(avsettings, "filter", strength);
+ free(strength);
}
+ hb_dict_set_int(avsettings, "block", blocksize);
- for( y = 0; y < height; y++ )
+ if (thresh > 0)
{
- for( x = -8; x < 0; x += 4 )
- {
- const int index = x + y*stride + (8-3)*(1+stride) + 8;
- uint8_t * src = p_src + index;
- DCTELEM * tp = temp+4*x;
-
- pp7_dct_a( tp+4*8, src, stride );
- }
-
- for( x = 0; x < width; )
- {
- const int qps = 3 + is_luma;
- int end = XMIN(x+8, width);
-
- int qp;
- if( pv->pp7_qp )
- {
- qp = pv->pp7_qp;
- }
- else
- {
- qp = qp_store[ (XMIN(x, width-1)>>qps) +
- (XMIN(y, height-1)>>qps) * qp_stride ];
-
- if( pv->pp7_mpeg2 )
- {
- qp >>= 1;
- }
- }
-
- for( ; x < end; x++ )
- {
- const int index = x + y*stride + (8-3)*(1+stride) + 8;
- uint8_t * src = p_src + index;
- DCTELEM * tp = temp+4*x;
- int v;
-
- if( (x&3) == 0 )
- {
- pp7_dct_a( tp+4*8, src, stride );
- }
-
- pp7_dct_b( block, tp );
-
- v = pp7_requantize( block, qp );
- v = (v + pp7_dither[y&7][x&7]) >> 6;
- if( (unsigned)v > 255 )
- {
- v = (-v) >> 31;
- }
- dst[x + y*width] = v;
- }
- }
- }
-}
-
-static int hb_deblock_init( hb_filter_object_t * filter,
- hb_filter_init_t * init )
-{
- filter->private_data = calloc( sizeof(struct hb_filter_private_s), 1 );
- hb_filter_private_t * pv = filter->private_data;
-
- pv->input = *init;
- pv->pp7_qp = PP7_QP_DEFAULT;
- pv->pp7_mode = PP7_MODE_DEFAULT;
- pv->pp7_mpeg2 = 1; /*mpi->qscale_type;*/
-
- hb_dict_extract_int(&pv->pp7_mode, filter->settings, "mode");
- hb_dict_extract_int(&pv->pp7_qp, filter->settings, "qp");
-
- if( pv->pp7_qp < 0 )
- {
- pv->pp7_qp = 0;
- }
-
- pp7_init_threshold();
+ double alpha, beta, gamma, delta;
- switch( pv->pp7_mode )
- {
- case 0:
- pp7_requantize = pp7_hard_threshold;
- break;
- case 1:
- pp7_requantize = pp7_soft_threshold;
- break;
- case 2:
- pp7_requantize = pp7_medium_threshold;
- break;
+ alpha = thresh * 0.010;
+ beta = gamma = delta = alpha / 2;
+ hb_dict_set_double(avsettings, "alpha", alpha);
+ hb_dict_set_double(avsettings, "beta", beta);
+ hb_dict_set_double(avsettings, "gamma", gamma);
+ hb_dict_set_double(avsettings, "delta", delta);
}
+ hb_dict_set(avfilter, "deblock", avsettings);
+ pv->avfilters = avfilter;
- int h = (init->geometry.height + 16 + 15) & (~15);
-
- pv->pp7_temp_stride = (init->geometry.width + 16 + 15) & (~15);
-
- pv->pp7_src = (uint8_t*)malloc( pv->pp7_temp_stride*(h+8)*sizeof(uint8_t) );
pv->output = *init;
return 0;
}
-
-static void hb_deblock_close( hb_filter_object_t * filter )
-{
- hb_filter_private_t * pv = filter->private_data;
-
- if( !pv )
- {
- return;
- }
-
- free( pv );
- filter->private_data = NULL;
-}
-
-static int hb_deblock_work( hb_filter_object_t * filter,
- hb_buffer_t ** buf_in,
- hb_buffer_t ** buf_out )
-{
- 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;
- }
-
- if( /*TODO: mpi->qscale ||*/ pv->pp7_qp )
- {
- out = hb_frame_buffer_init(pv->output.pix_fmt,
- in->f.width, in->f.height );
- out->f.color_prim = pv->output.color_prim;
- out->f.color_transfer = pv->output.color_transfer;
- out->f.color_matrix = pv->output.color_matrix;
- out->f.color_range = pv->output.color_range ;
-
- pp7_filter( pv,
- out->plane[0].data,
- in->plane[0].data,
- in->plane[0].stride,
- in->plane[0].height,
- NULL, /* TODO: mpi->qscale*/
- 0, /* TODO: mpi->qstride*/
- 1 );
-
- pp7_filter( pv,
- out->plane[1].data,
- in->plane[1].data,
- in->plane[1].stride,
- in->plane[1].height,
- NULL, /* TODO: mpi->qscale*/
- 0, /* TODO: mpi->qstride*/
- 0 );
-
- pp7_filter( pv,
- out->plane[2].data,
- in->plane[2].data,
- in->plane[2].stride,
- in->plane[2].height,
- NULL, /* TODO: mpi->qscale*/
- 0, /* TODO: mpi->qstride*/
- 0 );
-
- out->s = in->s;
-
- *buf_out = out;
- }
- else
- {
- *buf_in = NULL;
- *buf_out = in;
- }
-
- return HB_FILTER_OK;
-}
diff --git a/libhb/hb_dict.c b/libhb/hb_dict.c
index 2894c62ac..6e075cef0 100644
--- a/libhb/hb_dict.c
+++ b/libhb/hb_dict.c
@@ -469,6 +469,11 @@ void hb_dict_set(hb_dict_t * dict, const char *key, hb_value_t *value)
json_object_set_new(dict, key, value);
}
+void hb_dict_merge(hb_dict_t * dict, hb_dict_t *value)
+{
+ json_object_update(dict, value);
+}
+
void hb_dict_case_set(hb_dict_t * dict, const char *key, hb_value_t *value)
{
char * lower = makelower(key);
diff --git a/libhb/hb_dict.h b/libhb/hb_dict.h
index 74fc50a58..3984d1a0d 100644
--- a/libhb/hb_dict.h
+++ b/libhb/hb_dict.h
@@ -43,6 +43,7 @@ int hb_dict_elements(hb_dict_t * dict);
/* add value to dictionary. dictionary takes ownership of value */
void hb_dict_set(hb_dict_t * dict, const char * key,
hb_value_t * value);
+void hb_dict_merge(hb_dict_t * dict, hb_dict_t *value);
void hb_dict_case_set(hb_dict_t * dict, const char *key,
hb_value_t *value);
/* remove value from dictionary. releases reference to value */
diff --git a/libhb/hbavfilter.c b/libhb/hbavfilter.c
index 2719c1beb..36e34c424 100644
--- a/libhb/hbavfilter.c
+++ b/libhb/hbavfilter.c
@@ -259,22 +259,11 @@ void hb_avfilter_combine( hb_list_t * list)
switch (filter->id)
{
case HB_FILTER_AVFILTER:
- {
- settings = pv->avfilters;
- } break;
- case HB_FILTER_ROTATE:
- {
- settings = pv->avfilters;
- } break;
case HB_FILTER_DEINTERLACE:
- {
- settings = pv->avfilters;
- } break;
- case HB_FILTER_PAD:
- {
- settings = pv->avfilters;
- } break;
+ case HB_FILTER_DEBLOCK:
case HB_FILTER_CROP_SCALE:
+ case HB_FILTER_PAD:
+ case HB_FILTER_ROTATE:
{
settings = pv->avfilters;
} break;
diff --git a/libhb/param.c b/libhb/param.c
index 1782651ca..ba4590f1b 100644
--- a/libhb/param.c
+++ b/libhb/param.c
@@ -40,6 +40,27 @@ static hb_filter_param_t nlmeans_tunes[] =
{ 0, NULL, NULL, NULL }
};
+static hb_filter_param_t deblock_presets[] =
+{
+ { 0, "Off", "off", "disable=1" },
+ { 1, "Custom", "custom", NULL },
+ { 2, "Ultralight", "ultralight", "strength=weak:thresh=20" },
+ { 3, "Light", "light", "strength=weak:thresh=50" },
+ { 4, "Medium", "medium", "strength=strong:thresh=20" },
+ { 5, "Strong", "strong", "strength=strong:thresh=50" },
+ { 5, "Stronger", "stronger", "strength=strong:thresh=75" },
+ { 5, "Very Strong", "verystrong", "strength=strong:thresh=100" },
+ { 0, NULL, NULL, NULL }
+};
+
+static hb_filter_param_t deblock_tunes[] =
+{
+ { 1, "Small (4x4)", "small", "blocksize=4" },
+ { 2, "Medium (8x8)", "medium", NULL },
+ { 3, "Large (16x16)", "large", "blocksize=16" },
+ { 0, NULL, NULL, NULL }
+};
+
static hb_filter_param_t hqdn3d_presets[] =
{
{ 1, "Custom", "custom", NULL },
@@ -236,6 +257,10 @@ static filter_param_map_t param_map[] =
{ HB_FILTER_DEINTERLACE, deinterlace_presets, NULL,
sizeof(deinterlace_presets) / sizeof(hb_filter_param_t), 0, },
+ { HB_FILTER_DEBLOCK, deblock_presets, deblock_tunes,
+ sizeof(deblock_presets) / sizeof(hb_filter_param_t),
+ sizeof(deblock_tunes) / sizeof(hb_filter_param_t), },
+
{ HB_FILTER_INVALID, NULL, NULL, 0, 0, },
};
@@ -1130,42 +1155,44 @@ filter_param_get_entry(hb_filter_param_t *table, const char *name, int count)
return NULL;
}
-static hb_dict_t *
-generate_generic_settings(int filter_id, const char *preset, const char *custom)
+static hb_value_t *
+generate_generic_settings(int filter_id, const char * preset,
+ const char * tune, const char * custom)
{
- int preset_count;
- hb_filter_param_t *preset_table;
- hb_filter_param_t *preset_entry;
-
- if (preset == NULL || !strcasecmp(preset, "custom"))
+ if ((preset == NULL || !strcasecmp(preset, "custom")))
{
return hb_parse_filter_settings(custom);
}
- preset_table = filter_param_get_presets_internal(filter_id, &preset_count);
- preset_entry = filter_param_get_entry(preset_table, preset, preset_count);
- if (preset_entry != NULL && preset_entry->settings != NULL)
- {
- return hb_parse_filter_settings(preset_entry->settings);
- }
- return NULL;
-}
+ int count;
+ hb_filter_param_t *table;
+ hb_filter_param_t *entry;
-static hb_value_t *
-generate_deblock_settings(const char * preset, const char * custom)
-{
- hb_dict_t * settings = NULL;
+ hb_value_t * settings, * tune_settings;
- // Deblock "presets" are just the QP value. 0 disables.
- if ((preset == NULL || !strcasecmp(preset, "custom")))
+ table = filter_param_get_presets_internal(filter_id, &count);
+ entry = filter_param_get_entry(table, preset, count);
+ if (entry != NULL && entry->settings != NULL)
{
- settings = hb_parse_filter_settings(custom);
- }
- else
- {
- settings = hb_dict_init();
- int qp = strtol(preset, NULL, 0);
- hb_dict_set(settings, "qp", hb_value_int(qp));
+ settings = hb_parse_filter_settings(entry->settings);
+ if (settings == NULL)
+ {
+ return NULL;
+ }
+
+ table = filter_param_get_tunes_internal(filter_id, &count);
+ entry = filter_param_get_entry(table, tune, count);
+ if (entry != NULL && entry->settings != NULL)
+ {
+ tune_settings = hb_parse_filter_settings(entry->settings);
+ if (tune_settings == NULL)
+ {
+ hb_value_free(&settings);
+ return NULL;
+ }
+ hb_dict_merge(settings, tune_settings);
+ hb_value_free(&tune_settings);
+ }
}
return settings;
@@ -1187,11 +1214,6 @@ static void check_filter_status(int filter_id, hb_value_t *settings)
int hflip = hb_dict_get_int(settings, "hflip");
disable = angle == 0 && hflip == 0;
} break;
- case HB_FILTER_DEBLOCK:
- {
- int qp = hb_dict_get_int(settings, "qp");
- disable = qp < 5;
- } break;
default:
{
} break;
@@ -1210,9 +1232,6 @@ hb_generate_filter_settings(int filter_id, const char *preset, const char *tune,
switch (filter_id)
{
- case HB_FILTER_DEBLOCK:
- settings = generate_deblock_settings(preset, custom);
- break;
case HB_FILTER_PAD:
case HB_FILTER_ROTATE:
case HB_FILTER_CROP_SCALE:
@@ -1234,12 +1253,14 @@ hb_generate_filter_settings(int filter_id, const char *preset, const char *tune,
case HB_FILTER_UNSHARP:
settings = generate_unsharp_settings(preset, tune, custom);
break;
+ case HB_FILTER_DEBLOCK:
case HB_FILTER_COMB_DETECT:
case HB_FILTER_DECOMB:
case HB_FILTER_DETELECINE:
case HB_FILTER_HQDN3D:
case HB_FILTER_DEINTERLACE:
- settings = generate_generic_settings(filter_id, preset, custom);
+ settings = generate_generic_settings(filter_id, preset,
+ tune, custom);
break;
default:
fprintf(stderr,
diff --git a/libhb/preset.c b/libhb/preset.c
index 644eac209..b135475e7 100644
--- a/libhb/preset.c
+++ b/libhb/preset.c
@@ -1475,14 +1475,16 @@ int hb_preset_apply_filters(const hb_dict_t *preset, hb_dict_t *job_dict)
}
// Deblock filter
- char *deblock = hb_value_get_string_xform(
- hb_dict_get(preset, "PictureDeblock"));
+ const char * deblock = hb_value_get_string(
+ hb_dict_get(preset, "PictureDeblockPreset"));
if (deblock != NULL)
{
+ const char * deblock_tune = hb_value_get_string(
+ hb_dict_get(preset, "PictureDeblockTune"));
const char * deblock_custom = hb_value_get_string(
hb_dict_get(preset, "PictureDeblockCustom"));
filter_settings = hb_generate_filter_settings(HB_FILTER_DEBLOCK,
- deblock, NULL, deblock_custom);
+ deblock, deblock_tune, deblock_custom);
if (filter_settings == NULL)
{
hb_error("Invalid deblock filter settings (%s)", deblock);
@@ -1500,7 +1502,6 @@ int hb_preset_apply_filters(const hb_dict_t *preset, hb_dict_t *job_dict)
hb_value_free(&filter_settings);
}
}
- free(deblock);
// Rotate filter
char *rotate = hb_value_get_string_xform(
@@ -2489,6 +2490,28 @@ static hb_value_t * import_hierarchy_29_0_0(hb_value_t *presets)
return hb_value_dup(presets);
}
+static void import_deblock_35_0_0(hb_value_t *preset)
+{
+ int deblock = hb_dict_get_int(preset, "PictureDeblock");
+
+ if (deblock < 5)
+ {
+ hb_dict_set_string(preset, "PictureDeblockPreset", "off");
+ }
+ else if (deblock < 7)
+ {
+ hb_dict_set_string(preset, "PictureDeblockPreset", "medium");
+ }
+ else
+ {
+ hb_dict_set_string(preset, "PictureDeblockPreset", "strong");
+ }
+ hb_dict_set_string(preset, "PictureDeblockTune", "medium");
+ hb_dict_set_string(preset, "PictureDeblockCustom",
+ "strength=strong:thresh=20");
+ hb_dict_remove(preset, "PictureDeblock");
+}
+
static void import_video_scaler_25_0_0(hb_value_t *preset)
{
hb_dict_set(preset, "VideoScaler", hb_value_string("swscale"));
@@ -3106,9 +3129,16 @@ static void import_video_0_0_0(hb_value_t *preset)
}
}
+static void import_35_0_0(hb_value_t *preset)
+{
+ import_deblock_35_0_0(preset);
+}
+
static void import_25_0_0(hb_value_t *preset)
{
import_video_scaler_25_0_0(preset);
+
+ import_35_0_0(preset);
}
static void import_20_0_0(hb_value_t *preset)
@@ -3216,6 +3246,11 @@ static int preset_import(hb_value_t *preset, int major, int minor, int micro)
import_25_0_0(preset);
result = 1;
}
+ else if (cmpVersion(major, minor, micro, 35, 0, 0) <= 0)
+ {
+ import_35_0_0(preset);
+ result = 1;
+ }
preset_clean(preset, hb_preset_template);
}
return result;
diff --git a/libhb/preset_builtin.h b/libhb/preset_builtin.h
index da0fc7c87..7b0de1f6f 100644
--- a/libhb/preset_builtin.h
+++ b/libhb/preset_builtin.h
@@ -44,8 +44,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"fast\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -149,8 +150,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"fast\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -254,8 +256,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"fast\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -359,8 +362,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"fast\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -464,8 +468,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -569,8 +574,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -674,8 +680,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -779,8 +786,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -898,8 +906,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -1017,8 +1026,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -1136,8 +1146,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -1255,8 +1266,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -1374,8 +1386,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -1493,8 +1506,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -1612,8 +1626,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -1731,8 +1746,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -1843,8 +1859,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -1948,8 +1965,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -2053,8 +2071,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -2158,8 +2177,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -2263,8 +2283,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -2368,8 +2389,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -2473,8 +2495,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -2578,8 +2601,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -2690,8 +2714,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -2795,8 +2820,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -2900,8 +2926,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -3005,8 +3032,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -3124,8 +3152,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -3243,8 +3272,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -3362,8 +3392,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -3481,8 +3512,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -3600,8 +3632,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -3705,8 +3738,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -3824,8 +3858,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -3943,8 +3978,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -4062,8 +4098,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -4181,8 +4218,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -4300,8 +4338,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -4405,8 +4444,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -4524,8 +4564,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -4629,8 +4670,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -4734,8 +4776,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -4856,8 +4899,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -4975,8 +5019,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -5094,8 +5139,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -5199,8 +5245,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -5304,8 +5351,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -5409,8 +5457,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -5514,8 +5563,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -5619,8 +5669,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -5724,8 +5775,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -5843,8 +5895,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -5962,8 +6015,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -6074,8 +6128,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -6179,8 +6234,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -6284,8 +6340,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -6389,8 +6446,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -6494,8 +6552,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -6599,8 +6658,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -6704,8 +6764,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -6809,8 +6870,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -6914,8 +6976,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -7019,8 +7082,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -7122,8 +7186,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -7225,8 +7290,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -7328,8 +7394,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -7431,8 +7498,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -7534,8 +7602,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -7637,8 +7706,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -7740,8 +7810,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -7843,8 +7914,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -7946,8 +8018,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"default\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"decomb\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -8058,8 +8131,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"off\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"off\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -8163,8 +8237,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"off\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"off\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -8268,8 +8343,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"off\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"off\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -8373,8 +8449,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"off\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"off\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -8492,8 +8569,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"off\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"off\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -8613,8 +8691,9 @@ const char hb_builtin_presets_json[] =
" \"PictureCombDetectCustom\": \"\", \n"
" \"PictureCombDetectPreset\": \"off\", \n"
" \"PictureDARWidth\": 0, \n"
-" \"PictureDeblock\": 0, \n"
-" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n"
+" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n"
+" \"PictureDeblockPreset\": \"off\", \n"
+" \"PictureDeblockTune\": \"medium\", \n"
" \"PictureDeinterlaceCustom\": \"\", \n"
" \"PictureDeinterlaceFilter\": \"off\", \n"
" \"PictureDeinterlacePreset\": \"default\", \n"
@@ -8677,7 +8756,7 @@ const char hb_builtin_presets_json[] =
" \"x264Option\": \"\", \n"
" \"x264UseAdvancedOptions\": false\n"
" }, \n"
-" \"VersionMajor\": 35, \n"
+" \"VersionMajor\": 36, \n"
" \"VersionMicro\": 0, \n"
" \"VersionMinor\": 0\n"
" }\n"
diff --git a/preset/preset_builtin.json b/preset/preset_builtin.json
index 030f5d74c..2caa45bd6 100644
--- a/preset/preset_builtin.json
+++ b/preset/preset_builtin.json
@@ -42,8 +42,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "fast",
"PictureDeinterlaceCustom": "",
@@ -150,8 +151,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "fast",
"PictureDeinterlaceCustom": "",
@@ -258,8 +260,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "fast",
"PictureDeinterlaceCustom": "",
@@ -366,8 +369,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "fast",
"PictureDeinterlaceCustom": "",
@@ -474,8 +478,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -582,8 +587,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -690,8 +696,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -798,8 +805,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -920,8 +928,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -1042,8 +1051,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -1164,8 +1174,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -1286,8 +1297,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -1408,8 +1420,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -1530,8 +1543,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -1652,8 +1666,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -1774,8 +1789,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -1889,8 +1905,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -1997,8 +2014,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -2105,8 +2123,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -2213,8 +2232,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -2321,8 +2341,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -2429,8 +2450,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -2537,8 +2559,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -2645,8 +2668,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -2760,8 +2784,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -2868,8 +2893,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -2976,8 +3002,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -3084,8 +3111,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -3206,8 +3234,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -3328,8 +3357,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -3450,8 +3480,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -3572,8 +3603,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -3694,8 +3726,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -3802,8 +3835,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -3924,8 +3958,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -4046,8 +4081,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -4168,8 +4204,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -4290,8 +4327,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -4412,8 +4450,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -4520,8 +4559,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -4642,8 +4682,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -4750,8 +4791,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -4858,8 +4900,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -4983,8 +5026,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -5105,8 +5149,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -5227,8 +5272,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -5335,8 +5381,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -5443,8 +5490,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -5551,8 +5599,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -5659,8 +5708,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -5767,8 +5817,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -5875,8 +5926,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -5997,8 +6049,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -6119,8 +6172,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -6234,8 +6288,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -6342,8 +6397,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -6450,8 +6506,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -6558,8 +6615,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -6666,8 +6724,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -6774,8 +6833,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -6882,8 +6942,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -6990,8 +7051,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -7098,8 +7160,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -7206,8 +7269,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -7313,8 +7377,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -7420,8 +7485,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -7527,8 +7593,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -7634,8 +7701,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -7741,8 +7809,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -7848,8 +7917,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -7955,8 +8025,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -8062,8 +8133,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -8169,8 +8241,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "default",
"PictureDeinterlaceCustom": "",
@@ -8284,8 +8357,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "off",
"PictureDeinterlaceCustom": "",
@@ -8392,8 +8466,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "off",
"PictureDeinterlaceCustom": "",
@@ -8500,8 +8575,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "off",
"PictureDeinterlaceCustom": "",
@@ -8608,8 +8684,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "off",
"PictureDeinterlaceCustom": "",
diff --git a/preset/preset_builtin.list b/preset/preset_builtin.list
index 3c51542a3..5662a7b2f 100644
--- a/preset/preset_builtin.list
+++ b/preset/preset_builtin.list
@@ -1,6 +1,6 @@
<resources>
<section name="PresetTemplate">
- <integer name="VersionMajor" value="35" />
+ <integer name="VersionMajor" value="36" />
<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 3d05c1902..412b9e625 100644
--- a/preset/preset_cli_default.json
+++ b/preset/preset_cli_default.json
@@ -47,8 +47,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "off",
"PictureDeinterlaceCustom": "",
diff --git a/preset/preset_template.json b/preset/preset_template.json
index 179ca261f..ed1125d7b 100644
--- a/preset/preset_template.json
+++ b/preset/preset_template.json
@@ -47,8 +47,9 @@
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 0,
- "PictureDeblock": 0,
- "PictureDeblockCustom": "qp=0:mode=2",
+ "PictureDeblockPreset": "off",
+ "PictureDeblockTune": "medium",
+ "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureCombDetectCustom": "",
"PictureCombDetectPreset": "off",
"PictureDeinterlaceCustom": "",
diff --git a/test/test.c b/test/test.c
index 7d94ed2be..9f82d3bee 100644
--- a/test/test.c
+++ b/test/test.c
@@ -56,7 +56,7 @@
#define COMB_DETECT_DEFAULT_PRESET "default"
#define HQDN3D_DEFAULT_PRESET "medium"
#define ROTATE_DEFAULT "angle=180:hflip=0"
-#define DEBLOCK_DEFAULT "qp=5"
+#define DEBLOCK_DEFAULT_PRESET "medium"
/* Options */
static int debug = HB_DEBUG_ALL;
@@ -79,7 +79,9 @@ static int deinterlace_disable = 0;
static int deinterlace_custom = 0;
static char * deinterlace = NULL;
static int deblock_disable = 0;
+static int deblock_custom = 0;
static char * deblock = NULL;
+static char * deblock_tune = NULL;
static int hqdn3d_disable = 0;
static int hqdn3d_custom = 0;
static char * hqdn3d = NULL;
@@ -617,6 +619,7 @@ cleanup:
free(encoder_level);
free(rotate);
free(deblock);
+ free(deblock_tune);
free(detelecine);
free(deinterlace);
free(decomb);
@@ -1219,6 +1222,9 @@ static void showFilterDefault(FILE* const out, int filter_id)
case HB_FILTER_COMB_DETECT:
preset = COMB_DETECT_DEFAULT_PRESET;
break;
+ case HB_FILTER_DEBLOCK:
+ preset = DEBLOCK_DEFAULT_PRESET;
+ break;
default:
break;
}
@@ -1233,6 +1239,7 @@ static void showFilterDefault(FILE* const out, int filter_id)
case HB_FILTER_DETELECINE:
case HB_FILTER_HQDN3D:
case HB_FILTER_COMB_DETECT:
+ case HB_FILTER_DEBLOCK:
{
hb_dict_t * settings;
settings = hb_generate_filter_settings(filter_id, preset,
@@ -1266,9 +1273,6 @@ static void showFilterDefault(FILE* const out, int filter_id)
case HB_FILTER_ROTATE:
fprintf(out, "%s", ROTATE_DEFAULT);
break;
- case HB_FILTER_DEBLOCK:
- fprintf(out, "%s", DEBLOCK_DEFAULT);
- break;
default:
break;
}
@@ -1765,11 +1769,18 @@ static void ShowHelp()
fprintf( out,
" Applies to lapsharp presets only (does not affect\n"
" custom settings)\n"
-" -7, --deblock[=string] Deblock video with pp7 filter\n");
+" -7, --deblock[=string] Deblock video with avfilter deblock\n");
+ showFilterPresets(out, HB_FILTER_DEBLOCK);
showFilterKeys(out, HB_FILTER_DEBLOCK);
showFilterDefault(out, HB_FILTER_DEBLOCK);
fprintf( out,
" --no-deblock Disable preset deblock filter\n"
+" --deblock-tune <string>\n"
+" Tune deblock filter\n");
+ showFilterTunes(out, HB_FILTER_DEBLOCK);
+ fprintf( out,
+" Applies to deblock presets only (does not affect\n"
+" custom settings)\n"
" --rotate[=string] Rotate image or flip its axes.\n"
" angle rotates clockwise, can be one of:\n"
" 0, 90, 180, 270\n"
@@ -2152,6 +2163,7 @@ static int ParseOptions( int argc, char ** argv )
#define SSA_BURN 321
#define FILTER_CHROMA_SMOOTH 322
#define FILTER_CHROMA_SMOOTH_TUNE 323
+ #define FILTER_DEBLOCK_TUNE 324
for( ;; )
{
@@ -2228,6 +2240,7 @@ static int ParseOptions( int argc, char ** argv )
{ "no-deinterlace", no_argument, &deinterlace_disable, 1 },
{ "deblock", optional_argument, NULL, '7' },
{ "no-deblock", no_argument, &deblock_disable, 1 },
+ { "deblock-tune",required_argument, NULL, FILTER_DEBLOCK_TUNE },
{ "denoise", optional_argument, NULL, '8' },
{ "hqdn3d", optional_argument, NULL, '8' },
{ "no-hqdn3d", no_argument, &hqdn3d_disable, 1 },
@@ -2680,15 +2693,19 @@ static int ParseOptions( int argc, char ** argv )
break;
case '7':
free(deblock);
- if( optarg != NULL )
+ if (optarg != NULL)
{
deblock = strdup(optarg);
}
else
{
- deblock = strdup(DEBLOCK_DEFAULT);
+ deblock = strdup(DEBLOCK_DEFAULT_PRESET);
}
break;
+ case FILTER_DEBLOCK_TUNE:
+ free(deblock_tune);
+ deblock_tune = strdup(optarg);
+ break;
case '8':
free(hqdn3d);
if (optarg != NULL)
@@ -3085,7 +3102,18 @@ static int ParseOptions( int argc, char ** argv )
"Incompatible options --deblock and --no-deblock\n");
return -1;
}
- if (hb_validate_filter_string(HB_FILTER_DEBLOCK, deblock))
+ if (!hb_validate_filter_preset(HB_FILTER_DEBLOCK, deblock,
+ deblock_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_DEBLOCK, deblock))
+ {
+ deblock_custom = 1;
+ }
+ else
{
fprintf(stderr, "Invalid deblock option %s\n", deblock);
return -1;
@@ -4403,14 +4431,26 @@ static hb_dict_t * PreparePreset(const char *preset_name)
hb_value_string(lapsharp));
}
}
- if (deblock_disable)
+ if (deblock != NULL)
{
- hb_dict_set(preset, "PictureDeblock", hb_value_string("0"));
+ if (!deblock_custom)
+ {
+ hb_dict_set_string(preset, "PictureDeblockPreset", deblock);
+ if (deblock_tune != NULL)
+ {
+ hb_dict_set_string(preset, "PictureDeblockTune",
+ deblock_tune);
+ }
+ }
+ else
+ {
+ hb_dict_set_string(preset, "PictureDeblockPreset", "custom");
+ hb_dict_set_string(preset, "PictureDeblockCustom", deblock);
+ }
}
- if (deblock != NULL)
+ if (deblock_disable)
{
- hb_dict_set(preset, "PictureDeblock", hb_value_string("custom"));
- hb_dict_set(preset, "PictureDeblockCustom", hb_value_string(deblock));
+ hb_dict_set_string(preset, "PictureDeblockPreset", "off");
}
if (rotate != NULL)
{