<child>
<object class="GtkTable" id="table10">
<property name="visible">True</property>
- <property name="n_rows">6</property>
+ <property name="n_rows">7</property>
<property name="n_columns">2</property>
<property name="column_spacing">5</property>
</child>
<child>
- <object class="GtkLabel" id="label56">
+ <object class="GtkRadioButton" id="PictureDecombDeinterlace">
+ <property name="label" translatable="yes">Decomb</property>
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Decomb:</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="setting_widget_changed_cb"/>
+ </object>
+ <packing>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="PictureDeinterlaceDecomb">
+ <property name="label" translatable="yes">Deinterlace</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">PictureDecombDeinterlace</property>
</object>
<packing>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="PictureDecombLabel">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Decomb:</property>
+ </object>
+ <packing>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
</packing>
</child>
<child>
<signal name="changed" handler="setting_widget_changed_cb"/>
</object>
<packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
</packing>
<signal name="changed" handler="setting_widget_changed_cb"/>
</object>
<packing>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="label31">
+ <object class="GtkLabel" id="PictureDeinterlaceLabel">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">Deinterlace:</property>
</object>
<packing>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
+ <property name="top_attach">5</property>
+ <property name="bottom_attach">6</property>
</packing>
</child>
<child>
<signal name="changed" handler="setting_widget_changed_cb"/>
</object>
<packing>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
+ <property name="top_attach">5</property>
+ <property name="bottom_attach">6</property>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
</packing>
<signal name="changed" handler="setting_widget_changed_cb"/>
</object>
<packing>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
+ <property name="top_attach">6</property>
+ <property name="bottom_attach">7</property>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
</packing>
static options_map_t d_detel_opts[] =
{
- {"None", "none", 0, ""},
+ {"Off", "off", 0, ""},
{"Custom", "custom", 1, ""},
{"Default","default",2, NULL},
};
static options_map_t d_decomb_opts[] =
{
- {"None", "none", 0, ""},
+ {"Off", "off", 0, ""},
{"Custom", "custom", 1, ""},
{"Default","default",2, NULL},
};
static options_map_t d_deint_opts[] =
{
- {"None", "none", 0, ""},
+ {"Off", "off", 0, ""},
{"Custom", "custom", 1, ""},
{"Fast", "fast", 2, "-1:-1:-1:0:1"},
{"Slow", "slow", 3, "2:-1:-1:0:1"},
static options_map_t d_denoise_opts[] =
{
- {"None", "none", 0, ""},
+ {"Off", "off", 0, ""},
{"Custom", "custom", 1, ""},
{"Weak", "weak", 2, "2:1:2:3"},
{"Medium", "medium", 3, "3:2:2:3"},
job->anamorphic.modulus = 2;
}
- gint deint = ghb_settings_combo_int(settings, "PictureDeinterlace");
- gint decomb = ghb_settings_combo_int(settings, "PictureDecomb");
- job->deinterlace = (!decomb && deint == 0) ? 0 : 1;
+ gboolean decomb_deint = ghb_settings_get_boolean(settings, "PictureDecombDeinterlace");
+ if (decomb_deint)
+ {
+ gint decomb = ghb_settings_combo_int(settings, "PictureDecomb");
+ job->deinterlace = (decomb == 0) ? 0 : 1;
+ }
+ else
+ {
+ gint deint = ghb_settings_combo_int(settings, "PictureDeinterlace");
+ job->deinterlace = (deint == 0) ? 0 : 1;
+ }
gboolean keep_aspect;
keep_aspect = ghb_settings_get_boolean(settings, "PictureKeepRatio");
gint index;
gchar *message;
+ gboolean decomb_deint = ghb_settings_get_boolean(ud->settings, "PictureDecombDeinterlace");
// deinte
index = ghb_settings_combo_int(ud->settings, "PictureDeinterlace");
- if (index == 1)
+ if (!decomb_deint && index == 1)
{
str = ghb_settings_get_string(ud->settings, "PictureDeinterlaceCustom");
if (!ghb_validate_filter_string(str, 4))
}
// decomb
index = ghb_settings_combo_int(ud->settings, "PictureDecomb");
- if (index == 1)
+ if (decomb_deint && index == 1)
{
str = ghb_settings_get_string(ud->settings, "PictureDecombCustom");
if (!ghb_validate_filter_string(str, 15))
job->crop[3] = ghb_settings_get_int(js, "PictureRightCrop");
+ gboolean decomb_deint = ghb_settings_get_boolean(js, "PictureDecombDeinterlace");
gint decomb = ghb_settings_combo_int(js, "PictureDecomb");
gint deint = ghb_settings_combo_int(js, "PictureDeinterlace");
- if (!decomb)
+ if (!decomb_deint)
job->deinterlace = (deint != 0) ? 1 : 0;
else
job->deinterlace = 0;
hb_filter_detelecine.settings = detel_str;
hb_list_add( job->filters, &hb_filter_detelecine );
}
- if ( decomb )
+ if ( decomb_deint && decomb )
{
if (decomb != 1)
{
<integer>16</integer>
<key>PictureDeblock</key>
<integer>0</integer>
+ <key>PictureDecombDeinterlace</key>
+ <true />
<key>PictureDecomb</key>
- <string>none</string>
+ <string>off</string>
<key>PictureDecombCustom</key>
<string></string>
<key>Default</key>
<key>PictureTopCrop</key>
<integer>0</integer>
<key>PictureDeinterlace</key>
- <string>none</string>
+ <string>off</string>
<key>PictureDeinterlaceCustom</key>
<string></string>
<key>PictureDenoise</key>
- <string>none</string>
+ <string>off</string>
<key>PictureDenoiseCustom</key>
<string></string>
<key>PictureDetelecine</key>
- <string>none</string>
+ <string>off</string>
<key>PictureDetelecineCustom</key>
<string></string>
<key>PicturePAR</key>
value_map_t deint_xlat[] =
{
- {"0", "none"},
+ {"0", "off"},
{"1", "custom"},
{"2", "fast"},
{"3", "slow"},
value_map_t denoise_xlat[] =
{
- {"0", "none"},
+ {"0", "off"},
{"1", "custom"},
{"2", "weak"},
{"3", "medium"},
value_map_t detel_xlat[] =
{
- {"0", "none"},
+ {"0", "off"},
{"1", "custom"},
{"2", "default"},
{NULL, NULL}
value_map_t decomb_xlat[] =
{
- {"0", "none"},
+ {"0", "off"},
{"1", "custom"},
{"2", "default"},
{NULL, NULL}
source_width, source_height, width, height, aspect_desc);
gint decomb, detel;
+ gboolean decomb_deint;
gboolean filters = FALSE;
+ decomb_deint = ghb_settings_get_boolean(settings, "PictureDecombDeinterlace");
decomb = ghb_settings_combo_int(settings, "PictureDecomb");
g_string_append_printf(str, "<b>Filters:</b><small>");
detel = ghb_settings_combo_int(settings, "PictureDetelecine");
}
filters = TRUE;
}
- if (decomb)
+ if (decomb_deint && decomb)
{
g_string_append_printf(str, " - Decomb");
if (decomb == 1)
}
filters = TRUE;
}
- else
+ else if (!decomb_deint)
{
gint deint = ghb_settings_combo_int(settings, "PictureDeinterlace");
if (deint)
<key>Folder</key>
<true/>
<key>PresetBuildNumber</key>
- <integer>2009073001</integer>
+ <integer>2009082501</integer>
<key>PresetName</key>
<string>Apple</string>
<key>Type</key>
<key>PictureDeblock</key>
<integer>0</integer>
<key>PictureDecomb</key>
+ <integer>2</integer>
+ <key>PictureDecombDeinterlace</key>
<integer>1</integer>
<key>PictureDeinterlace</key>
<integer>0</integer>
<key>PictureDenoise</key>
<integer>0</integer>
<key>PictureDetelecine</key>
- <integer>1</integer>
+ <integer>2</integer>
<key>PictureHeight</key>
<integer>0</integer>
<key>PictureKeepRatio</key>
<key>Folder</key>
<true/>
<key>PresetBuildNumber</key>
- <integer>2009073001</integer>
+ <integer>2009082501</integer>
<key>PresetName</key>
<string>Regular</string>
<key>Type</key>
<key>Folder</key>
<true/>
<key>PresetBuildNumber</key>
- <integer>2009073001</integer>
+ <integer>2009082501</integer>
<key>PresetName</key>
<string>Legacy</string>
<key>Type</key>
{"FileFormat", "Mp4LargeFile", "mp4", FALSE, TRUE},
{"FileFormat", "Mp4HttpOptimize", "mp4", FALSE, TRUE},
{"FileFormat", "Mp4iPodCompatible", "mp4", FALSE, TRUE},
- {"PictureDecomb", "PictureDeinterlace", "none", FALSE, FALSE},
- {"PictureDecomb", "PictureDeinterlaceCustom", "none", FALSE, TRUE},
+ {"PictureDecombDeinterlace", "PictureDeinterlace", "TRUE", TRUE, TRUE},
+ {"PictureDecombDeinterlace", "PictureDeinterlaceCustom", "TRUE", TRUE, TRUE},
+ {"PictureDecombDeinterlace", "PictureDeinterlaceLabel", "TRUE", TRUE, TRUE},
+ {"PictureDecombDeinterlace", "PictureDecomb", "FALSE", TRUE, TRUE},
+ {"PictureDecombDeinterlace", "PictureDecombCustom", "FALSE", TRUE, TRUE},
+ {"PictureDecombDeinterlace", "PictureDecombLabel", "FALSE", TRUE, TRUE},
{"PictureDeinterlace", "PictureDeinterlaceCustom", "custom", FALSE, TRUE},
{"PictureDenoise", "PictureDenoiseCustom", "custom", FALSE, TRUE},
{"PictureDecomb", "PictureDecombCustom", "custom", FALSE, TRUE},