summaryrefslogtreecommitdiffstats
path: root/gtk
diff options
context:
space:
mode:
Diffstat (limited to 'gtk')
-rw-r--r--gtk/src/ghb.ui23
-rw-r--r--gtk/src/widgetdeps.c1
-rw-r--r--gtk/src/x264handler.c41
3 files changed, 29 insertions, 36 deletions
diff --git a/gtk/src/ghb.ui b/gtk/src/ghb.ui
index 6899521ff..00d004ceb 100644
--- a/gtk/src/ghb.ui
+++ b/gtk/src/ghb.ui
@@ -3176,21 +3176,6 @@ no-dct-decimate=0:cabac=1</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="x264_mbtree">
- <property name="visible">True</property>
- <property name="can_focus">True</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">Using macroblock tree ratecontrol overall improves compression.</property>
- <property name="label" translatable="yes">Macroblock Tree Rate Control</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- <signal handler="x264_widget_changed_cb" name="toggled"/>
- </object>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
<object class="GtkCheckButton" id="x264_no_fast_pskip">
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -3202,7 +3187,7 @@ no-dct-decimate=0:cabac=1</property>
<signal handler="x264_widget_changed_cb" name="toggled"/>
</object>
<packing>
- <property name="position">3</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
@@ -3217,7 +3202,7 @@ no-dct-decimate=0:cabac=1</property>
<signal handler="x264_widget_changed_cb" name="toggled"/>
</object>
<packing>
- <property name="position">4</property>
+ <property name="position">3</property>
</packing>
</child>
<child>
@@ -3232,7 +3217,7 @@ no-dct-decimate=0:cabac=1</property>
<signal handler="x264_widget_changed_cb" name="toggled"/>
</object>
<packing>
- <property name="position">5</property>
+ <property name="position">4</property>
</packing>
</child>
<child>
@@ -3300,7 +3285,7 @@ no-dct-decimate=0:cabac=1</property>
</child>
</object>
<packing>
- <property name="position">6</property>
+ <property name="position">5</property>
</packing>
</child>
</object>
diff --git a/gtk/src/widgetdeps.c b/gtk/src/widgetdeps.c
index ef58b769c..4747f69de 100644
--- a/gtk/src/widgetdeps.c
+++ b/gtk/src/widgetdeps.c
@@ -72,7 +72,6 @@ static dependency_t dep_map[] =
{"x264_subme", "x264_psy_trell", "<6", TRUE, FALSE},
{"x264_cabac", "x264_psy_trell", "TRUE", FALSE, FALSE},
{"x264_trellis", "x264_psy_trell", "0", TRUE, FALSE},
- {"x264_mbtree", "x264_bpyramid", "FALSE", FALSE, FALSE},
{"ChapterMarkers", "chapters_list", "TRUE", FALSE, FALSE},
{"use_source_name", "chapters_in_destination", "TRUE", FALSE, FALSE},
{"use_source_name", "title_no_in_destination", "TRUE", FALSE, FALSE},
diff --git a/gtk/src/x264handler.c b/gtk/src/x264handler.c
index 6ad1cfe93..60a05b56c 100644
--- a/gtk/src/x264handler.c
+++ b/gtk/src/x264handler.c
@@ -194,7 +194,7 @@ struct x264_opt_map_s x264_opt_map[] =
{x264_decimate_syns, "x264_no_dct_decimate", "0", X264_OPT_BOOL},
{x264_cabac_syns, "x264_cabac", "1", X264_OPT_BOOL},
{x264_psy_syns, "x264_psy_rd", "1,0", X264_OPT_PSY},
- {x264_mbtree_syns, "x264_mbtree", "1", X264_OPT_BOOL},
+ {x264_mbtree_syns, "x264_mbtree", "1", X264_OPT_NONE},
{x264_psy_syns, "x264_psy_trell", "1,0", X264_OPT_PSY},
};
#define X264_OPT_MAP_SIZE (sizeof(x264_opt_map)/sizeof(struct x264_opt_map_s))
@@ -433,20 +433,7 @@ ghb_x264_parse_options(signal_user_data_t *ud, const gchar *options)
{
if (!x264_opt_map[jj].found)
{
- gchar *val;
-
- if (x264_opt_map[jj].opt_syns == x264_mbtree_syns)
- {
- int bframes = ghb_lookup_bframes(options);
- if (bframes > 0)
- val = strdup("1");
- else
- val = strdup("0");
- }
- else
- {
- val = strdup(x264_opt_map[jj].def_val);
- }
+ gchar *val = strdup(x264_opt_map[jj].def_val);
switch(x264_opt_map[jj].type)
{
case X264_OPT_INT:
@@ -764,6 +751,28 @@ ghb_lookup_bframes(const gchar *options)
return ret;
}
+gint
+ghb_lookup_mbtree(const gchar *options)
+{
+ gint ret = ghb_lookup_bframes(options) != 0;
+ gchar *result;
+ gchar **split;
+
+ if (options == NULL)
+ options = "";
+
+ split = g_strsplit(options, ":", -1);
+
+ result = x264_lookup_value(split, x264_mbtree_syns);
+ g_strfreev(split);
+ if (result != NULL)
+ {
+ ret = g_strtod(result, NULL);
+ g_free(result);
+ }
+ return ret;
+}
+
// Construct the x264 options string
// The result is allocated, so someone must free it at some point.
static gchar*
@@ -774,7 +783,7 @@ sanitize_x264opts(signal_user_data_t *ud, const gchar *options)
gint ii;
// Fix up option dependencies
- gboolean mbtree = ghb_settings_get_boolean(ud->settings, "x264_mbtree");
+ gboolean mbtree = ghb_lookup_mbtree(options);
if (mbtree)
{
x264_remove_opt(split, x264_bpyramid_syns);