summaryrefslogtreecommitdiffstats
path: root/gtk
diff options
context:
space:
mode:
Diffstat (limited to 'gtk')
-rw-r--r--gtk/src/audiohandler.c196
-rw-r--r--gtk/src/callbacks.c137
-rw-r--r--gtk/src/ghb.ui113
-rw-r--r--gtk/src/hb-backend.c495
-rw-r--r--gtk/src/hb-backend.h9
-rw-r--r--gtk/src/internal_defaults.xml153
-rw-r--r--gtk/src/main.c10
-rw-r--r--gtk/src/makedeps.c51
-rw-r--r--gtk/src/preset_xlat.c368
-rw-r--r--gtk/src/presets.c1292
-rw-r--r--gtk/src/presets.h3
-rw-r--r--gtk/src/queuehandler.c125
-rw-r--r--gtk/src/resource_data.h2589
-rw-r--r--gtk/src/resources.plist2575
-rw-r--r--gtk/src/settings.c73
-rw-r--r--gtk/src/settings.h8
-rw-r--r--gtk/src/standard_presets.xml1998
-rw-r--r--gtk/src/values.c11
-rw-r--r--gtk/src/widget_deps81
-rw-r--r--gtk/src/widget_reverse_deps212
-rw-r--r--gtk/src/x264handler.c14
21 files changed, 5801 insertions, 4712 deletions
diff --git a/gtk/src/audiohandler.c b/gtk/src/audiohandler.c
index 6c29a874f..eaf7f93e7 100644
--- a/gtk/src/audiohandler.c
+++ b/gtk/src/audiohandler.c
@@ -30,18 +30,18 @@ ghb_adjust_audio_rate_combos(signal_user_data_t *ud)
g_debug("ghb_adjust_audio_rate_combos ()");
titleindex = ghb_settings_combo_int(ud->settings, "title");
- widget = GHB_WIDGET(ud->builder, "audio_track");
+ widget = GHB_WIDGET(ud->builder, "AudioTrack");
gval = ghb_widget_value(widget);
- audioindex = ghb_lookup_combo_int("audio_track", gval);
+ audioindex = ghb_lookup_combo_int("AudioTrack", gval);
ghb_value_free(gval);
- widget = GHB_WIDGET(ud->builder, "audio_codec");
+ widget = GHB_WIDGET(ud->builder, "AudioEncoder");
gval = ghb_widget_value(widget);
- acodec = ghb_lookup_combo_int("audio_codec", gval);
+ acodec = ghb_lookup_combo_int("AudioEncoder", gval);
ghb_value_free(gval);
- widget = GHB_WIDGET(ud->builder, "audio_mix");
+ widget = GHB_WIDGET(ud->builder, "AudioMixdown");
gval = ghb_widget_value(widget);
- mix = ghb_lookup_combo_int("audio_mix", gval);
+ mix = ghb_lookup_combo_int("AudioMixdown", gval);
ghb_value_free(gval);
if (ghb_audio_is_passthru (acodec))
@@ -52,27 +52,27 @@ ghb_adjust_audio_rate_combos(signal_user_data_t *ud)
gint br = ainfo.bitrate / 1000;
// Set the values for bitrate and samplerate to the input rates
ghb_set_passthru_bitrate_opts (ud->builder, br);
- ghb_ui_update(ud, "audio_bitrate", ghb_int64_value(br));
- ghb_ui_update(ud, "audio_rate", ghb_int64_value(0));
- ghb_ui_update(ud, "audio_mix", ghb_int64_value(0));
+ ghb_ui_update(ud, "AudioBitrate", ghb_int64_value(br));
+ ghb_ui_update(ud, "AudioSamplerate", ghb_int64_value(0));
+ ghb_ui_update(ud, "AudioMixdown", ghb_int64_value(0));
}
else
{
- ghb_ui_update(ud, "audio_bitrate", ghb_int64_value(384));
- ghb_ui_update(ud, "audio_rate", ghb_int64_value(0));
- ghb_ui_update(ud, "audio_mix", ghb_int64_value(0));
+ ghb_ui_update(ud, "AudioBitrate", ghb_int64_value(384));
+ ghb_ui_update(ud, "AudioSamplerate", ghb_int64_value(0));
+ ghb_ui_update(ud, "AudioMixdown", ghb_int64_value(0));
}
}
else if (acodec == HB_ACODEC_FAAC && mix != HB_AMIXDOWN_6CH)
{
gint br;
- widget = GHB_WIDGET(ud->builder, "audio_bitrate");
+ widget = GHB_WIDGET(ud->builder, "AudioBitrate");
gval = ghb_widget_value(widget);
- br = ghb_lookup_combo_int("audio_bitrate", gval);
+ br = ghb_lookup_combo_int("AudioBitrate", gval);
ghb_value_free(gval);
if (br > 160)
- ghb_ui_update(ud, "audio_bitrate", ghb_int64_value(160));
+ ghb_ui_update(ud, "AudioBitrate", ghb_int64_value(160));
ghb_set_default_bitrate_opts (ud->builder, 160);
}
else
@@ -102,21 +102,21 @@ ghb_set_pref_audio(gint titleindex, signal_user_data_t *ud)
ghb_clear_audio_list(ud);
// Find "best" audio based on audio preferences
button = GHB_WIDGET (ud->builder, "audio_add");
- source_lang = ghb_settings_get_string(ud->settings, "source_audio_lang");
+ source_lang = ghb_settings_get_string(ud->settings, "SourceAudioLang");
- pref_audio = ghb_settings_get_value(ud->settings, "pref_audio_list");
+ pref_audio = ghb_settings_get_value(ud->settings, "AudioList");
list_count = 0;
count = ghb_array_len(pref_audio);
for (ii = 0; ii < count; ii++)
{
audio = ghb_array_get_nth(pref_audio, ii);
- acodec = ghb_settings_get_value(audio, "audio_codec");
- bitrate = ghb_settings_get_value(audio, "audio_bitrate");
- rate = ghb_settings_get_value(audio, "audio_rate");
- mix = ghb_settings_get_value(audio, "audio_mix");
- drc = ghb_settings_get_value(audio, "audio_drc");
- acodec_code = ghb_lookup_combo_int("audio_codec", acodec);
+ acodec = ghb_settings_get_value(audio, "AudioEncoder");
+ bitrate = ghb_settings_get_value(audio, "AudioBitrate");
+ rate = ghb_settings_get_value(audio, "AudioSamplerate");
+ mix = ghb_settings_get_value(audio, "AudioMixdown");
+ drc = ghb_settings_get_value(audio, "AudioTrackDRCSlider");
+ acodec_code = ghb_lookup_combo_int("AudioEncoder", acodec);
// If there are multiple audios using the same codec, then
// select sequential tracks for each. This hash keeps track
// of the last used track for each codec.
@@ -153,19 +153,19 @@ ghb_set_pref_audio(gint titleindex, signal_user_data_t *ud)
// Add to audio list
g_signal_emit_by_name(button, "clicked", ud);
list_count++;
- ghb_ui_update(ud, "audio_track", ghb_int64_value(track));
- ghb_ui_update(ud, "audio_codec", acodec);
+ ghb_ui_update(ud, "AudioTrack", ghb_int64_value(track));
+ ghb_ui_update(ud, "AudioEncoder", acodec);
if (!ghb_audio_is_passthru (acodec_code))
{
// This gets set autimatically if the codec is passthru
- ghb_ui_update(ud, "audio_bitrate", bitrate);
- ghb_ui_update(ud, "audio_rate", rate);
- mix_code = ghb_lookup_combo_int("audio_mix", mix);
+ ghb_ui_update(ud, "AudioBitrate", bitrate);
+ ghb_ui_update(ud, "AudioSamplerate", rate);
+ mix_code = ghb_lookup_combo_int("AudioMixdown", mix);
mix_code = ghb_get_best_mix(
titleindex, track, acodec_code, mix_code);
- ghb_ui_update(ud, "audio_mix", ghb_int64_value(mix_code));
+ ghb_ui_update(ud, "AudioMixdown", ghb_int64_value(mix_code));
}
- ghb_ui_update(ud, "audio_drc", drc);
+ ghb_ui_update(ud, "AudioTrackDRCSlider", drc);
index++;
g_hash_table_insert(track_indicies, &acodec_code, &index);
}
@@ -240,19 +240,19 @@ audio_list_refresh_selected(signal_user_data_t *ud)
return;
asettings = ghb_array_get_nth(audio_list, row);
- track = ghb_settings_combo_option(asettings, "audio_track");
- codec = ghb_settings_combo_option(asettings, "audio_codec");
- br = ghb_settings_combo_option(asettings, "audio_bitrate");
- sr = ghb_settings_combo_option(asettings, "audio_rate");
- mix = ghb_settings_combo_option(asettings, "audio_mix");
- drc = ghb_settings_get_string(asettings, "audio_drc");
+ track = ghb_settings_combo_option(asettings, "AudioTrack");
+ codec = ghb_settings_combo_option(asettings, "AudioEncoder");
+ br = ghb_settings_combo_option(asettings, "AudioBitrate");
+ sr = ghb_settings_combo_option(asettings, "AudioSamplerate");
+ mix = ghb_settings_combo_option(asettings, "AudioMixdown");
+ drc = ghb_settings_get_string(asettings, "AudioTrackDRCSlider");
- s_track = ghb_settings_get_string(asettings, "audio_track");
- s_codec = ghb_settings_get_string(asettings, "audio_codec");
- s_br = ghb_settings_get_string(asettings, "audio_bitrate");
- s_sr = ghb_settings_get_string(asettings, "audio_rate");
- s_mix = ghb_settings_get_string(asettings, "audio_mix");
- s_drc = ghb_settings_get_double(asettings, "audio_drc");
+ s_track = ghb_settings_get_string(asettings, "AudioTrack");
+ s_codec = ghb_settings_get_string(asettings, "AudioEncoder");
+ s_br = ghb_settings_get_string(asettings, "AudioBitrate");
+ s_sr = ghb_settings_get_string(asettings, "AudioSamplerate");
+ s_mix = ghb_settings_get_string(asettings, "AudioMixdown");
+ s_drc = ghb_settings_get_double(asettings, "AudioTrackDRCSlider");
gtk_list_store_set(GTK_LIST_STORE(store), &iter,
// These are displayed in list
@@ -288,7 +288,7 @@ audio_codec_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
g_debug("audio_codec_changed_cb ()");
gval = ghb_widget_value(widget);
- acodec_code = ghb_lookup_combo_int("audio_codec", gval);
+ acodec_code = ghb_lookup_combo_int("AudioEncoder", gval);
ghb_value_free(gval);
if (ghb_audio_is_passthru (prev_acodec) &&
!ghb_audio_is_passthru (acodec_code))
@@ -299,14 +299,14 @@ audio_codec_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
gint track;
titleindex = ghb_settings_combo_int(ud->settings, "title");
- track = ghb_settings_combo_int(ud->settings, "audio_track");
+ track = ghb_settings_combo_int(ud->settings, "AudioTrack");
- ghb_ui_update(ud, "audio_bitrate", ghb_string_value("160"));
- ghb_ui_update(ud, "audio_rate", ghb_string_value("source"));
- mix_code = ghb_lookup_combo_int("audio_mix", ghb_string_value("dpl2"));
+ ghb_ui_update(ud, "AudioBitrate", ghb_string_value("160"));
+ ghb_ui_update(ud, "AudioSamplerate", ghb_string_value("source"));
+ mix_code = ghb_lookup_combo_int("AudioMixdown", ghb_string_value("dpl2"));
mix_code = ghb_get_best_mix( titleindex, track, acodec_code, mix_code);
- ghb_ui_update(ud, "audio_mix", ghb_int64_value(mix_code));
- ghb_ui_update(ud, "audio_drc", ghb_double_value(1.0));
+ ghb_ui_update(ud, "AudioMixdown", ghb_int64_value(mix_code));
+ ghb_ui_update(ud, "AudioTrackDRCSlider", ghb_double_value(1.0));
}
ghb_adjust_audio_rate_combos(ud);
ghb_grey_combo_options (ud->builder);
@@ -325,10 +325,10 @@ audio_codec_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
gchar *container;
- container = ghb_settings_get_string(ud->settings, "container");
+ container = ghb_settings_get_string(ud->settings, "FileFormat");
if (strcmp(container, "mp4") == 0)
{
- ghb_ui_update(ud, "container", ghb_string_value("m4v"));
+ ghb_ui_update(ud, "FileFormat", ghb_string_value("m4v"));
}
g_free(container);
}
@@ -350,8 +350,8 @@ audio_track_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
ghb_widget_to_setting(asettings, widget);
audio_list_refresh_selected(ud);
- track = ghb_settings_combo_option(asettings, "audio_track");
- ghb_settings_set_string(asettings, "audio_track_long", track);
+ track = ghb_settings_combo_option(asettings, "AudioTrack");
+ ghb_settings_set_string(asettings, "AudioTrackDescription", track);
}
}
@@ -436,19 +436,19 @@ add_to_audio_list(signal_user_data_t *ud, GValue *settings)
selection = gtk_tree_view_get_selection (treeview);
store = GTK_LIST_STORE(gtk_tree_view_get_model(treeview));
- track = ghb_settings_combo_option(settings, "audio_track");
- codec = ghb_settings_combo_option(settings, "audio_codec");
- br = ghb_settings_combo_option(settings, "audio_bitrate");
- sr = ghb_settings_combo_option(settings, "audio_rate");
- mix = ghb_settings_combo_option(settings, "audio_mix");
- drc = ghb_settings_get_string(settings, "audio_drc");
+ track = ghb_settings_combo_option(settings, "AudioTrack");
+ codec = ghb_settings_combo_option(settings, "AudioEncoder");
+ br = ghb_settings_combo_option(settings, "AudioBitrate");
+ sr = ghb_settings_combo_option(settings, "AudioSamplerate");
+ mix = ghb_settings_combo_option(settings, "AudioMixdown");
+ drc = ghb_settings_get_string(settings, "AudioTrackDRCSlider");
- s_track = ghb_settings_get_string(settings, "audio_track");
- s_codec = ghb_settings_get_string(settings, "audio_codec");
- s_br = ghb_settings_get_string(settings, "audio_bitrate");
- s_sr = ghb_settings_get_string(settings, "audio_rate");
- s_mix = ghb_settings_get_string(settings, "audio_mix");
- s_drc = ghb_settings_get_double(settings, "audio_drc");
+ s_track = ghb_settings_get_string(settings, "AudioTrack");
+ s_codec = ghb_settings_get_string(settings, "AudioEncoder");
+ s_br = ghb_settings_get_string(settings, "AudioBitrate");
+ s_sr = ghb_settings_get_string(settings, "AudioSamplerate");
+ s_mix = ghb_settings_get_string(settings, "AudioMixdown");
+ s_drc = ghb_settings_get_double(settings, "AudioTrackDRCSlider");
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter,
@@ -497,12 +497,12 @@ audio_list_selection_changed_cb(GtkTreeSelection *selection, signal_user_data_t
10, &mix,
11, &drc,
-1);
- ghb_ui_update(ud, "audio_track", ghb_string_value(track));
- ghb_ui_update(ud, "audio_codec", ghb_string_value(codec));
- ghb_ui_update(ud, "audio_bitrate", ghb_string_value(bitrate));
- ghb_ui_update(ud, "audio_rate", ghb_string_value(sample_rate));
- ghb_ui_update(ud, "audio_mix", ghb_string_value(mix));
- ghb_ui_update(ud, "audio_drc", ghb_double_value(drc));
+ ghb_ui_update(ud, "AudioTrack", ghb_string_value(track));
+ ghb_ui_update(ud, "AudioEncoder", ghb_string_value(codec));
+ ghb_ui_update(ud, "AudioBitrate", ghb_string_value(bitrate));
+ ghb_ui_update(ud, "AudioSamplerate", ghb_string_value(sample_rate));
+ ghb_ui_update(ud, "AudioMixdown", ghb_string_value(mix));
+ ghb_ui_update(ud, "AudioTrackDRCSlider", ghb_double_value(drc));
widget = GHB_WIDGET (ud->builder, "audio_remove");
gtk_widget_set_sensitive(widget, TRUE);
//widget = GHB_WIDGET (ud->builder, "audio_update");
@@ -530,20 +530,20 @@ audio_add_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
g_debug("audio_add_clicked_cb ()");
asettings = ghb_dict_value_new();
// Only allow up to 8 audio entries
- widget = GHB_WIDGET(ud->builder, "audio_track");
- ghb_settings_take_value(asettings, "audio_track", ghb_widget_value(widget));
- widget = GHB_WIDGET(ud->builder, "audio_codec");
- ghb_settings_take_value(asettings, "audio_codec", ghb_widget_value(widget));
- widget = GHB_WIDGET(ud->builder, "audio_bitrate");
- ghb_settings_take_value(asettings, "audio_bitrate", ghb_widget_value(widget));
- widget = GHB_WIDGET(ud->builder, "audio_rate");
- ghb_settings_take_value(asettings, "audio_rate", ghb_widget_value(widget));
- widget = GHB_WIDGET(ud->builder, "audio_mix");
- ghb_settings_take_value(asettings, "audio_mix", ghb_widget_value(widget));
- widget = GHB_WIDGET(ud->builder, "audio_drc");
- ghb_settings_take_value(asettings, "audio_drc", ghb_widget_value(widget));
- track = ghb_settings_combo_option(asettings, "audio_track");
- ghb_settings_set_string(asettings, "audio_track_long", track);
+ widget = GHB_WIDGET(ud->builder, "AudioTrack");
+ ghb_settings_take_value(asettings, "AudioTrack", ghb_widget_value(widget));
+ widget = GHB_WIDGET(ud->builder, "AudioEncoder");
+ ghb_settings_take_value(asettings, "AudioEncoder", ghb_widget_value(widget));
+ widget = GHB_WIDGET(ud->builder, "AudioBitrate");
+ ghb_settings_take_value(asettings, "AudioBitrate", ghb_widget_value(widget));
+ widget = GHB_WIDGET(ud->builder, "AudioSamplerate");
+ ghb_settings_take_value(asettings, "AudioSamplerate", ghb_widget_value(widget));
+ widget = GHB_WIDGET(ud->builder, "AudioMixdown");
+ ghb_settings_take_value(asettings, "AudioMixdown", ghb_widget_value(widget));
+ widget = GHB_WIDGET(ud->builder, "AudioTrackDRCSlider");
+ ghb_settings_take_value(asettings, "AudioTrackDRCSlider", ghb_widget_value(widget));
+ track = ghb_settings_combo_option(asettings, "AudioTrack");
+ ghb_settings_set_string(asettings, "AudioTrackDescription", track);
audio_list = ghb_settings_get_value(ud->settings, "audio_list");
if (audio_list == NULL)
@@ -630,28 +630,28 @@ ghb_set_audio(signal_user_data_t *ud, GValue *settings)
for (ii = 0; ii < count; ii++)
{
audio = ghb_array_get_nth(alist, ii);
- track = ghb_settings_get_value(audio, "audio_track");
- acodec = ghb_settings_get_value(audio, "audio_codec");
- bitrate = ghb_settings_get_value(audio, "audio_bitrate");
- rate = ghb_settings_get_value(audio, "audio_rate");
- mix = ghb_settings_get_value(audio, "audio_mix");
- drc = ghb_settings_get_value(audio, "audio_drc");
- acodec_code = ghb_lookup_combo_int("audio_codec", acodec);
+ track = ghb_settings_get_value(audio, "AudioTrack");
+ acodec = ghb_settings_get_value(audio, "AudioEncoder");
+ bitrate = ghb_settings_get_value(audio, "AudioBitrate");
+ rate = ghb_settings_get_value(audio, "AudioSamplerate");
+ mix = ghb_settings_get_value(audio, "AudioMixdown");
+ drc = ghb_settings_get_value(audio, "AudioTrackDRCSlider");
+ acodec_code = ghb_lookup_combo_int("AudioEncoder", acodec);
if (acodec_code != 0)
{
// Add to audio list
g_signal_emit_by_name(button, "clicked", ud);
- ghb_ui_update(ud, "audio_track", track);
- ghb_ui_update(ud, "audio_codec", acodec);
+ ghb_ui_update(ud, "AudioTrack", track);
+ ghb_ui_update(ud, "AudioEncoder", acodec);
if (!ghb_audio_is_passthru (acodec_code))
{
// This gets set autimatically if the codec is passthru
- ghb_ui_update(ud, "audio_bitrate", bitrate);
- ghb_ui_update(ud, "audio_rate", rate);
- ghb_ui_update(ud, "audio_mix", mix);
+ ghb_ui_update(ud, "AudioBitrate", bitrate);
+ ghb_ui_update(ud, "AudioSamplerate", rate);
+ ghb_ui_update(ud, "AudioMixdown", mix);
}
- ghb_ui_update(ud, "audio_drc", drc);
+ ghb_ui_update(ud, "AudioTrackDRCSlider", drc);
}
}
}
diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c
index 516f33aab..c0a7e6b18 100644
--- a/gtk/src/callbacks.c
+++ b/gtk/src/callbacks.c
@@ -273,7 +273,7 @@ set_destination(signal_user_data_t *ud)
gchar *dir, *new_name;
filename = ghb_settings_get_string(ud->settings, "destination");
- extension = ghb_settings_get_string(ud->settings, "container");
+ extension = ghb_settings_get_string(ud->settings, "FileFormat");
dir = g_path_get_dirname (filename);
vol_name = ghb_settings_get_string(ud->settings, "volume_label");
if (ghb_settings_get_boolean(ud->settings, "chapters_in_destination"))
@@ -695,7 +695,7 @@ update_destination_extension(signal_user_data_t *ud)
GtkEntry *entry;
g_debug("update_destination_extension ()");
- extension = ghb_settings_get_string(ud->settings, "container");
+ extension = ghb_settings_get_string(ud->settings, "FileFormat");
entry = GTK_ENTRY(GHB_WIDGET(ud->builder, "destination"));
filename = g_strdup(gtk_entry_get_text(entry));
for (ii = 0; containers[ii] != NULL; ii++)
@@ -875,10 +875,10 @@ container_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
gchar *container;
- container = ghb_settings_get_string(ud->settings, "container");
+ container = ghb_settings_get_string(ud->settings, "FileFormat");
if (strcmp(container, "mp4") == 0)
{
- ghb_ui_update(ud, "container", ghb_string_value("m4v"));
+ ghb_ui_update(ud, "FileFormat", ghb_string_value("m4v"));
}
g_free(container);
}
@@ -948,7 +948,7 @@ show_title_info(signal_user_data_t *ud, ghb_title_info_t *tinfo)
ghb_int64_value(tinfo->width - tinfo->crop[2] - tinfo->crop[3]));
// If anamorphic or keep_aspect, the hight will be automatically calculated
gboolean keep_aspect, anamorphic;
- keep_aspect = ghb_settings_get_boolean(ud->settings, "keep_aspect");
+ keep_aspect = ghb_settings_get_boolean(ud->settings, "PictureKeepRatio");
anamorphic = ghb_settings_get_boolean(ud->settings, "anamorphic");
if (!(keep_aspect || anamorphic))
{
@@ -960,29 +960,34 @@ show_title_info(signal_user_data_t *ud, ghb_title_info_t *tinfo)
// you pass it a cropped width or height == 0.
gint bound;
bound = tinfo->height / 2 - 2;
- widget = GHB_WIDGET (ud->builder, "crop_top");
+ widget = GHB_WIDGET (ud->builder, "PictureTopCrop");
gtk_spin_button_set_range (GTK_SPIN_BUTTON(widget), 0, bound);
- widget = GHB_WIDGET (ud->builder, "crop_bottom");
+ widget = GHB_WIDGET (ud->builder, "PictureBottomCrop");
gtk_spin_button_set_range (GTK_SPIN_BUTTON(widget), 0, bound);
bound = tinfo->width / 2 - 2;
- widget = GHB_WIDGET (ud->builder, "crop_left");
+ widget = GHB_WIDGET (ud->builder, "PictureLeftCrop");
gtk_spin_button_set_range (GTK_SPIN_BUTTON(widget), 0, bound);
- widget = GHB_WIDGET (ud->builder, "crop_right");
+ widget = GHB_WIDGET (ud->builder, "PictureRightCrop");
gtk_spin_button_set_range (GTK_SPIN_BUTTON(widget), 0, bound);
- if (ghb_settings_get_boolean(ud->settings, "autocrop"))
- {
- ghb_ui_update(ud, "crop_top", ghb_int64_value(tinfo->crop[0]));
- ghb_ui_update(ud, "crop_bottom", ghb_int64_value(tinfo->crop[1]));
- ghb_ui_update(ud, "crop_left", ghb_int64_value(tinfo->crop[2]));
- ghb_ui_update(ud, "crop_right", ghb_int64_value(tinfo->crop[3]));
- }
- else
- {
- ghb_ui_update(ud, "crop_top", ghb_int64_value(0));
- ghb_ui_update(ud, "crop_bottom", ghb_int64_value(0));
- ghb_ui_update(ud, "crop_left", ghb_int64_value(0));
- ghb_ui_update(ud, "crop_right", ghb_int64_value(0));
- }
+ if (ghb_settings_get_boolean(ud->settings, "PictureAutoCrop"))
+ {
+ ghb_ui_update(ud, "PictureTopCrop", ghb_int64_value(tinfo->crop[0]));
+ ghb_ui_update(ud, "PictureBottomCrop", ghb_int64_value(tinfo->crop[1]));
+ ghb_ui_update(ud, "PictureLeftCrop", ghb_int64_value(tinfo->crop[2]));
+ ghb_ui_update(ud, "PictureRightCrop", ghb_int64_value(tinfo->crop[3]));
+ }
+ gint width, height, crop[4];
+ crop[0] = ghb_settings_get_int(ud->settings, "PictureTopCrop");
+ crop[1] = ghb_settings_get_int(ud->settings, "PictureBottomCrop");
+ crop[2] = ghb_settings_get_int(ud->settings, "PictureLeftCrop");
+ crop[3] = ghb_settings_get_int(ud->settings, "PictureRightCrop");
+ width = tinfo->width - crop[2] - crop[3];
+ height = tinfo->height - crop[0] - crop[1];
+ widget = GHB_WIDGET (ud->builder, "crop_dimensions");
+ text = g_strdup_printf ("%d x %d", width, height);
+ gtk_label_set_text (GTK_LABEL(widget), text);
+ g_free(text);
+
g_debug("setting max end chapter %d", tinfo->num_chapters);
widget = GHB_WIDGET (ud->builder, "end_chapter");
gtk_spin_button_set_range (GTK_SPIN_BUTTON(widget), 1, tinfo->num_chapters);
@@ -1045,18 +1050,16 @@ title_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
ghb_title_info_t tinfo;
gint titleindex;
- GValue *preset;
g_debug("title_changed_cb ()");
ghb_widget_to_setting(ud->settings, widget);
ghb_check_dependency(ud, widget);
titleindex = ghb_settings_combo_int(ud->settings, "title");
- ghb_update_ui_combo_box (ud->builder, "audio_track", titleindex, FALSE);
- ghb_update_ui_combo_box (ud->builder, "subtitle_lang", titleindex, FALSE);
+ ghb_update_ui_combo_box (ud->builder, "AudioTrack", titleindex, FALSE);
+ ghb_update_ui_combo_box (ud->builder, "Subtitles", titleindex, FALSE);
- preset = ghb_settings_get_value (ud->settings, "preset");
- ghb_update_from_preset(ud, preset, "subtitle_lang");
+ ghb_update_from_preset(ud, "Subtitles");
if (ghb_get_title_info (&tinfo, titleindex))
{
show_title_info(ud, &tinfo);
@@ -1067,7 +1070,7 @@ title_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
if (ghb_settings_get_boolean(ud->settings, "vquality_type_target"))
{
gint bitrate = ghb_calculate_target_bitrate (ud->settings, titleindex);
- ghb_ui_update(ud, "video_bitrate", ghb_int64_value(bitrate));
+ ghb_ui_update(ud, "VideoAvgBitrate", ghb_int64_value(bitrate));
}
// Unfortunately, there is no way to query how many frames were
@@ -1127,7 +1130,7 @@ deint_tweak_focus_out_cb(GtkWidget *widget, GdkEventFocus *event,
signal_user_data_t *ud)
{
g_debug("deint_tweak_focus_out_cb ()");
- validate_filter_widget(ud, "tweak_deinterlace");
+ validate_filter_widget(ud, "tweak_PictureDeinterlace");
return FALSE;
}
@@ -1136,7 +1139,7 @@ denoise_tweak_focus_out_cb(GtkWidget *widget, GdkEventFocus *event,
signal_user_data_t *ud)
{
g_debug("denoise_tweak_focus_out_cb ()");
- validate_filter_widget(ud, "tweak_noise");
+ validate_filter_widget(ud, "tweak_PictureDenoise");
return FALSE;
}
@@ -1153,14 +1156,23 @@ http_opt_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
void
vcodec_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
- gint vqmin, vqmax;
+ gdouble vqmin, vqmax, step, page;
+ gint digits;
+ gint vcodec;
ghb_widget_to_setting(ud->settings, widget);
ghb_check_dependency(ud, widget);
ghb_clear_presets_selection(ud);
- ghb_vquality_range(ud, &vqmin, &vqmax);
- GtkWidget *qp = GHB_WIDGET(ud->builder, "video_quality");
+ ghb_vquality_range(ud, &vqmin, &vqmax, &step, &page, &digits);
+ GtkWidget *qp = GHB_WIDGET(ud->builder, "VideoQualitySlider");
gtk_range_set_range (GTK_RANGE(qp), vqmin, vqmax);
+ gtk_range_set_increments (GTK_RANGE(qp), step, page);
+ gtk_scale_set_digits(GTK_SCALE(qp), digits);
+ vcodec = ghb_settings_combo_int(ud->settings, "VideoEncoder");
+ if (vcodec != HB_VCODEC_X264 && vcodec != HB_VCODEC_FFMPEG)
+ {
+ ghb_ui_update(ud, "directqp", ghb_boolean_value(FALSE));
+ }
}
void
@@ -1176,7 +1188,7 @@ target_size_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
gint titleindex;
titleindex = ghb_settings_combo_int(ud->settings, "title");
gint bitrate = ghb_calculate_target_bitrate (ud->settings, titleindex);
- ghb_ui_update(ud, "video_bitrate", ghb_int64_value(bitrate));
+ ghb_ui_update(ud, "VideoAvgBitrate", ghb_int64_value(bitrate));
}
}
@@ -1263,10 +1275,10 @@ crop_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
ghb_check_dependency(ud, widget);
ghb_set_scale (ud, GHB_SCALE_KEEP_NONE);
- crop[0] = ghb_settings_get_int(ud->settings, "crop_top");
- crop[1] = ghb_settings_get_int(ud->settings, "crop_bottom");
- crop[2] = ghb_settings_get_int(ud->settings, "crop_left");
- crop[3] = ghb_settings_get_int(ud->settings, "crop_right");
+ crop[0] = ghb_settings_get_int(ud->settings, "PictureTopCrop");
+ crop[1] = ghb_settings_get_int(ud->settings, "PictureBottomCrop");
+ crop[2] = ghb_settings_get_int(ud->settings, "PictureLeftCrop");
+ crop[3] = ghb_settings_get_int(ud->settings, "PictureRightCrop");
titleindex = ghb_settings_combo_int(ud->settings, "title");
if (ghb_get_title_info (&tinfo, titleindex))
{
@@ -1300,7 +1312,7 @@ scale_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
gchar *text;
- text = ghb_settings_get_boolean(ud->settings, "autocrop") ? "On" : "Off";
+ text = ghb_settings_get_boolean(ud->settings, "PictureAutoCrop") ? "On" : "Off";
widget = GHB_WIDGET (ud->builder, "crop_auto");
gtk_label_set_text (GTK_LABEL(widget), text);
text = ghb_settings_get_boolean(ud->settings, "autoscale") ? "On" : "Off";
@@ -2232,30 +2244,30 @@ tweaks_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
ghb_pref_save(ud->settings, name);
gboolean tweaks = ghb_settings_get_boolean(ud->settings, "allow_tweaks");
- widget = GHB_WIDGET(ud->builder, "deinterlace");
+ widget = GHB_WIDGET(ud->builder, "PictureDeinterlace");
tweaks ? gtk_widget_hide(widget) : gtk_widget_show(widget);
- widget = GHB_WIDGET(ud->builder, "tweak_deinterlace");
+ widget = GHB_WIDGET(ud->builder, "tweak_PictureDeinterlace");
!tweaks ? gtk_widget_hide(widget) : gtk_widget_show(widget);
- widget = GHB_WIDGET(ud->builder, "denoise");
+ widget = GHB_WIDGET(ud->builder, "PictureDenoise");
tweaks ? gtk_widget_hide(widget) : gtk_widget_show(widget);
- widget = GHB_WIDGET(ud->builder, "tweak_denoise");
+ widget = GHB_WIDGET(ud->builder, "tweak_PictureDenoise");
!tweaks ? gtk_widget_hide(widget) : gtk_widget_show(widget);
if (tweaks)
{
const GValue *value;
- value = ghb_settings_get_value(ud->settings, "deinterlace");
- ghb_ui_update(ud, "tweak_deinterlace", value);
- value = ghb_settings_get_value(ud->settings, "denoise");
- ghb_ui_update(ud, "tweak_denoise", value);
+ value = ghb_settings_get_value(ud->settings, "PictureDeinterlace");
+ ghb_ui_update(ud, "tweak_PictureDeinterlace", value);
+ value = ghb_settings_get_value(ud->settings, "PictureDenoise");
+ ghb_ui_update(ud, "tweak_PictureDenoise", value);
}
else
{
const GValue *value;
- value = ghb_settings_get_value(ud->settings, "tweak_deinterlace");
- ghb_ui_update(ud, "deinterlace", value);
- value = ghb_settings_get_value(ud->settings, "tweak_denoise");
- ghb_ui_update(ud, "denoise", value);
+ value = ghb_settings_get_value(ud->settings, "tweak_PictureDeinterlace");
+ ghb_ui_update(ud, "PictureDeinterlace", value);
+ value = ghb_settings_get_value(ud->settings, "tweak_PictureDenoise");
+ ghb_ui_update(ud, "PictureDenoise", value);
}
}
@@ -2573,3 +2585,24 @@ format_deblock_cb(GtkScale *scale, gdouble val, signal_user_data_t *ud)
return g_strdup_printf("%d", (gint)val);
}
}
+
+gchar*
+format_vquality_cb(GtkScale *scale, gdouble val, signal_user_data_t *ud)
+{
+ if (ghb_settings_get_boolean(ud->settings, "directqp"))
+ {
+ gint vcodec = ghb_settings_combo_int(ud->settings, "VideoEncoder");
+ // Only x264 and ffmpeg currently support direct qp/crf entry
+ if (vcodec != HB_VCODEC_X264 && vcodec != HB_VCODEC_FFMPEG)
+ {
+ val *= 100;
+ return g_strdup_printf("%.1f", val);
+ }
+ return g_strdup_printf("%d", (gint)val);
+ }
+ else
+ {
+ val *= 100;
+ return g_strdup_printf("%.1f", val);
+ }
+}
diff --git a/gtk/src/ghb.ui b/gtk/src/ghb.ui
index 3f523bcc2..d1b048601 100644
--- a/gtk/src/ghb.ui
+++ b/gtk/src/ghb.ui
@@ -114,12 +114,12 @@
<property name="value">0</property>
</object>
<object class="GtkAdjustment" id="adjustment5">
- <property name="upper">100</property>
+ <property name="upper">1</property>
<property name="lower">0</property>
- <property name="page_increment">10</property>
- <property name="step_increment">1</property>
+ <property name="page_increment">1</property>
+ <property name="step_increment">0.1</property>
<property name="page_size">0</property>
- <property name="value">63</property>
+ <property name="value">0.63</property>
</object>
<object class="GtkAdjustment" id="adjustment6">
<property name="upper">4</property>
@@ -796,7 +796,7 @@
</packing>
</child>
<child>
- <object class="GtkComboBox" id="container">
+ <object class="GtkComboBox" id="FileFormat">
<property name="visible">True</property>
<property name="tooltip-text" translatable="yes">Output file container type</property>
<signal handler="container_changed_cb" name="changed"/>
@@ -813,7 +813,7 @@
<property name="xalign">0.10000000149011612</property>
<property name="xscale">0</property>
<child>
- <object class="GtkCheckButton" id="ipod_file">
+ <object class="GtkCheckButton" id="Mp4iPodCompatible">
<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>
@@ -829,7 +829,7 @@
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="http_optimize_mp4">
+ <object class="GtkCheckButton" id="Mp4HttpOptimize">
<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>
@@ -843,7 +843,7 @@
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="large_mp4">
+ <object class="GtkCheckButton" id="Mp4LargeFile">
<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>
@@ -1302,7 +1302,7 @@
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
- <object class="GtkCheckButton" id="grayscale">
+ <object class="GtkCheckButton" id="VideoGrayScale">
<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>
@@ -1315,7 +1315,7 @@
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="detelecine">
+ <object class="GtkCheckButton" id="PictureDetelecine">
<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>
@@ -1330,7 +1330,7 @@
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="decomb">
+ <object class="GtkCheckButton" id="PictureDecomb">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">De-Comb</property>
@@ -1364,7 +1364,7 @@
<property name="xalign">0</property>
<property name="xscale">0.55</property>
<child>
- <object class="GtkHScale" id="deblock">
+ <object class="GtkHScale" id="PictureDeblock">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip-text" translatable="yes">This is a filter that gets applied before encoding. If the source looks blocky before encoding, you may want to use this.</property>
@@ -1404,7 +1404,7 @@
</packing>
</child>
<child>
- <object class="GtkComboBox" id="deinterlace">
+ <object class="GtkComboBox" id="PictureDeinterlace">
<property name="width_request">100</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
@@ -1417,7 +1417,7 @@
</packing>
</child>
<child>
- <object class="GtkComboBoxEntry" id="tweak_deinterlace">
+ <object class="GtkComboBoxEntry" id="tweak_PictureDeinterlace">
<property name="visible">False</property>
<signal handler="setting_widget_changed_cb" name="changed"/>
<child internal-child="entry">
@@ -1459,7 +1459,7 @@
</packing>
</child>
<child>
- <object class="GtkComboBox" id="denoise">
+ <object class="GtkComboBox" id="PictureDenoise">
<property name="width_request">100</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
@@ -1472,7 +1472,7 @@
</packing>
</child>
<child>
- <object class="GtkComboBoxEntry" id="tweak_denoise">
+ <object class="GtkComboBoxEntry" id="tweak_PictureDenoise">
<property name="visible">False</property>
<signal handler="setting_widget_changed_cb" name="changed"/>
<child internal-child="entry">
@@ -1645,7 +1645,7 @@
<property name="xalign">0</property>
<property name="xscale">0</property>
<child>
- <object class="GtkComboBox" id="video_codec">
+ <object class="GtkComboBox" id="VideoEncoder">
<property name="visible">True</property>
<signal handler="vcodec_changed_cb" name="changed"/>
</object>
@@ -1684,7 +1684,7 @@
<property name="xalign">0</property>
<property name="xscale">0</property>
<child>
- <object class="GtkComboBox" id="framerate">
+ <object class="GtkComboBox" id="VideoFramerate">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<signal handler="setting_widget_changed_cb" name="changed"/>
@@ -1703,7 +1703,7 @@
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="two_pass">
+ <object class="GtkCheckButton" id="VideoTwoPass">
<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>
@@ -1721,7 +1721,7 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="xscale">0.23999999463558197</property>
<child>
- <object class="GtkCheckButton" id="turbo">
+ <object class="GtkCheckButton" id="VideoTurboTwoPass">
<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>
@@ -1811,7 +1811,7 @@
<property name="xalign">0.11999999731779099</property>
<property name="xscale">0.10000000149011612</property>
<child>
- <object class="GtkSpinButton" id="video_bitrate">
+ <object class="GtkSpinButton" id="VideoAvgBitrate">
<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>
@@ -1851,7 +1851,7 @@
<property name="xalign">0.11999999731779099</property>
<property name="xscale">0.10000000149011612</property>
<child>
- <object class="GtkSpinButton" id="video_target_size">
+ <object class="GtkSpinButton" id="VideoTargetSize">
<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>
@@ -1889,14 +1889,15 @@
</packing>
</child>
<child>
- <object class="GtkHScale" id="video_quality">
+ <object class="GtkHScale" id="VideoQualitySlider">
<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="adjustment">adjustment5</property>
- <property name="digits">0</property>
+ <property name="digits">3</property>
<property name="value_pos">GTK_POS_RIGHT</property>
<signal handler="setting_widget_changed_cb" name="value_changed"/>
+ <signal handler="format_vquality_cb" name="format-value"/>
</object>
<packing>
<property name="position">1</property>
@@ -2056,7 +2057,7 @@
</object>
</child>
<child>
- <object class="GtkHScale" id="audio_drc">
+ <object class="GtkHScale" id="AudioTrackDRCSlider">
<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>
@@ -2089,7 +2090,7 @@
<property name="n_rows">2</property>
<property name="n_columns">5</property>
<child>
- <object class="GtkComboBox" id="audio_track">
+ <object class="GtkComboBox" id="AudioTrack">
<property name="width_request">215</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
@@ -2101,7 +2102,7 @@
</packing>
</child>
<child>
- <object class="GtkComboBox" id="audio_codec">
+ <object class="GtkComboBox" id="AudioEncoder">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<signal handler="audio_codec_changed_cb" name="changed"/>
@@ -2115,7 +2116,7 @@
</packing>
</child>
<child>
- <object class="GtkComboBox" id="audio_rate">
+ <object class="GtkComboBox" id="AudioSamplerate">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<signal handler="audio_widget_changed_cb" name="changed"/>
@@ -2191,7 +2192,7 @@
</packing>
</child>
<child>
- <object class="GtkComboBox" id="audio_mix">
+ <object class="GtkComboBox" id="AudioMixdown">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<signal handler="audio_mix_changed_cb" name="changed"/>
@@ -2205,7 +2206,7 @@
</packing>
</child>
<child>
- <object class="GtkComboBox" id="audio_bitrate">
+ <object class="GtkComboBox" id="AudioBitrate">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<signal handler="audio_widget_changed_cb" name="changed"/>
@@ -2274,7 +2275,7 @@
<property name="spacing">5</property>
<child>
- <object class="GtkComboBox" id="source_audio_lang">
+ <object class="GtkComboBox" id="SourceAudioLang">
<property name="width_request">150</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
@@ -2316,7 +2317,7 @@
<property name="spacing">5</property>
<child>
- <object class="GtkComboBox" id="subtitle_lang">
+ <object class="GtkComboBox" id="Subtitles">
<property name="width_request">150</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
@@ -2324,7 +2325,7 @@
</object>
</child>
<child>
- <object class="GtkCheckButton" id="forced_subtitles">
+ <object class="GtkCheckButton" id="SubtitlesForced">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_tooltip">True</property>
@@ -2638,7 +2639,7 @@
<property name="left_padding">12</property>
<property name="right_padding">2</property>
<child>
- <object class="GtkTextView" id="x264_options">
+ <object class="GtkTextView" id="x264Option">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip-text" translatable="yes">Your selected options will appear here.
@@ -3085,7 +3086,7 @@ no-fast-pskip=0:no-dct-decimate=0:cabac=1</property>
<object class="GtkHBox" id="hbox30">
<property name="visible">True</property>
<child>
- <object class="GtkCheckButton" id="chapter_markers">
+ <object class="GtkCheckButton" id="ChapterMarkers">
<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>
@@ -3420,22 +3421,6 @@ auto-generated destination name.</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="linear_vquality">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tooltip_text">x264 uses a different scale for video quality than
-other codecs. This adjusts the scale so that
-similar values give similar quality across all the
-video codecs.</property>
- <property name="label" translatable="yes">Adjust x264 video quality scale</property>
- <property name="draw_indicator">True</property>
- <signal name="toggled" handler="pref_changed_cb"/>
- </object>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
<object class="GtkCheckButton" id="noscale">
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -3449,7 +3434,7 @@ the required multiple.</property>
<signal name="toggled" handler="pref_changed_cb"/>
</object>
<packing>
- <property name="position">3</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
@@ -3468,7 +3453,7 @@ this setting.</property>
<signal name="toggled" handler="vcodec_changed_cb"/>
</object>
<packing>
- <property name="position">4</property>
+ <property name="position">3</property>
</packing>
</child>
<child>
@@ -3479,7 +3464,7 @@ this setting.</property>
<signal name="toggled" handler="tweaks_changed_cb"/>
</object>
<packing>
- <property name="position">5</property>
+ <property name="position">4</property>
</packing>
</child>
<child>
@@ -3490,7 +3475,7 @@ this setting.</property>
<signal name="toggled" handler="hbfd_feature_changed_cb"/>
</object>
<packing>
- <property name="position">6</property>
+ <property name="position">5</property>
</packing>
</child>
</object>
@@ -3662,7 +3647,7 @@ this setting.</property>
</packing>
</child>
<child>
- <object class="GtkEntry" id="preset_name">
+ <object class="GtkEntry" id="PresetName">
<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>
@@ -3696,7 +3681,7 @@ this setting.</property>
<property name="left_padding">12</property>
<property name="right_padding">4</property>
<child>
- <object class="GtkTextView" id="preset_description">
+ <object class="GtkTextView" id="PresetDescription">
<property name="height_request">60</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -4147,7 +4132,7 @@ this setting.</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="crop_left">
+ <object class="GtkSpinButton" id="PictureLeftCrop">
<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>
@@ -4177,7 +4162,7 @@ this setting.</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="crop_top">
+ <object class="GtkSpinButton" id="PictureTopCrop">
<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>
@@ -4193,7 +4178,7 @@ this setting.</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="crop_bottom">
+ <object class="GtkSpinButton" id="PictureBottomCrop">
<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>
@@ -4209,7 +4194,7 @@ this setting.</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="crop_right">
+ <object class="GtkSpinButton" id="PictureRightCrop">
<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>
@@ -4246,7 +4231,7 @@ this setting.</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="autocrop">
+ <object class="GtkCheckButton" id="PictureAutoCrop">
<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>
@@ -4370,7 +4355,7 @@ this setting.</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
- <object class="GtkCheckButton" id="round_dimensions">
+ <object class="GtkCheckButton" id="ModDimensions">
<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>
@@ -4412,7 +4397,7 @@ adjusted to keep the video's original aspect ratio.</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="keep_aspect">
+ <object class="GtkCheckButton" id="PictureKeepRatio">
<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>
diff --git a/gtk/src/hb-backend.c b/gtk/src/hb-backend.c
index e82473e90..b69083818 100644
--- a/gtk/src/hb-backend.c
+++ b/gtk/src/hb-backend.c
@@ -32,6 +32,7 @@
#include "settings.h"
#include "callbacks.h"
#include "values.h"
+#include "lang.h"
typedef struct
{
@@ -223,24 +224,25 @@ typedef struct
combo_name_map_t combo_name_map[] =
{
- {"container", &container_opts},
- {"deinterlace", &deint_opts},
- {"tweak_deinterlace", &deint_opts},
- {"denoise", &denoise_opts},
- {"tweak_denoise", &denoise_opts},
- {"video_codec", &vcodec_opts},
- {"audio_codec", &acodec_opts},
+ {"FileFormat", &container_opts},
+ {"PictureDeinterlace", &deint_opts},
+ {"tweak_PictureDeinterlace", &deint_opts},
+ {"PictureDenoise", &denoise_opts},
+ {"tweak_PictureDenoise", &denoise_opts},
+ {"VideoEncoder", &vcodec_opts},
+ {"AudioEncoder", &acodec_opts},
{"x264_direct", &direct_opts},
{"x264_me", &me_opts},
{"x264_subme", &subme_opts},
{"x264_analyse", &analyse_opts},
{"x264_trellis", &trellis_opts},
- {"subtitle_lang", &subtitle_opts},
+ {"Subtitles", &subtitle_opts},
{"title", &title_opts},
- {"audio_track", &audio_track_opts},
+ {"AudioTrack", &audio_track_opts},
{NULL, NULL}
};
+#if 0
typedef struct iso639_lang_t
{
char * eng_name; /* Description in English */
@@ -249,8 +251,9 @@ typedef struct iso639_lang_t
char * iso639_2; /* ISO-639-2/t (3 character) code */
char * iso639_2b; /* ISO-639-2/b code (if different from above) */
} iso639_lang_t;
+#endif
-static const iso639_lang_t language_table[] =
+const iso639_lang_t ghb_language_table[] =
{
{ "Any", "", "zz", "und" },
{ "Afar", "", "aa", "aar" },
@@ -438,8 +441,9 @@ static const iso639_lang_t language_table[] =
{ "Yoruba", "", "yo", "yor" },
{ "Zhuang", "", "za", "zha" },
{ "Zulu", "", "zu", "zul" },
+ {NULL, NULL, NULL, NULL}
};
-#define LANG_TABLE_SIZE (sizeof(language_table)/ sizeof(iso639_lang_t))
+#define LANG_TABLE_SIZE (sizeof(ghb_language_table)/ sizeof(iso639_lang_t)-1)
static void audio_bitrate_opts_set(GtkBuilder *builder, const gchar *name);
@@ -477,12 +481,21 @@ ghb_version()
}
void
-ghb_vquality_range(signal_user_data_t *ud, gint *min, gint *max)
+ghb_vquality_range(
+ signal_user_data_t *ud,
+ gdouble *min,
+ gdouble *max,
+ gdouble *step,
+ gdouble *page,
+ gint *digits)
{
if (ghb_settings_get_boolean(ud->settings, "directqp"))
{
- gint vcodec = ghb_settings_combo_int(ud->settings, "video_codec");
+ gint vcodec = ghb_settings_combo_int(ud->settings, "VideoEncoder");
// Only x264 and ffmpeg currently support direct qp/crf entry
+ *step = 1;
+ *page = 10;
+ *digits = 0;
if (vcodec == HB_VCODEC_X264)
{
*min = 0;
@@ -496,13 +509,19 @@ ghb_vquality_range(signal_user_data_t *ud, gint *min, gint *max)
else
{
*min = 0;
- *max = 100;
+ *max = 1.0;
+ *step = 0.001;
+ *page = 0.1;
+ *digits = 3;
}
}
else
{
*min = 0;
- *max = 100;
+ *max = 1.0;
+ *step = 0.001;
+ *page = 0.1;
+ *digits = 3;
}
}
@@ -730,7 +749,7 @@ lookup_audio_lang_int(const GValue *rate)
str = ghb_value_string(rate);
for (ii = 0; ii < LANG_TABLE_SIZE; ii++)
{
- if (strcmp(language_table[ii].iso639_2, str) == 0)
+ if (strcmp(ghb_language_table[ii].iso639_2, str) == 0)
{
result = ii;
break;
@@ -752,9 +771,9 @@ lookup_audio_lang_option(const GValue *rate)
str = ghb_value_string(rate);
for (ii = 0; ii < LANG_TABLE_SIZE; ii++)
{
- if (strcmp(language_table[ii].iso639_2, str) == 0)
+ if (strcmp(ghb_language_table[ii].iso639_2, str) == 0)
{
- result = language_table[ii].eng_name;
+ result = ghb_language_table[ii].eng_name;
break;
}
}
@@ -925,21 +944,22 @@ ghb_grey_combo_options(GtkBuilder *builder)
gval = ghb_widget_value(widget);
titleindex = ghb_lookup_combo_int("title", gval);
ghb_value_free(gval);
- widget = GHB_WIDGET (builder, "audio_track");
+ widget = GHB_WIDGET (builder, "AudioTrack");
gval = ghb_widget_value(widget);
- track = ghb_lookup_combo_int("audio_track", gval);
+ track = ghb_lookup_combo_int("AudioTrack", gval);
ghb_value_free(gval);
audio = get_hb_audio(titleindex, track);
- widget = GHB_WIDGET (builder, "container");
+ widget = GHB_WIDGET (builder, "FileFormat");
gval = ghb_widget_value(widget);
- container = ghb_lookup_combo_int("container", gval);
+ container = ghb_lookup_combo_int("FileFormat", gval);
ghb_value_free(gval);
- widget = GHB_WIDGET (builder, "http_optimize_mp4");
+ widget = GHB_WIDGET (builder, "Mp4HttpOptimize");
httpopt = ghb_widget_boolean(widget);
- grey_combo_box_item(builder, "audio_codec", HB_ACODEC_FAAC, FALSE);
- grey_combo_box_item(builder, "audio_codec", HB_ACODEC_LAME, FALSE);
- grey_combo_box_item(builder, "audio_codec", HB_ACODEC_VORBIS, FALSE);
+ grey_combo_box_item(builder, "x264_analyse", 3, TRUE);
+ grey_combo_box_item(builder, "AudioEncoder", HB_ACODEC_FAAC, FALSE);
+ grey_combo_box_item(builder, "AudioEncoder", HB_ACODEC_LAME, FALSE);
+ grey_combo_box_item(builder, "AudioEncoder", HB_ACODEC_VORBIS, FALSE);
gboolean allow_ac3 = TRUE;
allow_ac3 =
@@ -948,41 +968,41 @@ ghb_grey_combo_options(GtkBuilder *builder)
if (allow_ac3)
{
- grey_combo_box_item(builder, "audio_codec", HB_ACODEC_AC3, FALSE);
+ grey_combo_box_item(builder, "AudioEncoder", HB_ACODEC_AC3, FALSE);
}
else
{
- grey_combo_box_item(builder, "audio_codec", HB_ACODEC_AC3, TRUE);
+ grey_combo_box_item(builder, "AudioEncoder", HB_ACODEC_AC3, TRUE);
}
if (audio && audio->in.codec != HB_ACODEC_AC3)
{
- grey_combo_box_item(builder, "audio_codec", HB_ACODEC_AC3, TRUE);
+ grey_combo_box_item(builder, "AudioEncoder", HB_ACODEC_AC3, TRUE);
}
- grey_combo_box_item(builder, "video_codec", HB_VCODEC_THEORA, FALSE);
+ grey_combo_box_item(builder, "VideoEncoder", HB_VCODEC_THEORA, FALSE);
- widget = GHB_WIDGET (builder, "audio_codec");
+ widget = GHB_WIDGET (builder, "AudioEncoder");
gval = ghb_widget_value(widget);
- acodec = ghb_lookup_combo_int("audio_codec", gval);
+ acodec = ghb_lookup_combo_int("AudioEncoder", gval);
ghb_value_free(gval);
if (acodec != HB_ACODEC_AC3)
{
- grey_combo_box_item(builder, "audio_mix", 0, TRUE);
+ grey_combo_box_item(builder, "AudioMixdown", 0, TRUE);
}
if (container == HB_MUX_MP4)
{
- grey_combo_box_item(builder, "audio_codec", HB_ACODEC_LAME, TRUE);
- grey_combo_box_item(builder, "audio_codec", HB_ACODEC_VORBIS, TRUE);
- grey_combo_box_item(builder, "video_codec", HB_VCODEC_THEORA, TRUE);
+ grey_combo_box_item(builder, "AudioEncoder", HB_ACODEC_LAME, TRUE);
+ grey_combo_box_item(builder, "AudioEncoder", HB_ACODEC_VORBIS, TRUE);
+ grey_combo_box_item(builder, "VideoEncoder", HB_VCODEC_THEORA, TRUE);
}
else if (container == HB_MUX_AVI)
{
- grey_combo_box_item(builder, "audio_codec", HB_ACODEC_FAAC, TRUE);
- grey_combo_box_item(builder, "audio_codec", HB_ACODEC_VORBIS, TRUE);
- grey_combo_box_item(builder, "video_codec", HB_VCODEC_THEORA, TRUE);
+ grey_combo_box_item(builder, "AudioEncoder", HB_ACODEC_FAAC, TRUE);
+ grey_combo_box_item(builder, "AudioEncoder", HB_ACODEC_VORBIS, TRUE);
+ grey_combo_box_item(builder, "VideoEncoder", HB_VCODEC_THEORA, TRUE);
}
else if (container == HB_MUX_OGM)
{
- grey_combo_box_item(builder, "audio_codec", HB_ACODEC_FAAC, TRUE);
+ grey_combo_box_item(builder, "AudioEncoder", HB_ACODEC_FAAC, TRUE);
}
gboolean allow_mono = TRUE;
@@ -1009,11 +1029,11 @@ ghb_grey_combo_options(GtkBuilder *builder)
(layout == HB_INPUT_CH_LAYOUT_3F2R) &&
(audio->in.channel_layout & HB_INPUT_CH_LAYOUT_HAS_LFE);
}
- grey_combo_box_item(builder, "audio_mix", HB_AMIXDOWN_MONO, !allow_mono);
- grey_combo_box_item(builder, "audio_mix", HB_AMIXDOWN_STEREO, !allow_stereo);
- grey_combo_box_item(builder, "audio_mix", HB_AMIXDOWN_DOLBY, !allow_dolby);
- grey_combo_box_item(builder, "audio_mix", HB_AMIXDOWN_DOLBYPLII, !allow_dpl2);
- grey_combo_box_item(builder, "audio_mix", HB_AMIXDOWN_6CH, !allow_6ch);
+ grey_combo_box_item(builder, "AudioMixdown", HB_AMIXDOWN_MONO, !allow_mono);
+ grey_combo_box_item(builder, "AudioMixdown", HB_AMIXDOWN_STEREO, !allow_stereo);
+ grey_combo_box_item(builder, "AudioMixdown", HB_AMIXDOWN_DOLBY, !allow_dolby);
+ grey_combo_box_item(builder, "AudioMixdown", HB_AMIXDOWN_DOLBYPLII, !allow_dpl2);
+ grey_combo_box_item(builder, "AudioMixdown", HB_AMIXDOWN_6CH, !allow_6ch);
}
gint
@@ -1249,11 +1269,11 @@ language_opts_set(GtkBuilder *builder, const gchar *name)
{
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter,
- 0, language_table[ii].eng_name,
+ 0, ghb_language_table[ii].eng_name,
1, TRUE,
- 2, language_table[ii].iso639_2,
+ 2, ghb_language_table[ii].iso639_2,
3, ii,
- 4, language_table[ii].iso639_1,
+ 4, ghb_language_table[ii].iso639_1,
-1);
}
}
@@ -1480,7 +1500,7 @@ subtitle_opts_set(GtkBuilder *builder, const gchar *name, gint titleindex)
subtitle_opts.map[0].svalue = "none";
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter,
- 0, "Same as audio",
+ 0, "Autoselect",
1, TRUE,
2, "auto",
3, -1,
@@ -1515,16 +1535,16 @@ subtitle_opts_set(GtkBuilder *builder, const gchar *name, gint titleindex)
{
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter,
- 0, language_table[ii].eng_name,
+ 0, ghb_language_table[ii].eng_name,
1, TRUE,
- 2, language_table[ii].iso639_2,
+ 2, ghb_language_table[ii].iso639_2,
3, ii,
- 4, language_table[ii].iso639_2,
+ 4, ghb_language_table[ii].iso639_2,
-1);
- subtitle_opts.map[ii+2].option = language_table[ii].eng_name;
- subtitle_opts.map[ii+2].shortOpt = language_table[ii].iso639_2;
+ subtitle_opts.map[ii+2].option = ghb_language_table[ii].eng_name;
+ subtitle_opts.map[ii+2].shortOpt = ghb_language_table[ii].iso639_2;
subtitle_opts.map[ii+2].ivalue = ii;
- subtitle_opts.map[ii+2].svalue = language_table[ii].iso639_2;
+ subtitle_opts.map[ii+2].svalue = ghb_language_table[ii].iso639_2;
}
}
}
@@ -1637,15 +1657,15 @@ find_combo_table(const gchar *name)
gint
ghb_lookup_combo_int(const gchar *name, const GValue *gval)
{
- if (strcmp(name, "audio_bitrate") == 0)
+ if (strcmp(name, "AudioBitrate") == 0)
return lookup_audio_bitrate_int(gval);
- else if (strcmp(name, "audio_rate") == 0)
+ else if (strcmp(name, "AudioSamplerate") == 0)
return lookup_audio_rate_int(gval);
- else if (strcmp(name, "framerate") == 0)
+ else if (strcmp(name, "VideoFramerate") == 0)
return lookup_video_rate_int(gval);
- else if (strcmp(name, "audio_mix") == 0)
+ else if (strcmp(name, "AudioMixdown") == 0)
return lookup_mix_int(gval);
- else if (strcmp(name, "source_audio_lang") == 0)
+ else if (strcmp(name, "SourceAudioLang") == 0)
return lookup_audio_lang_int(gval);
else
{
@@ -1658,15 +1678,15 @@ ghb_lookup_combo_int(const gchar *name, const GValue *gval)
const gchar*
ghb_lookup_combo_option(const gchar *name, const GValue *gval)
{
- if (strcmp(name, "audio_bitrate") == 0)
+ if (strcmp(name, "AudioBitrate") == 0)
return lookup_audio_bitrate_option(gval);
- else if (strcmp(name, "audio_rate") == 0)
+ else if (strcmp(name, "AudioSamplerate") == 0)
return lookup_audio_rate_option(gval);
- else if (strcmp(name, "framerate") == 0)
+ else if (strcmp(name, "VideoFramerate") == 0)
return lookup_video_rate_option(gval);
- else if (strcmp(name, "audio_mix") == 0)
+ else if (strcmp(name, "AudioMixdown") == 0)
return lookup_mix_option(gval);
- else if (strcmp(name, "source_audio_lang") == 0)
+ else if (strcmp(name, "SourceAudioLang") == 0)
return lookup_audio_lang_option(gval);
else
{
@@ -1705,21 +1725,21 @@ ghb_update_ui_combo_box(GtkBuilder *builder, const gchar *name, gint user_data,
}
if (all)
{
- audio_bitrate_opts_set(builder, "audio_bitrate");
- audio_samplerate_opts_set(builder, "audio_rate", hb_audio_rates, hb_audio_rates_count);
- video_rate_opts_set(builder, "framerate", hb_video_rates, hb_video_rates_count);
- mix_opts_set(builder, "audio_mix");
- language_opts_set(builder, "source_audio_lang");
- subtitle_opts_set(builder, "subtitle_lang", user_data);
+ audio_bitrate_opts_set(builder, "AudioBitrate");
+ audio_samplerate_opts_set(builder, "AudioSamplerate", hb_audio_rates, hb_audio_rates_count);
+ video_rate_opts_set(builder, "VideoFramerate", hb_video_rates, hb_video_rates_count);
+ mix_opts_set(builder, "AudioMixdown");
+ language_opts_set(builder, "SourceAudioLang");
+ subtitle_opts_set(builder, "Subtitles", user_data);
title_opts_set(builder, "title");
- audio_track_opts_set(builder, "audio_track", user_data);
- generic_opts_set(builder, "container", &container_opts);
- generic_opts_set(builder, "deinterlace", &deint_opts);
- generic_opts_set(builder, "tweak_deinterlace", &deint_opts);
- generic_opts_set(builder, "denoise", &denoise_opts);
- generic_opts_set(builder, "tweak_denoise", &denoise_opts);
- generic_opts_set(builder, "video_codec", &vcodec_opts);
- generic_opts_set(builder, "audio_codec", &acodec_opts);
+ audio_track_opts_set(builder, "AudioTrack", user_data);
+ generic_opts_set(builder, "FileFormat", &container_opts);
+ generic_opts_set(builder, "PictureDeinterlace", &deint_opts);
+ generic_opts_set(builder, "tweak_PictureDeinterlace", &deint_opts);
+ generic_opts_set(builder, "PictureDenoise", &denoise_opts);
+ generic_opts_set(builder, "tweak_PictureDenoise", &denoise_opts);
+ generic_opts_set(builder, "VideoEncoder", &vcodec_opts);
+ generic_opts_set(builder, "AudioEncoder", &acodec_opts);
generic_opts_set(builder, "x264_direct", &direct_opts);
generic_opts_set(builder, "x264_me", &me_opts);
generic_opts_set(builder, "x264_subme", &subme_opts);
@@ -1728,22 +1748,22 @@ ghb_update_ui_combo_box(GtkBuilder *builder, const gchar *name, gint user_data,
}
else
{
- if (strcmp(name, "audio_bitrate") == 0)
- audio_bitrate_opts_set(builder, "audio_bitrate");
- else if (strcmp(name, "audio_rate") == 0)
- audio_samplerate_opts_set(builder, "audio_rate", hb_audio_rates, hb_audio_rates_count);
- else if (strcmp(name, "framerate") == 0)
- video_rate_opts_set(builder, "framerate", hb_video_rates, hb_video_rates_count);
- else if (strcmp(name, "audio_mix") == 0)
- mix_opts_set(builder, "audio_mix");
- else if (strcmp(name, "source_audio_lang") == 0)
- language_opts_set(builder, "source_audio_lang");
- else if (strcmp(name, "subtitle_lang") == 0)
- subtitle_opts_set(builder, "subtitle_lang", user_data);
+ if (strcmp(name, "AudioBitrate") == 0)
+ audio_bitrate_opts_set(builder, "AudioBitrate");
+ else if (strcmp(name, "AudioSamplerate") == 0)
+ audio_samplerate_opts_set(builder, "AudioSamplerate", hb_audio_rates, hb_audio_rates_count);
+ else if (strcmp(name, "VideoFramerate") == 0)
+ video_rate_opts_set(builder, "VideoFramerate", hb_video_rates, hb_video_rates_count);
+ else if (strcmp(name, "AudioMixdown") == 0)
+ mix_opts_set(builder, "AudioMixdown");
+ else if (strcmp(name, "SourceAudioLang") == 0)
+ language_opts_set(builder, "SourceAudioLang");
+ else if (strcmp(name, "Subtitles") == 0)
+ subtitle_opts_set(builder, "Subtitles", user_data);
else if (strcmp(name, "title") == 0)
title_opts_set(builder, "title");
- else if (strcmp(name, "audio_track") == 0)
- audio_track_opts_set(builder, "audio_track", user_data);
+ else if (strcmp(name, "AudioTrack") == 0)
+ audio_track_opts_set(builder, "AudioTrack", user_data);
else
generic_opts_set(builder, name, find_combo_table(name));
}
@@ -1758,14 +1778,14 @@ init_ui_combo_boxes(GtkBuilder *builder)
{
gint ii;
- init_combo_box(builder, "audio_bitrate");
- init_combo_box(builder, "audio_rate");
- init_combo_box(builder, "framerate");
- init_combo_box(builder, "audio_mix");
- init_combo_box(builder, "source_audio_lang");
- init_combo_box(builder, "subtitle_lang");
+ init_combo_box(builder, "AudioBitrate");
+ init_combo_box(builder, "AudioSamplerate");
+ init_combo_box(builder, "VideoFramerate");
+ init_combo_box(builder, "AudioMixdown");
+ init_combo_box(builder, "SourceAudioLang");
+ init_combo_box(builder, "Subtitles");
init_combo_box(builder, "title");
- init_combo_box(builder, "audio_track");
+ init_combo_box(builder, "AudioTrack");
for (ii = 0; combo_name_map[ii].name != NULL; ii++)
{
init_combo_box(builder, combo_name_map[ii].name);
@@ -1782,7 +1802,7 @@ gchar*
ghb_build_x264opts_string(GValue *settings)
{
gchar *result;
- gchar *opts = ghb_settings_get_string(settings, "x264_options");
+ gchar *opts = ghb_settings_get_string(settings, "x264Option");
if (opts != NULL)
{
result = opts;
@@ -1841,7 +1861,7 @@ ghb_ac3_in_audio_list(const GValue *audio_list)
gint acodec;
asettings = ghb_array_get_nth(audio_list, ii);
- acodec = ghb_settings_combo_int(asettings, "audio_codec");
+ acodec = ghb_settings_combo_int(asettings, "AudioEncoder");
if (acodec == HB_ACODEC_AC3)
return TRUE;
}
@@ -1936,13 +1956,13 @@ audio_bitrate_opts_set(GtkBuilder *builder, const gchar *name)
void
ghb_set_passthru_bitrate_opts(GtkBuilder *builder, gint bitrate)
{
- audio_bitrate_opts_add(builder, "audio_bitrate", bitrate);
+ audio_bitrate_opts_add(builder, "AudioBitrate", bitrate);
}
void
ghb_set_default_bitrate_opts(GtkBuilder *builder, gint last_rate)
{
- audio_bitrate_opts_clean(builder, "audio_bitrate", last_rate);
+ audio_bitrate_opts_clean(builder, "AudioBitrate", last_rate);
}
static ghb_status_t hb_status;
@@ -2225,10 +2245,10 @@ ghb_set_scale(signal_user_data_t *ud, gint mode)
if (job == NULL) return;
// First configure widgets
- round_dims = ghb_settings_get_boolean(ud->settings, "round_dimensions");
+ round_dims = ghb_settings_get_boolean(ud->settings, "ModDimensions");
anamorphic = ghb_settings_get_boolean(ud->settings, "anamorphic");
- keep_aspect = ghb_settings_get_boolean(ud->settings, "keep_aspect");
- autocrop = ghb_settings_get_boolean(ud->settings, "autocrop");
+ keep_aspect = ghb_settings_get_boolean(ud->settings, "PictureKeepRatio");
+ autocrop = ghb_settings_get_boolean(ud->settings, "PictureAutoCrop");
autoscale = ghb_settings_get_boolean(ud->settings, "autoscale");
// "Noscale" is a flag that says we prefer to crop extra to satisfy
// alignment constraints rather than scaling to satisfy them.
@@ -2281,16 +2301,16 @@ ghb_set_scale(signal_user_data_t *ud, gint mode)
crop[2] += need1;
crop[3] += need2;
}
- ghb_ui_update(ud, "crop_top", ghb_int64_value(crop[0]));
- ghb_ui_update(ud, "crop_bottom", ghb_int64_value(crop[1]));
- ghb_ui_update(ud, "crop_left", ghb_int64_value(crop[2]));
- ghb_ui_update(ud, "crop_right", ghb_int64_value(crop[3]));
+ ghb_ui_update(ud, "PictureTopCrop", ghb_int64_value(crop[0]));
+ ghb_ui_update(ud, "PictureBottomCrop", ghb_int64_value(crop[1]));
+ ghb_ui_update(ud, "PictureLeftCrop", ghb_int64_value(crop[2]));
+ ghb_ui_update(ud, "PictureRightCrop", ghb_int64_value(crop[3]));
}
}
- crop[0] = ghb_settings_get_int(ud->settings, "crop_top");
- crop[1] = ghb_settings_get_int(ud->settings, "crop_bottom");
- crop[2] = ghb_settings_get_int(ud->settings, "crop_left");
- crop[3] = ghb_settings_get_int(ud->settings, "crop_right");
+ crop[0] = ghb_settings_get_int(ud->settings, "PictureTopCrop");
+ crop[1] = ghb_settings_get_int(ud->settings, "PictureBottomCrop");
+ crop[2] = ghb_settings_get_int(ud->settings, "PictureLeftCrop");
+ crop[3] = ghb_settings_get_int(ud->settings, "PictureRightCrop");
hb_reduce(&aspect_n, &aspect_d,
title->width * title->pixel_aspect_width,
title->height * title->pixel_aspect_height);
@@ -2307,8 +2327,8 @@ ghb_set_scale(signal_user_data_t *ud, gint mode)
{
width = ghb_settings_get_int(ud->settings, "scale_width");
height = ghb_settings_get_int(ud->settings, "scale_height");
- max_width = ghb_settings_get_int(ud->settings, "max_width");
- max_height = ghb_settings_get_int(ud->settings, "max_width");
+ max_width = ghb_settings_get_int(ud->settings, "PictureWidth");
+ max_height = ghb_settings_get_int(ud->settings, "PictureHeight");
// Align max dims
max_width = (max_width >> modshift) << modshift;
max_height = (max_height >> modshift) << modshift;
@@ -2405,14 +2425,14 @@ ghb_set_scale(signal_user_data_t *ud, gint mode)
static void
set_preview_job_settings(hb_job_t *job, GValue *settings)
{
- job->crop[0] = ghb_settings_get_int(settings, "crop_top");
- job->crop[1] = ghb_settings_get_int(settings, "crop_bottom");
- job->crop[2] = ghb_settings_get_int(settings, "crop_left");
- job->crop[3] = ghb_settings_get_int(settings, "crop_right");
+ job->crop[0] = ghb_settings_get_int(settings, "PictureTopCrop");
+ job->crop[1] = ghb_settings_get_int(settings, "PictureBottomCrop");
+ job->crop[2] = ghb_settings_get_int(settings, "PictureLeftCrop");
+ job->crop[3] = ghb_settings_get_int(settings, "PictureRightCrop");
gboolean anamorphic, round_dimensions;
anamorphic = ghb_settings_get_boolean(settings, "anamorphic");
- round_dimensions = ghb_settings_get_boolean(settings, "round_dimensions");
+ round_dimensions = ghb_settings_get_boolean(settings, "ModDimensions");
if (round_dimensions && anamorphic)
{
job->modulus = 16;
@@ -2430,8 +2450,8 @@ set_preview_job_settings(hb_job_t *job, GValue *settings)
}
job->width = ghb_settings_get_int(settings, "scale_width");
job->height = ghb_settings_get_int(settings, "scale_height");
- gint deint = ghb_settings_combo_int(settings, "deinterlace");
- gboolean decomb = ghb_settings_get_boolean(settings, "decomb");
+ gint deint = ghb_settings_combo_int(settings, "PictureDeinterlace");
+ gboolean decomb = ghb_settings_get_boolean(settings, "PictureDecomb");
job->deinterlace = (!decomb && deint == 0) ? 0 : 1;
}
@@ -2443,57 +2463,16 @@ ghb_calculate_target_bitrate(GValue *settings, gint titleindex)
hb_job_t * job;
gint size;
- if (h_scan == NULL) return 2000;
+ if (h_scan == NULL) return 1500;
list = hb_get_titles( h_scan );
title = hb_list_item( list, titleindex );
- if (title == NULL) return 2000;
+ if (title == NULL) return 1500;
job = title->job;
- if (job == NULL) return 2000;
- size = ghb_settings_get_int(settings, "video_target_size");
+ if (job == NULL) return 1500;
+ size = ghb_settings_get_int(settings, "VideoTargetSize");
return hb_calc_bitrate( job, size );
}
-gint
-ghb_guess_bitrate(GValue *settings)
-{
- gint bitrate;
- if (ghb_settings_get_boolean(settings, "vquality_type_constant"))
- {
- // This is really rough. I'm trying to err on the high
- // side since this is used to estimate if there is
- // sufficient disk space left
- gint vcodec;
- gdouble vquality;
-
- vcodec = ghb_settings_combo_int(settings, "video_codec");
- vquality = ghb_settings_get_double(settings, "video_quality")/100;
- if (vcodec == HB_VCODEC_X264 &&
- !ghb_settings_get_boolean(settings, "linear_vquality"))
- {
- vquality = 51.0 - vquality * 51.0;
- // Convert log curve to linear
- vquality = exp2((vquality-12)/6);
- // Don't let it go to 0
- if (vquality >= 31) vquality = 30;
- vquality = (31 - vquality) / 31;
- }
- // bitrate seems to be a log relasionship to quality
- // with typical source material
- // This is a real wag
- bitrate = 20*1024*1024*exp10(vquality*14)/exp10(14);
- // Add some bits for audio
- bitrate += 500*1024;
- }
- else
- {
- // Add some fudge to the bitrate to leave breathing room
- bitrate = ghb_settings_get_int(settings, "video_bitrate")*1024;
- // Add some bits for audio
- bitrate += 500*1024;
- }
- return bitrate;
-}
-
gboolean
ghb_validate_filter_string(const gchar *str, gint max_fields)
{
@@ -2535,8 +2514,8 @@ ghb_validate_filters(signal_user_data_t *ud)
if (tweaks)
{
// detele 6
- str = ghb_settings_get_string(ud->settings, "tweak_detelecine");
- enabled = ghb_settings_get_boolean(ud->settings, "detelecine");
+ str = ghb_settings_get_string(ud->settings, "tweak_PictureDetelecine");
+ enabled = ghb_settings_get_boolean(ud->settings, "PictureDetelecine");
if (enabled && !ghb_validate_filter_string(str, 6))
{
message = g_strdup_printf(
@@ -2549,8 +2528,8 @@ ghb_validate_filters(signal_user_data_t *ud)
}
g_free(str);
// decomb 7
- str = ghb_settings_get_string(ud->settings, "tweak_decomb");
- enabled = ghb_settings_get_boolean(ud->settings, "decomb");
+ str = ghb_settings_get_string(ud->settings, "tweak_PictureDecomb");
+ enabled = ghb_settings_get_boolean(ud->settings, "PictureDecomb");
if (enabled && !ghb_validate_filter_string(str, 7))
{
message = g_strdup_printf(
@@ -2563,11 +2542,11 @@ ghb_validate_filters(signal_user_data_t *ud)
}
g_free(str);
// deinte 4
- index = ghb_lookup_combo_int("tweak_deinterlace",
- ghb_settings_get_value(ud->settings, "tweak_deinterlace"));
+ index = ghb_lookup_combo_int("tweak_PictureDeinterlace",
+ ghb_settings_get_value(ud->settings, "tweak_PictureDeinterlace"));
if (index < 0)
{
- str = ghb_settings_get_string(ud->settings, "tweak_deinterlace");
+ str = ghb_settings_get_string(ud->settings, "tweak_PictureDeinterlace");
if (!ghb_validate_filter_string(str, 4))
{
message = g_strdup_printf(
@@ -2580,29 +2559,12 @@ ghb_validate_filters(signal_user_data_t *ud)
}
g_free(str);
}
-#if 0
- // Deblock is being reworked
- // debloc 2
- str = ghb_settings_get_string(ud->settings, "tweak_deblock");
- enabled = ghb_settings_get_boolean(ud->settings, "deblock");
- if (enabled && !ghb_validate_filter_string(str, 2))
- {
- message = g_strdup_printf(
- "Invalid Deblock Settings:\n\n%s\n",
- str);
- ghb_message_dialog(GTK_MESSAGE_ERROR, message, "Cancel", NULL);
- g_free(str);
- g_free(message);
- return FALSE;
- }
- g_free(str);
-#endif
// denois 4
- index = ghb_lookup_combo_int("tweak_denoise",
- ghb_settings_get_value(ud->settings, "tweak_denoise"));
+ index = ghb_lookup_combo_int("tweak_PictureDenoise",
+ ghb_settings_get_value(ud->settings, "tweak_PictureDenoise"));
if (index < 0)
{
- str = ghb_settings_get_string(ud->settings, "tweak_denoise");
+ str = ghb_settings_get_string(ud->settings, "tweak_PictureDenoise");
if (!ghb_validate_filter_string(str, 4))
{
message = g_strdup_printf(
@@ -2625,8 +2587,8 @@ ghb_validate_video(signal_user_data_t *ud)
gint vcodec, mux;
gchar *message;
- mux = ghb_settings_combo_int(ud->settings, "container");
- vcodec = ghb_settings_combo_int(ud->settings, "video_codec");
+ mux = ghb_settings_combo_int(ud->settings, "FileFormat");
+ vcodec = ghb_settings_combo_int(ud->settings, "VideoEncoder");
if ((mux == HB_MUX_MP4 || mux == HB_MUX_AVI) &&
(vcodec == HB_VCODEC_THEORA))
{
@@ -2642,7 +2604,7 @@ ghb_validate_video(signal_user_data_t *ud)
}
g_free(message);
vcodec = HB_VCODEC_XVID;
- ghb_ui_update(ud, "video_codec", ghb_int64_value(vcodec));
+ ghb_ui_update(ud, "VideoEncoder", ghb_int64_value(vcodec));
}
return TRUE;
}
@@ -2653,14 +2615,14 @@ ghb_validate_container(signal_user_data_t *ud)
gint container;
gchar *message;
- container = ghb_settings_combo_int(ud->settings, "container");
+ container = ghb_settings_combo_int(ud->settings, "FileFormat");
if (container == HB_MUX_MP4)
{
const GValue *audio_list;
gboolean httpopt;
audio_list = ghb_settings_get_value(ud->settings, "audio_list");
- httpopt = ghb_settings_get_boolean(ud->settings, "http_optimize_mp4");
+ httpopt = ghb_settings_get_boolean(ud->settings, "Mp4HttpOptimize");
if (httpopt && ghb_ac3_in_audio_list(audio_list))
{
message = g_strdup_printf(
@@ -2682,14 +2644,14 @@ ghb_validate_container(signal_user_data_t *ud)
GValue *asettings;
asettings = ghb_array_get_nth(audio_list, ii);
- gint acodec = ghb_settings_combo_int(asettings, "audio_codec");
+ gint acodec = ghb_settings_combo_int(asettings, "AudioEncoder");
if (acodec == HB_ACODEC_AC3)
{
GValue *value;
value = get_acodec_value(HB_ACODEC_FAAC);
- ghb_settings_take_value(asettings, "audio_codec", value);
+ ghb_settings_take_value(asettings, "AudioEncoder", value);
value = get_abitrate_value(160);
- ghb_settings_take_value(asettings, "audio_bitrate", value);
+ ghb_settings_take_value(asettings, "AudioBitrate", value);
}
}
}
@@ -2719,7 +2681,7 @@ ghb_validate_audio(signal_user_data_t *ud)
titleindex = ghb_settings_combo_int(ud->settings, "title");
title = hb_list_item( list, titleindex );
if (title == NULL) return FALSE;
- gint mux = ghb_settings_combo_int(ud->settings, "container");
+ gint mux = ghb_settings_combo_int(ud->settings, "FileFormat");
const GValue *audio_list;
gint count, ii;
@@ -2732,8 +2694,8 @@ ghb_validate_audio(signal_user_data_t *ud)
hb_audio_config_t *taudio;
asettings = ghb_array_get_nth(audio_list, ii);
- gint track = ghb_settings_combo_int(asettings, "audio_track");
- gint codec = ghb_settings_combo_int(asettings, "audio_codec");
+ gint track = ghb_settings_combo_int(asettings, "AudioTrack");
+ gint codec = ghb_settings_combo_int(asettings, "AudioEncoder");
taudio = (hb_audio_config_t *) hb_list_audio_config_item(
title->list_audio, track );
if ((taudio->in.codec != HB_ACODEC_AC3) && (codec == HB_ACODEC_AC3))
@@ -2758,7 +2720,7 @@ ghb_validate_audio(signal_user_data_t *ud)
codec = HB_ACODEC_FAAC;
}
value = get_acodec_value(codec);
- ghb_settings_take_value(asettings, "audio_codec", value);
+ ghb_settings_take_value(asettings, "AudioEncoder", value);
}
gchar *a_unsup = NULL;
gchar *mux_s = NULL;
@@ -2820,9 +2782,9 @@ ghb_validate_audio(signal_user_data_t *ud)
}
g_free(message);
value = get_acodec_value(codec);
- ghb_settings_take_value(asettings, "audio_codec", value);
+ ghb_settings_take_value(asettings, "AudioEncoder", value);
}
- gint mix = ghb_settings_combo_int (asettings, "audio_mix");
+ gint mix = ghb_settings_combo_int (asettings, "AudioMixdown");
gboolean allow_mono = TRUE;
gboolean allow_stereo = TRUE;
gboolean allow_dolby = TRUE;
@@ -2880,7 +2842,7 @@ ghb_validate_audio(signal_user_data_t *ud)
g_free(message);
mix = ghb_get_best_mix(titleindex, track, codec, mix);
value = get_amix_value(mix);
- ghb_settings_take_value(asettings, "audio_mix", value);
+ ghb_settings_take_value(asettings, "AudioMixdown", value);
}
}
return TRUE;
@@ -2894,18 +2856,20 @@ ghb_validate_vquality(GValue *settings)
gint min, max;
if (ghb_settings_get_boolean(settings, "nocheckvquality")) return TRUE;
- vcodec = ghb_settings_combo_int(settings, "video_codec");
+ vcodec = ghb_settings_combo_int(settings, "VideoEncoder");
+ gdouble vquality;
+ vquality = ghb_settings_get_double(settings, "VideoQualitySlider");
if (ghb_settings_get_boolean(settings, "vquality_type_constant"))
{
if (!ghb_settings_get_boolean(settings, "directqp"))
{
- if (vcodec != HB_VCODEC_X264 ||
- ghb_settings_get_boolean(settings, "linear_vquality"))
+ vquality *= 100.0;
+ if (vcodec != HB_VCODEC_X264)
{
min = 68;
max = 97;
}
- else if (vcodec == HB_VCODEC_X264)
+ else
{
min = 40;
max = 70;
@@ -2927,16 +2891,16 @@ ghb_validate_vquality(GValue *settings)
{
min = 68;
max = 97;
+ vquality *= 100.0;
}
}
- gint vquality = ghb_settings_get_double(settings, "video_quality");
if (vquality < min || vquality > max)
{
message = g_strdup_printf(
"Interesting video quality choise: %d\n\n"
"Typical values range from %d to %d.\n"
"Are you sure you wish to use this setting?",
- vquality, min, max);
+ (gint)vquality, min, max);
if (!ghb_message_dialog(GTK_MESSAGE_QUESTION, message,
"Cancel", "Continue"))
{
@@ -2987,11 +2951,11 @@ ghb_add_job(GValue *js, gint unique_id)
if (job == NULL) return;
tweaks = ghb_settings_get_boolean(js, "allow_tweaks");
- job->mux = ghb_settings_combo_int(js, "container");
+ job->mux = ghb_settings_combo_int(js, "FileFormat");
if (job->mux == HB_MUX_MP4)
{
- job->largeFileSize = ghb_settings_get_boolean(js, "large_mp4");
- job->mp4_optimize = ghb_settings_get_boolean(js, "http_optimize_mp4");
+ job->largeFileSize = ghb_settings_get_boolean(js, "Mp4LargeFile");
+ job->mp4_optimize = ghb_settings_get_boolean(js, "Mp4HttpOptimize");
}
else
{
@@ -3005,7 +2969,7 @@ ghb_add_job(GValue *js, gint unique_id)
job->chapter_start = MIN( num_chapters, chapter_start );
job->chapter_end = MAX( job->chapter_start, chapter_end );
- job->chapter_markers = ghb_settings_get_boolean(js, "chapter_markers");
+ job->chapter_markers = ghb_settings_get_boolean(js, "ChapterMarkers");
if ( job->chapter_markers )
{
GValue *chapters;
@@ -3036,23 +3000,23 @@ ghb_add_job(GValue *js, gint unique_id)
g_free(name);
}
}
- job->crop[0] = ghb_settings_get_int(js, "crop_top");
- job->crop[1] = ghb_settings_get_int(js, "crop_bottom");
- job->crop[2] = ghb_settings_get_int(js, "crop_left");
- job->crop[3] = ghb_settings_get_int(js, "crop_right");
+ job->crop[0] = ghb_settings_get_int(js, "PictureTopCrop");
+ job->crop[1] = ghb_settings_get_int(js, "PictureBottomCrop");
+ job->crop[2] = ghb_settings_get_int(js, "PictureLeftCrop");
+ job->crop[3] = ghb_settings_get_int(js, "PictureRightCrop");
- gboolean decomb = ghb_settings_get_boolean(js, "decomb");
+ gboolean decomb = ghb_settings_get_boolean(js, "PictureDecomb");
gint deint = ghb_settings_combo_int(js,
- tweaks ? "tweak_deinterlace":"deinterlace");
+ tweaks ? "tweak_PictureDeinterlace":"PictureDeinterlace");
if (!decomb)
job->deinterlace = (deint != 0) ? 1 : 0;
else
job->deinterlace = 0;
- job->grayscale = ghb_settings_get_boolean(js, "grayscale");
+ job->grayscale = ghb_settings_get_boolean(js, "VideoGrayScale");
gboolean anamorphic = ghb_settings_get_boolean(js, "anamorphic");
- gboolean round_dimensions = ghb_settings_get_boolean(js, "round_dimensions");
+ gboolean round_dimensions = ghb_settings_get_boolean(js, "ModDimensions");
if (round_dimensions && anamorphic)
{
job->pixel_ratio = 2;
@@ -3074,18 +3038,18 @@ ghb_add_job(GValue *js, gint unique_id)
}
/* Add selected filters */
job->filters = hb_list_init();
- gint vrate = ghb_settings_combo_int(js, "framerate");
- if( vrate == 0 && ghb_settings_get_boolean(js, "detelecine" ) )
+ gint vrate = ghb_settings_combo_int(js, "VideoFramerate");
+ if( vrate == 0 && ghb_settings_get_boolean(js, "PictureDetelecine" ) )
job->vfr = 1;
else
job->vfr = 0;
- if( ghb_settings_get_boolean(js, "detelecine" ) )
+ if( ghb_settings_get_boolean(js, "PictureDetelecine" ) )
{
hb_filter_detelecine.settings = NULL;
if (tweaks)
{
- detel_str = ghb_settings_get_string(js, "tweak_detelecine");
+ detel_str = ghb_settings_get_string(js, "tweak_PictureDetelecine");
if (detel_str && detel_str[0])
{
hb_filter_detelecine.settings = detel_str;
@@ -3099,7 +3063,7 @@ ghb_add_job(GValue *js, gint unique_id)
hb_filter_decomb.settings = NULL;
if (tweaks)
{
- decomb_str = ghb_settings_get_string(js, "tweak_decomb");
+ decomb_str = ghb_settings_get_string(js, "tweak_PictureDecomb");
if (decomb_str && decomb_str[0])
{
hb_filter_decomb.settings = (gchar*)decomb_str;
@@ -3113,11 +3077,11 @@ ghb_add_job(GValue *js, gint unique_id)
deint_str = g_strdup(deint_opts.map[deint].svalue);
else
deint_str = ghb_settings_get_string(js,
- tweaks ? "tweak_deinterlace" : "deinterlace");
+ tweaks ? "tweak_PictureDeinterlace" : "PictureDeinterlace");
hb_filter_deinterlace.settings = deint_str;
hb_list_add( job->filters, &hb_filter_deinterlace );
}
- gint deblock = ghb_settings_get_int(js, "deblock");
+ gint deblock = ghb_settings_get_int(js, "PictureDeblock");
if( deblock >= 5 )
{
deblock_str = g_strdup_printf("%d", deblock);
@@ -3125,21 +3089,21 @@ ghb_add_job(GValue *js, gint unique_id)
hb_list_add( job->filters, &hb_filter_deblock );
}
gint denoise = ghb_settings_combo_int(js,
- tweaks ? "tweak_denoise" : "denoise");
+ tweaks ? "tweak_PictureDenoise" : "PictureDenoise");
if( denoise != 0 )
{
if (denoise > 0)
denoise_str = g_strdup(denoise_opts.map[denoise].svalue);
else
denoise_str = (gchar*)ghb_settings_get_string(
- js, tweaks ? "tweak_denoise" : "denoise");
+ js, tweaks ? "tweak_PictureDenoise" : "PictureDenoise");
hb_filter_denoise.settings = denoise_str;
hb_list_add( job->filters, &hb_filter_denoise );
}
job->width = ghb_settings_get_int(js, "scale_width");
job->height = ghb_settings_get_int(js, "scale_height");
- job->vcodec = ghb_settings_combo_int(js, "video_codec");
+ job->vcodec = ghb_settings_combo_int(js, "VideoEncoder");
if ((job->mux == HB_MUX_MP4 || job->mux == HB_MUX_AVI) &&
(job->vcodec == HB_VCODEC_THEORA))
{
@@ -3148,37 +3112,16 @@ ghb_add_job(GValue *js, gint unique_id)
}
if ((job->vcodec == HB_VCODEC_X264) && (job->mux == HB_MUX_MP4))
{
- job->ipod_atom = ghb_settings_get_boolean(js, "ipod_file");
+ job->ipod_atom = ghb_settings_get_boolean(js, "Mp4iPodCompatible");
}
if (ghb_settings_get_boolean(js, "vquality_type_constant"))
{
gdouble vquality;
- vquality = ghb_settings_get_double(js, "video_quality");
+ vquality = ghb_settings_get_double(js, "VideoQualitySlider");
if (!ghb_settings_get_boolean(js, "directqp"))
{
- vquality /= 100.0;
- if (ghb_settings_get_boolean(js, "linear_vquality"))
- {
- if (job->vcodec == HB_VCODEC_X264)
- {
- // Adjust to same range as xvid and ffmpeg
- vquality = 31.0 - vquality * 31.0;
- if (vquality > 0)
- {
- // Convert linear to log curve
- vquality = 12 + 6 * log2(vquality);
- if (vquality > 51) vquality = 51;
- if (vquality < 1) vquality = 1;
- }
- else
- vquality = 0;
- }
- }
- else
- {
- if (vquality == 0.0) vquality = 0.01;
- if (vquality == 1.0) vquality = 0.0;
- }
+ if (vquality == 0.0) vquality = 0.01;
+ if (vquality == 1.0) vquality = 0.0;
}
job->vquality = vquality;
job->vbitrate = 0;
@@ -3186,7 +3129,7 @@ ghb_add_job(GValue *js, gint unique_id)
else if (ghb_settings_get_boolean(js, "vquality_type_bitrate"))
{
job->vquality = -1.0;
- job->vbitrate = ghb_settings_get_int(js, "video_bitrate");
+ job->vbitrate = ghb_settings_get_int(js, "VideoAvgBitrate");
}
// AVI container does not support variable frame rate.
if (job->mux == HB_MUX_AVI)
@@ -3231,9 +3174,9 @@ ghb_add_job(GValue *js, gint unique_id)
hb_audio_config_init(&audio);
asettings = ghb_array_get_nth(audio_list, ii);
- audio.in.track = ghb_settings_get_int(asettings, "audio_track");
+ audio.in.track = ghb_settings_get_int(asettings, "AudioTrack");
audio.out.track = tcount;
- audio.out.codec = ghb_settings_combo_int(asettings, "audio_codec");
+ audio.out.codec = ghb_settings_combo_int(asettings, "AudioEncoder");
taudio = (hb_audio_config_t *) hb_list_audio_config_item(
title->list_audio, audio.in.track );
if ((taudio->in.codec != HB_ACODEC_AC3) && (audio.out.codec == HB_ACODEC_AC3))
@@ -3270,7 +3213,7 @@ ghb_add_job(GValue *js, gint unique_id)
audio.out.codec = HB_ACODEC_VORBIS;
}
audio.out.dynamic_range_compression =
- ghb_settings_get_double(asettings, "audio_drc");
+ ghb_settings_get_double(asettings, "AudioTrackDRCSlider");
// It would be better if this were done in libhb for us, but its not yet.
if (audio.out.codec == HB_ACODEC_AC3 || audio.out.codec == HB_ACODEC_DCA)
{
@@ -3278,13 +3221,13 @@ ghb_add_job(GValue *js, gint unique_id)
}
else
{
- audio.out.mixdown = ghb_settings_combo_int(asettings, "audio_mix");
+ audio.out.mixdown = ghb_settings_combo_int(asettings, "AudioMixdown");
// Make sure the mixdown is valid and pick a new one if not.
audio.out.mixdown = ghb_get_best_mix(titleindex,
audio.in.track, audio.out.codec, audio.out.mixdown);
audio.out.bitrate =
- ghb_settings_combo_int(asettings, "audio_bitrate");
- gint srate = ghb_settings_combo_int(asettings, "audio_rate");
+ ghb_settings_combo_int(asettings, "AudioBitrate");
+ gint srate = ghb_settings_combo_int(asettings, "AudioSamplerate");
if (srate == 0) // 0 is same as source
audio.out.samplerate = taudio->in.samplerate;
else
@@ -3302,7 +3245,7 @@ ghb_add_job(GValue *js, gint unique_id)
{
gint size;
- size = ghb_settings_get_int(js, "video_target_size");
+ size = ghb_settings_get_int(js, "VideoTargetSize");
job->vbitrate = hb_calc_bitrate( job, size );
job->vquality = -1.0;
}
@@ -3326,7 +3269,7 @@ ghb_add_job(GValue *js, gint unique_id)
job->x264opts = NULL;
}
gint subtitle;
- gchar *slang = ghb_settings_get_string(js, "subtitle_lang");
+ gchar *slang = ghb_settings_get_string(js, "Subtitles");
subtitle = -2; // default to none
if (strcmp(slang, "auto") == 0)
{
@@ -3348,7 +3291,7 @@ ghb_add_job(GValue *js, gint unique_id)
}
}
}
- gboolean forced_subtitles = ghb_settings_get_boolean(js, "forced_subtitles");
+ gboolean forced_subtitles = ghb_settings_get_boolean(js, "SubtitlesForced");
job->subtitle_force = forced_subtitles;
if (subtitle >= 0)
job->subtitle = subtitle;
@@ -3386,7 +3329,7 @@ ghb_add_job(GValue *js, gint unique_id)
{
job->select_subtitle = NULL;
}
- if( ghb_settings_get_boolean(js, "two_pass") &&
+ if( ghb_settings_get_boolean(js, "VideoTwoPass") &&
!ghb_settings_get_boolean(js, "vquality_type_constant"))
{
/*
@@ -3407,7 +3350,7 @@ ghb_add_job(GValue *js, gint unique_id)
* If turbo options have been selected then append them
* to the x264opts now (size includes one ':' and the '\0')
*/
- if( ghb_settings_get_boolean(js, "turbo") )
+ if( ghb_settings_get_boolean(js, "VideoTurboTwoPass") )
{
char *tmp_x264opts;
diff --git a/gtk/src/hb-backend.h b/gtk/src/hb-backend.h
index df0aabcdb..baeded20e 100644
--- a/gtk/src/hb-backend.h
+++ b/gtk/src/hb-backend.h
@@ -80,7 +80,13 @@ typedef struct
#define GHB_FRAMERATE 3
const gchar* ghb_version(void);
-void ghb_vquality_range(signal_user_data_t *ud, gint *min, gint *max);
+void ghb_vquality_range(
+ signal_user_data_t *ud,
+ gdouble *min,
+ gdouble *max,
+ gdouble *step,
+ gdouble *page,
+ gint *digits);
//const gchar* ghb_get_rate_string(gint rate, gint type);
void ghb_backend_init(GtkBuilder *builder, gint debug, gint update);
void ghb_backend_close(void);
@@ -123,7 +129,6 @@ gint ghb_calculate_target_bitrate(GValue *settings, gint titleindex);
gchar* ghb_dvd_volname(const gchar *device);
gint ghb_get_title_number(gint titleindex);
-gint ghb_guess_bitrate(GValue *settings);
gboolean ghb_validate_container(signal_user_data_t *ud);
gboolean ghb_validate_vquality(GValue *settings);
gboolean ghb_validate_audio(signal_user_data_t *ud);
diff --git a/gtk/src/internal_defaults.xml b/gtk/src/internal_defaults.xml
index bd5ea7441..c445cdddf 100644
--- a/gtk/src/internal_defaults.xml
+++ b/gtk/src/internal_defaults.xml
@@ -4,14 +4,10 @@
<dict>
<key>Initialization</key>
<dict>
- <key>crop_bottom</key>
- <integer>0</integer>
- <key>crop_left</key>
- <integer>0</integer>
- <key>crop_right</key>
- <integer>0</integer>
- <key>crop_top</key>
- <integer>0</integer>
+ <key>anamorphic</key>
+ <true />
+ <key>autoscale</key>
+ <false />
<key>end_chapter</key>
<integer>100</integer>
<key>folder</key>
@@ -29,9 +25,9 @@
<key>preset_type_normal</key>
<true />
<key>scale_height</key>
- <integer>480</integer>
+ <integer>0</integer>
<key>scale_width</key>
- <integer>720</integer>
+ <integer>0</integer>
<key>start_chapter</key>
<integer>1</integer>
<key>title</key>
@@ -75,6 +71,16 @@
<key>audio_list</key>
<array>
</array>
+ <key>tweak_PictureDecomb</key>
+ <string></string>
+ <key>tweak_PictureDetelecine</key>
+ <string></string>
+ <key>vquality_type_bitrate</key>
+ <false />
+ <key>vquality_type_constant</key>
+ <false />
+ <key>vquality_type_target</key>
+ <false />
</dict>
<key>Preferences</key>
<dict>
@@ -90,8 +96,6 @@
<false />
<key>hbfd_feature</key>
<false />
- <key>linear_vquality</key>
- <false />
<key>nocheckvquality</key>
<false />
<key>noscale</key>
@@ -103,102 +107,125 @@
<key>version</key>
<string>0.1</string>
</dict>
- <key>Presets</key>
+ <key>XlatPresets</key>
<dict>
<key>anamorphic</key>
<true />
- <key>autocrop</key>
- <true />
<key>autoscale</key>
<false />
- <key>chapter_markers</key>
+ <key>vquality_type_bitrate</key>
+ <false />
+ <key>vquality_type_constant</key>
+ <false />
+ <key>vquality_type_target</key>
+ <false />
+ </dict>
+ <key>Presets</key>
+ <dict>
+ <key>PictureAutoCrop</key>
+ <true />
+ <key>ChapterMarkers</key>
<true />
<key>constant_rate_factor</key>
<true />
- <key>container</key>
+ <key>FileFormat</key>
<string>mp4</string>
- <key>deblock</key>
+ <key>Folder</key>
+ <false />
+ <key>PictureDeblock</key>
<integer>0</integer>
- <key>decomb</key>
+ <key>PictureDecomb</key>
<false />
<key>Default</key>
<false />
- <key>deinterlace</key>
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureLeftCrop</key>
+ <integer>0</integer>
+ <key>PictureRightCrop</key>
+ <integer>0</integer>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
<string>none</string>
- <key>denoise</key>
+ <key>PictureDenoise</key>
<string>none</string>
- <key>detelecine</key>
+ <key>PictureDetelecine</key>
<true />
<key>directqp</key>
<false />
- <key>forced_subtitles</key>
+ <key>SubtitlesForced</key>
<true />
- <key>framerate</key>
+ <key>VideoFramerate</key>
<string>source</string>
- <key>grayscale</key>
+ <key>VideoGrayScale</key>
<false />
- <key>http_optimize_mp4</key>
+ <key>Mp4HttpOptimize</key>
<false />
- <key>ipod_file</key>
+ <key>Mp4iPodCompatible</key>
<false />
- <key>keep_aspect</key>
+ <key>PictureKeepRatio</key>
<true />
- <key>large_mp4</key>
+ <key>Mp4LargeFile</key>
<false />
- <key>max_height</key>
+ <key>ModDimensions</key>
+ <true />
+ <key>PicturePAR</key>
+ <integer>2</integer>
+ <key>PictureHeight</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PictureWidth</key>
<integer>0</integer>
- <key>pref_audio_list</key>
+ <key>AudioList</key>
<array>
<dict>
- <key>audio_bitrate</key>
+ <key>AudioBitrate</key>
<string>192</string>
- <key>audio_codec</key>
+ <key>AudioEncoder</key>
<string>ac3</string>
- <key>audio_drc</key>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ <key>AudioTrackDRCSlider</key>
<real>1</real>
- <key>audio_mix</key>
+ <key>AudioMixdown</key>
<string>dpl2</string>
- <key>audio_rate</key>
+ <key>AudioSamplerate</key>
<string>source</string>
</dict>
</array>
- <key>preset_description</key>
+ <key>PresetDescription</key>
<string></string>
- <key>preset_name</key>
- <string></string>
- <key>preset_type</key>
+ <key>PresetName</key>
+ <string>Name Missing</string>
+ <key>Type</key>
<integer>1</integer>
- <key>round_dimensions</key>
- <true />
- <key>source_audio_lang</key>
+ <key>SourceAudioLang</key>
<string>und</string>
- <key>subtitle_lang</key>
+ <key>Subtitles</key>
<string>none</string>
- <key>turbo</key>
+ <key>VideoTurboTwoPass</key>
<false />
- <key>tweak_decomb</key>
- <string></string>
- <key>tweak_detelecine</key>
- <string></string>
- <key>two_pass</key>
+ <key>UsesPictureFilters</key>
+ <true />
+ <key>UsesPictureSettings</key>
+ <integer>2</integer>
+ <key>UsesMaxPictureSettings</key>
+ <false />
+ <key>VideoTwoPass</key>
<false />
- <key>video_bitrate</key>
+ <key>VideoAvgBitrate</key>
<integer>1800</integer>
- <key>video_codec</key>
+ <key>VideoEncoder</key>
<string>x264</string>
- <key>video_quality</key>
- <integer>64</integer>
- <key>video_target_size</key>
+ <key>VideoQualityType</key>
+ <integer>2</integer>
+ <key>VideoQualitySlider</key>
+ <real>0.60</real>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
- <false />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
- <false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string></string>
</dict>
</dict>
diff --git a/gtk/src/main.c b/gtk/src/main.c
index d20de0e52..c9021c587 100644
--- a/gtk/src/main.c
+++ b/gtk/src/main.c
@@ -533,7 +533,7 @@ main (int argc, char *argv[])
// since it can't be done automatically
GtkTextView *textview;
GtkTextBuffer *buffer;
- textview = GTK_TEXT_VIEW(GHB_WIDGET (ud->builder, "x264_options"));
+ textview = GTK_TEXT_VIEW(GHB_WIDGET (ud->builder, "x264Option"));
buffer = gtk_text_view_get_buffer (textview);
g_signal_connect(buffer, "changed", (GCallback)x264_entry_changed_cb, ud);
@@ -570,14 +570,14 @@ main (int argc, char *argv[])
}
gboolean tweaks = ghb_settings_get_boolean(ud->settings, "allow_tweaks");
GtkWidget *widget;
- widget = GHB_WIDGET(ud->builder, "deinterlace");
+ widget = GHB_WIDGET(ud->builder, "PictureDeinterlace");
tweaks ? gtk_widget_hide(widget) : gtk_widget_show(widget);
- widget = GHB_WIDGET(ud->builder, "tweak_deinterlace");
+ widget = GHB_WIDGET(ud->builder, "tweak_PictureDeinterlace");
!tweaks ? gtk_widget_hide(widget) : gtk_widget_show(widget);
- widget = GHB_WIDGET(ud->builder, "denoise");
+ widget = GHB_WIDGET(ud->builder, "PictureDenoise");
tweaks ? gtk_widget_hide(widget) : gtk_widget_show(widget);
- widget = GHB_WIDGET(ud->builder, "tweak_denoise");
+ widget = GHB_WIDGET(ud->builder, "tweak_PictureDenoise");
!tweaks ? gtk_widget_hide(widget) : gtk_widget_show(widget);
gchar *source = ghb_settings_get_string(ud->settings, "default_source");
diff --git a/gtk/src/makedeps.c b/gtk/src/makedeps.c
index d0f084c9f..b094054e8 100644
--- a/gtk/src/makedeps.c
+++ b/gtk/src/makedeps.c
@@ -27,41 +27,42 @@ static dependency_t dep_map[] =
{"title", "title", "none", TRUE},
{"title", "start_chapter", "none", TRUE},
{"title", "end_chapter", "none", TRUE},
- {"vquality_type_bitrate", "video_bitrate", "TRUE", FALSE},
- {"vquality_type_target", "video_target_size", "TRUE", FALSE},
- {"vquality_type_constant", "video_quality", "TRUE", FALSE},
+ {"vquality_type_bitrate", "VideoAvgBitrate", "TRUE", FALSE},
+ {"vquality_type_target", "VideoTargetSize", "TRUE", FALSE},
+ {"vquality_type_constant", "VideoQualitySlider", "TRUE", FALSE},
{"vquality_type_constant", "constant_rate_factor", "TRUE", FALSE},
- {"vquality_type_constant", "two_pass", "TRUE", TRUE},
- {"vquality_type_constant", "turbo", "TRUE", TRUE},
- {"two_pass", "turbo", "TRUE", FALSE},
- {"container", "large_mp4", "mp4|m4v", FALSE},
- {"container", "http_optimize_mp4", "mp4|m4v", FALSE},
- {"container", "ipod_file", "mp4|m4v", FALSE},
- {"decomb", "deinterlace", "TRUE", TRUE},
- {"decomb", "tweak_deinterlace", "TRUE", TRUE},
- {"autocrop", "crop_top", "FALSE", FALSE},
- {"autocrop", "crop_bottom", "FALSE", FALSE},
- {"autocrop", "crop_left", "FALSE", FALSE},
- {"autocrop", "crop_right", "FALSE", FALSE},
+ {"vquality_type_constant", "VideoTwoPass", "TRUE", TRUE},
+ {"vquality_type_constant", "VideoTurboTwoPass", "TRUE", TRUE},
+ {"VideoTwoPass", "VideoTurboTwoPass", "TRUE", FALSE},
+ {"FileFormat", "Mp4LargeFile", "mp4|m4v", FALSE},
+ {"FileFormat", "Mp4HttpOptimize", "mp4|m4v", FALSE},
+ {"FileFormat", "Mp4iPodCompatible", "mp4|m4v", FALSE},
+ {"PictureDecomb", "PictureDeinterlace", "TRUE", TRUE},
+ {"PictureDecomb", "tweak_PictureDeinterlace", "TRUE", TRUE},
+ {"PictureAutoCrop", "PictureTopCrop", "FALSE", FALSE},
+ {"PictureAutoCrop", "PictureBottomCrop", "FALSE", FALSE},
+ {"PictureAutoCrop", "PictureLeftCrop", "FALSE", FALSE},
+ {"PictureAutoCrop", "PictureRightCrop", "FALSE", FALSE},
{"autoscale", "scale_width", "FALSE", FALSE},
{"autoscale", "scale_height", "FALSE", FALSE},
- {"anamorphic", "keep_aspect", "FALSE", FALSE},
+ {"anamorphic", "PictureKeepRatio", "FALSE", FALSE},
{"anamorphic", "scale_height", "FALSE", FALSE},
- {"keep_aspect", "scale_height", "FALSE", FALSE},
- {"video_codec", "x264_tab", "x264", FALSE},
- {"video_codec", "x264_tab_label", "x264", FALSE},
- {"video_codec", "ipod_file", "x264", FALSE},
- {"audio_codec", "audio_bitrate", "ac3", TRUE},
- {"audio_codec", "audio_rate", "ac3", TRUE},
- {"audio_codec", "audio_mix", "ac3", TRUE},
- {"audio_codec", "audio_drc", "ac3", TRUE},
+ {"PictureKeepRatio", "scale_height", "FALSE", FALSE},
+ {"VideoEncoder", "x264_tab", "x264", FALSE},
+ {"VideoEncoder", "x264_tab_label", "x264", FALSE},
+ {"VideoEncoder", "Mp4iPodCompatible", "x264", FALSE},
+ {"VideoEncoder", "directqp", "x264|ffmpeg", FALSE},
+ {"AudioEncoder", "AudioBitrate", "ac3", TRUE},
+ {"AudioEncoder", "AudioSamplerate", "ac3", TRUE},
+ {"AudioEncoder", "AudioMixdown", "ac3", TRUE},
+ {"AudioEncoder", "AudioTrackDRCSlider", "ac3", TRUE},
{"x264_bframes", "x264_weighted_bframes", "0", TRUE},
{"x264_bframes", "x264_bpyramid", "<2", TRUE},
{"x264_bframes", "x264_direct", "0", TRUE},
{"x264_refs", "x264_mixed_refs", "<2", TRUE},
{"x264_cabac", "x264_trellis", "TRUE", FALSE},
{"x264_me", "x264_merange", "umh|esa", FALSE},
- {"chapter_markers", "chapters_list", "TRUE", FALSE},
+ {"ChapterMarkers", "chapters_list", "TRUE", FALSE},
{"use_source_name", "chapters_in_destination", "TRUE", FALSE},
};
diff --git a/gtk/src/preset_xlat.c b/gtk/src/preset_xlat.c
index b19d009bc..d3fad530e 100644
--- a/gtk/src/preset_xlat.c
+++ b/gtk/src/preset_xlat.c
@@ -13,24 +13,7 @@ typedef struct
gchar *lin_val;
} value_map_t;
-static value_map_t vcodec_xlat[] =
-{
- {"MPEG-4 (FFmpeg)", "ffmpeg"},
- {"MPEG-4 (XviD)", "xvid"},
- {"H.264 (x264)", "x264"},
- {"VP3 (Theora)", "theora"},
- {NULL,NULL}
-};
-
-static value_map_t acodec_xlat[] =
-{
- {"AAC (faac)", "faac"},
- {"AC3 Passthru", "ac3"},
- {"MP3 (lame)", "lame"},
- {"Vorbis (vorbis)", "vorbis"},
- {NULL,NULL}
-};
-
+#if 0
static value_map_t subtitle_xlat[] =
{
{ "None", "none" },
@@ -224,6 +207,15 @@ static value_map_t subtitle_xlat[] =
{NULL, NULL}
};
+static value_map_t vcodec_xlat[] =
+{
+ {"MPEG-4 (FFmpeg)", "ffmpeg"},
+ {"MPEG-4 (XviD)", "xvid"},
+ {"H.264 (x264)", "x264"},
+ {"VP3 (Theora)", "theora"},
+ {NULL,NULL}
+};
+
value_map_t container_xlat[] =
{
{"MP4 file", "mp4"},
@@ -248,6 +240,33 @@ value_map_t framerate_xlat[] =
{NULL, NULL}
};
+value_map_t deint_xlat[] =
+{
+ {"0", "none"},
+ {"1", "fast"},
+ {"2", "slow"},
+ {"3", "slower"},
+ {NULL, NULL}
+};
+
+value_map_t denoise_xlat[] =
+{
+ {"0", "none"},
+ {"1", "weak"},
+ {"2", "medium"},
+ {"3", "strong"},
+ {NULL, NULL}
+};
+
+static value_map_t acodec_xlat[] =
+{
+ {"AAC (faac)", "faac"},
+ {"AC3 Passthru", "ac3"},
+ {"MP3 (lame)", "lame"},
+ {"Vorbis (vorbis)", "vorbis"},
+ {NULL,NULL}
+};
+
value_map_t samplerate_xlat[] =
{
{"Auto", "source"},
@@ -269,89 +288,73 @@ value_map_t mix_xlat[] =
{"AC3 Passthru", "none"},
{NULL, NULL}
};
-
-value_map_t deint_xlat[] =
-{
- {"0", "none"},
- {"1", "fast"},
- {"2", "slow"},
- {"3", "slower"},
- {NULL, NULL}
-};
-
-value_map_t denoise_xlat[] =
-{
- {"0", "none"},
- {"1", "weak"},
- {"2", "medium"},
- {"3", "strong"},
- {NULL, NULL}
-};
+#endif
typedef struct
{
gchar *mac_key;
gchar *lin_key;
value_map_t *value_map;
+ gboolean same;
gboolean ignore;
} key_map_t;
key_map_t key_map[] =
{
- {"Audio1Bitrate", NULL, NULL, FALSE},
- {"Audio1Encoder", NULL, NULL, FALSE},
- {"Audio1Mixdown", NULL, NULL, FALSE},
- {"Audio1Samplerate", NULL, NULL, FALSE},
- {"Audio1Track", NULL, NULL, FALSE},
- {"Audio1TrackDescription", NULL, NULL, FALSE},
- {"Audio1TrackDRCSlider", NULL, NULL, FALSE},
- {"Audio2Bitrate", NULL, NULL, FALSE},
- {"Audio2Encoder", NULL, NULL, FALSE},
- {"Audio2Mixdown", NULL, NULL, FALSE},
- {"Audio2Samplerate", NULL, NULL, FALSE},
- {"Audio2Track", NULL, NULL, FALSE},
- {"Audio2TrackDescription", NULL, NULL, FALSE},
- {"Audio2TrackDRCSlider", NULL, NULL, FALSE},
- {"ChapterMarkers", "chapter_markers", NULL, FALSE},
- {"Default", "Default", NULL, FALSE},
- {"FileFormat", "container", container_xlat, FALSE},
- {"Folder", NULL, NULL, TRUE},
- {"Mp4HttpOptimize", "http_optimize_mp4", NULL, FALSE},
- {"Mp4iPodCompatible", "ipod_file", NULL, FALSE},
- {"Mp4LargeFile", "large_mp4", NULL, FALSE},
- {"PictureAutoCrop", "autocrop", NULL, FALSE},
- {"PictureBottomCrop", NULL, NULL, TRUE},
- {"PictureDeblock", "deblock", NULL, FALSE},
- {"PictureDecomb", "decomb", NULL, FALSE},
- {"PictureDeinterlace", "deinterlace", deint_xlat, FALSE},
- {"PictureDenoise", "denoise", denoise_xlat, FALSE},
- {"PictureDetelecine", "detelecine", NULL, FALSE},
- {"PictureHeight", "max_height", NULL, FALSE},
- {"PictureKeepRatio", "keep_aspect", NULL, FALSE},
- {"PictureLeftCrop", NULL, NULL, TRUE},
- {"PicturePAR", NULL, NULL, FALSE},
- {"PictureRightCrop", NULL, NULL, TRUE},
- {"PictureTopCrop", NULL, NULL, TRUE},
- {"PictureWidth", "max_width", NULL, FALSE},
- {"PresetDescription", "preset_description", NULL, FALSE},
- {"PresetName", "preset_name", NULL, FALSE},
- {"Subtitles", "subtitle_lang", subtitle_xlat, FALSE},
- {"SubtitlesForced", "forced_subtitles", NULL, FALSE},
- {"Type", NULL, NULL, TRUE},
- {"UsesMaxPictureSettings", NULL, NULL, FALSE},
- {"UsesPictureFilters", NULL, NULL, TRUE},
- {"UsesPictureSettings", NULL, NULL, FALSE},
- {"VFR", NULL, NULL, TRUE},
- {"VideoAvgBitrate", "video_bitrate", NULL, FALSE},
- {"VideoEncoder", "video_codec", vcodec_xlat, FALSE},
- {"VideoFramerate", "framerate", framerate_xlat, FALSE},
- {"VideoGrayScale", "grayscale", NULL, FALSE},
- {"VideoQualitySlider", NULL, NULL, FALSE},
- {"VideoQualityType", NULL, NULL, FALSE},
- {"VideoTargetSize", "video_target_size", NULL, FALSE},
- {"VideoTwoPass", "two_pass", NULL, FALSE},
- {"VideoTurboTwoPass", "turbo", NULL, FALSE},
- {"x264Option", "x264_options", NULL, FALSE},
+ {"Audio1Bitrate", NULL, NULL, FALSE, FALSE},
+ {"Audio1Encoder", NULL, NULL, FALSE, FALSE},
+ {"Audio1Mixdown", NULL, NULL, FALSE, FALSE},
+ {"Audio1Samplerate", NULL, NULL, FALSE, FALSE},
+ {"Audio1Track", NULL, NULL, FALSE, FALSE},
+ {"Audio1TrackDescription", NULL, NULL, FALSE, FALSE},
+ {"Audio1TrackDRCSlider", NULL, NULL, FALSE, FALSE},
+ {"Audio2Bitrate", NULL, NULL, FALSE, FALSE},
+ {"Audio2Encoder", NULL, NULL, FALSE, FALSE},
+ {"Audio2Mixdown", NULL, NULL, FALSE, FALSE},
+ {"Audio2Samplerate", NULL, NULL, FALSE, FALSE},
+ {"Audio2Track", NULL, NULL, FALSE, FALSE},
+ {"Audio2TrackDescription", NULL, NULL, FALSE, FALSE},
+ {"Audio2TrackDRCSlider", NULL, NULL, FALSE, FALSE},
+ {"ChapterMarkers", NULL, NULL, TRUE, FALSE},
+ {"Default", NULL, NULL, TRUE, FALSE},
+ {"FileFormat", NULL, NULL, TRUE, FALSE},
+ {"Folder", NULL, NULL, TRUE, FALSE},
+ {"Mp4HttpOptimize", NULL, NULL, TRUE, FALSE},
+ {"Mp4iPodCompatible", NULL, NULL, TRUE, FALSE},
+ {"Mp4LargeFile", NULL, NULL, TRUE, FALSE},
+ {"PictureAutoCrop", NULL, NULL, TRUE, FALSE},
+ {"PictureBottomCrop", NULL, NULL, TRUE, FALSE},
+ {"PictureDeblock", NULL, NULL, TRUE, FALSE},
+ {"PictureDecomb", NULL, NULL, TRUE, FALSE},
+ {"PictureDeinterlace", NULL, NULL, TRUE, FALSE},
+ {"PictureDenoise", NULL, NULL, TRUE, FALSE},
+ {"PictureDetelecine", NULL, NULL, TRUE, FALSE},
+ {"PictureHeight", NULL, NULL, TRUE, FALSE},
+ {"PictureKeepRatio", NULL, NULL, TRUE, FALSE},
+ {"PictureLeftCrop", NULL, NULL, TRUE, FALSE},
+ {"PicturePAR", NULL, NULL, TRUE, FALSE},
+ {"PictureRightCrop", NULL, NULL, TRUE, FALSE},
+ {"PictureTopCrop", NULL, NULL, TRUE, FALSE},
+ {"PictureWidth", NULL, NULL, TRUE, FALSE},
+ {"PresetDescription", NULL, NULL, TRUE, FALSE},
+ {"PresetName", NULL, NULL, TRUE, FALSE},
+ {"Subtitles", NULL, NULL, TRUE, FALSE},
+ {"SubtitlesForced", NULL, NULL, TRUE, FALSE},
+ {"Type", NULL, NULL, TRUE, FALSE},
+ {"UsesMaxPictureSettings", NULL, NULL, TRUE, FALSE},
+ {"UsesPictureFilters", NULL, NULL, TRUE, FALSE},
+ {"UsesPictureSettings", NULL, NULL, TRUE, FALSE},
+ {"VFR", NULL, NULL, FALSE, TRUE},
+ {"VideoAvgBitrate", NULL, NULL, TRUE, FALSE},
+ {"VideoEncoder", NULL, NULL, TRUE, FALSE},
+ {"VideoFramerate", NULL, NULL, TRUE, FALSE},
+ {"VideoGrayScale", NULL, NULL, TRUE, FALSE},
+ {"VideoQualitySlider", NULL, NULL, TRUE, FALSE},
+ {"VideoQualityType", NULL, NULL, TRUE, FALSE},
+ {"VideoTargetSize", NULL, NULL, TRUE, FALSE},
+ {"VideoTwoPass", NULL, NULL, TRUE, FALSE},
+ {"VideoTurboTwoPass", NULL, NULL, TRUE, FALSE},
+ {"x264Option", NULL, NULL, TRUE, FALSE},
{NULL, NULL}
};
@@ -381,7 +384,11 @@ value_xlat(
GValue *mac_val)
{
GValue *gval, *def_val;
- const gchar *lin_key = key_map[key_index].lin_key;
+ const gchar *lin_key;
+ if (key_map[key_index].same)
+ lin_key = key_map[key_index].mac_key;
+ else
+ lin_key = key_map[key_index].lin_key;
value_map_t *value_map = key_map[key_index].value_map;
def_val = ghb_dict_lookup(defaults, lin_key);
@@ -437,156 +444,49 @@ value_xlat(
key_map_t audio_key_map[] =
{
- {"Audio1Bitrate", "audio_bitrate", NULL, FALSE},
- {"Audio1Encoder", "audio_codec", acodec_xlat, FALSE},
- {"Audio1Mixdown", "audio_mix", mix_xlat, FALSE},
- {"Audio1Samplerate", "audio_rate", samplerate_xlat, FALSE},
- {"Audio1Track", NULL, NULL, TRUE},
- {"Audio1TrackDescription", NULL, NULL, TRUE},
- {"Audio1TrackDRCSlider", "audio_drc", NULL, FALSE},
- {"Audio2Bitrate", "audio_bitrate", NULL, FALSE},
- {"Audio2Encoder", "audio_codec", acodec_xlat, FALSE},
- {"Audio2Mixdown", "audio_mix", mix_xlat, FALSE},
- {"Audio2Samplerate", "audio_rate", samplerate_xlat, FALSE},
- {"Audio2Track", NULL, NULL, TRUE},
- {"Audio2TrackDescription", NULL, NULL, TRUE},
- {"Audio2TrackDRCSlider", "audio_drc", NULL, FALSE},
+ {"Audio1Bitrate", "AudioBitrate", NULL, FALSE, FALSE},
+ {"Audio1Encoder", "AudioEncoder", NULL, FALSE, FALSE},
+ {"Audio1Mixdown", "AudioMixdown", NULL, FALSE},
+ {"Audio1Samplerate", "AudioSamplerate", NULL, FALSE, FALSE},
+ {"Audio1Track", "AudioTrack", NULL, FALSE, FALSE},
+ {"Audio1TrackDescription", "AudioTrackDescription", NULL, FALSE, FALSE},
+ {"Audio1TrackDRCSlider", "AudioTrackDRCSlider", NULL, FALSE, FALSE},
+ {"Audio2Bitrate", "AudioBitrate", NULL, FALSE, FALSE},
+ {"Audio2Encoder", "AudioEncoder", NULL, FALSE, FALSE},
+ {"Audio2Mixdown", "AudioMixdown", NULL, FALSE, FALSE},
+ {"Audio2Samplerate", "AudioSamplerate", NULL, FALSE, FALSE},
+ {"Audio2Track", "AudioTrack", NULL, FALSE, FALSE},
+ {"Audio2TrackDescription", "AudioTrackDescription", NULL, FALSE, FALSE},
+ {"Audio2TrackDRCSlider", "AudioTrackDRCSlider", NULL, FALSE, FALSE},
{NULL, NULL}
};
static void
hard_value_xlat(GValue *lin_dict, const gchar *mac_key, GValue *mac_val)
{
- if (strcmp(mac_key, "VideoQualitySlider") == 0)
- {
- gint vquality;
-
- vquality = (ghb_value_double(mac_val) + 0.005) * 100.0;
- ghb_dict_insert(lin_dict, "video_quality",
- ghb_int_value_new(vquality));
- }
- else if (strcmp(mac_key, "UsesMaxPictureSettings") == 0)
- {
- GValue *gval;
-
- gval = ghb_dict_lookup(lin_dict, "autoscale");
- if (gval == NULL && ghb_value_boolean(mac_val))
- {
- ghb_dict_insert(lin_dict, "autoscale", ghb_boolean_value_new(TRUE));
- }
- }
- else if (strcmp(mac_key, "UsesPictureSettings") == 0)
- {
- GValue *gval;
-
- gval = ghb_dict_lookup(lin_dict, "autoscale");
- if (gval == NULL && ghb_value_int(mac_val) == 2)
- {
- ghb_dict_insert(lin_dict, "autoscale", ghb_boolean_value_new(TRUE));
- }
- }
- else if (strcmp(mac_key, "PicturePAR") == 0)
- {
- gint ana;
-
- ana = ghb_value_int(mac_val);
- switch (ana)
- {
- case 0:
- {
- ghb_dict_insert(lin_dict, "anamorphic",
- ghb_boolean_value_new(FALSE));
- ghb_dict_insert(lin_dict, "round_dimensions",
- ghb_boolean_value_new(TRUE));
- } break;
- case 1:
- {
- ghb_dict_insert(lin_dict, "anamorphic",
- ghb_boolean_value_new(TRUE));
- ghb_dict_insert(lin_dict, "round_dimensions",
- ghb_boolean_value_new(FALSE));
- } break;
- case 2:
- {
- ghb_dict_insert(lin_dict, "anamorphic",
- ghb_boolean_value_new(TRUE));
- ghb_dict_insert(lin_dict, "round_dimensions",
- ghb_boolean_value_new(TRUE));
- } break;
- default:
- {
- ghb_dict_insert(lin_dict, "anamorphic",
- ghb_boolean_value_new(TRUE));
- ghb_dict_insert(lin_dict, "round_dimensions",
- ghb_boolean_value_new(TRUE));
- } break;
- }
- }
- else if (strcmp(mac_key, "VideoQualityType") == 0)
- {
- // VideoQualityType/0/1/2 - vquality_type_/target/bitrate/constant
- gint vqtype;
-
- vqtype = ghb_value_int(mac_val);
- switch (vqtype)
- {
- case 0:
- {
- ghb_dict_insert(lin_dict, "vquality_type_target",
- ghb_boolean_value_new(TRUE));
- ghb_dict_insert(lin_dict, "vquality_type_bitrate",
- ghb_boolean_value_new(FALSE));
- ghb_dict_insert(lin_dict, "vquality_type_constant",
- ghb_boolean_value_new(FALSE));
- } break;
- case 1:
- {
- ghb_dict_insert(lin_dict, "vquality_type_target",
- ghb_boolean_value_new(FALSE));
- ghb_dict_insert(lin_dict, "vquality_type_bitrate",
- ghb_boolean_value_new(TRUE));
- ghb_dict_insert(lin_dict, "vquality_type_constant",
- ghb_boolean_value_new(FALSE));
- } break;
- case 2:
- {
- ghb_dict_insert(lin_dict, "vquality_type_target",
- ghb_boolean_value_new(FALSE));
- ghb_dict_insert(lin_dict, "vquality_type_bitrate",
- ghb_boolean_value_new(FALSE));
- ghb_dict_insert(lin_dict, "vquality_type_constant",
- ghb_boolean_value_new(TRUE));
- } break;
- default:
- {
- ghb_dict_insert(lin_dict, "vquality_type_target",
- ghb_boolean_value_new(FALSE));
- ghb_dict_insert(lin_dict, "vquality_type_bitrate",
- ghb_boolean_value_new(FALSE));
- ghb_dict_insert(lin_dict, "vquality_type_constant",
- ghb_boolean_value_new(TRUE));
- } break;
- }
- }
- else
{
gint key_index;
GValue *audio_defaults;
audio_defaults = ghb_array_get_nth(
- ghb_dict_lookup(defaults, "pref_audio_list"), 0);
+ ghb_dict_lookup(defaults, "AudioList"), 0);
key_index = key_xlat(audio_key_map, mac_key);
if (key_index >= 0)
{
gint audio_index, count, ii;
GValue *alist, *adict, *val;
+ const gchar *lin_key;
+ if (audio_key_map[key_index].same)
+ lin_key = audio_key_map[key_index].mac_key;
+ else
+ lin_key = audio_key_map[key_index].lin_key;
audio_index = mac_key[5] - '1';
- alist = ghb_dict_lookup(lin_dict, "pref_audio_list");
+ alist = ghb_dict_lookup(lin_dict, "AudioList");
if (alist == NULL)
{
alist = ghb_array_value_new(8);
- ghb_dict_insert(lin_dict, "pref_audio_list", alist);
+ ghb_dict_insert(lin_dict, "AudioList", alist);
}
count = ghb_array_len(alist);
for (ii = count; ii <= audio_index; ii++)
@@ -598,8 +498,7 @@ hard_value_xlat(GValue *lin_dict, const gchar *mac_key, GValue *mac_val)
val = value_xlat(audio_defaults, audio_key_map, key_index, mac_val);
if (val)
{
- ghb_dict_insert(adict,
- g_strdup(audio_key_map[key_index].lin_key), val);
+ ghb_dict_insert(adict, g_strdup(lin_key), val);
}
}
}
@@ -623,13 +522,18 @@ parse_preset_dict(GValue *mac_dict, GValue *lin_dict)
key_index = key_xlat(key_map, key);
if (key_index >= 0)
{ // The simple translations
- if (key_map[key_index].lin_key)
+ const gchar *lin_key;
+
+ if (key_map[key_index].same)
+ lin_key = key_map[key_index].mac_key;
+ else
+ lin_key = key_map[key_index].lin_key;
+ if (lin_key)
{
val = value_xlat(defaults, key_map, key_index, mac_val);
if (val)
{
- ghb_dict_insert(lin_dict,
- g_strdup(key_map[key_index].lin_key), val);
+ ghb_dict_insert(lin_dict, g_strdup(lin_key), val);
}
}
else
@@ -660,13 +564,13 @@ parse_preset_array(GValue *mac_array, GValue *lin_array)
gval = ghb_dict_lookup(mac_dict, "PresetName");
if (gval)
{
- ghb_dict_insert(lin_dict, g_strdup("preset_name"),
+ ghb_dict_insert(lin_dict, g_strdup("PresetName"),
ghb_value_dup(gval));
}
gval = ghb_dict_lookup(mac_dict, "PresetDescription");
if (gval)
{
- ghb_dict_insert(lin_dict, g_strdup("preset_description"),
+ ghb_dict_insert(lin_dict, g_strdup("PresetDescription"),
ghb_value_dup(gval));
}
gval = ghb_dict_lookup(mac_dict, "Folder");
@@ -676,14 +580,16 @@ parse_preset_array(GValue *mac_array, GValue *lin_array)
mval = ghb_dict_lookup(mac_dict, "ChildrenArray");
lval = ghb_array_value_new(32);
- ghb_dict_insert(lin_dict, g_strdup("preset_folder"), lval);
- ghb_dict_insert(lin_dict, g_strdup("preset_type"),
- ghb_int_value_new(2));
+ ghb_dict_insert(lin_dict, g_strdup("ChildrenArray"), lval);
+ ghb_dict_insert(lin_dict, g_strdup("Folder"),
+ ghb_boolean_value_new(TRUE));
+ ghb_dict_insert(lin_dict, g_strdup("Type"),
+ ghb_int_value_new(0));
parse_preset_array(mval, lval);
}
else
{ // Normal preset
- ghb_dict_insert(lin_dict, g_strdup("preset_type"),
+ ghb_dict_insert(lin_dict, g_strdup("Type"),
ghb_int_value_new(0));
parse_preset_dict(mac_dict, lin_dict);
}
diff --git a/gtk/src/presets.c b/gtk/src/presets.c
index 5f120e5b7..bb5e2e70f 100644
--- a/gtk/src/presets.c
+++ b/gtk/src/presets.c
@@ -24,14 +24,14 @@
#include "resources.h"
#include "presets.h"
#include "values.h"
+#include "lang.h"
#define MAX_NESTED_PRESET 3
-// These are flags. One bit for each feature
enum
{
- PRESETS_CUST = 0x01,
- PRESETS_FOLDER = 0x02,
+ PRESETS_BUILTIN = 0,
+ PRESETS_CUSTOM
};
static GValue *presetsPlist = NULL;
@@ -40,6 +40,7 @@ static GValue *prefsPlist = NULL;
static const GValue* preset_dict_get_value(GValue *dict, const gchar *key);
static void store_plist(GValue *plist, const gchar *name);
+static void store_presets(void);
// This only handle limited depth
GtkTreePath*
@@ -95,18 +96,19 @@ preset_path_from_indices(GValue *presets, gint *indices, gint len)
for (ii = 0; ii < len; ii++)
{
GValue *dict;
- gint count, ptype;
+ gint count, folder;
const GValue *name;
count = ghb_array_len(presets);
if (indices[ii] >= count) break;
dict = ghb_array_get_nth(presets, indices[ii]);
- name = ghb_dict_lookup(dict, "preset_name");
- ghb_array_append(path, ghb_value_dup(name));
- ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
- if (!(ptype & PRESETS_FOLDER))
+ name = ghb_dict_lookup(dict, "PresetName");
+ if (name)
+ ghb_array_append(path, ghb_value_dup(name));
+ folder = ghb_value_boolean(preset_dict_get_value(dict, "Folder"));
+ if (!folder)
break;
- presets = ghb_dict_lookup(dict, "preset_folder");
+ presets = ghb_dict_lookup(dict, "ChildrenArray");
}
return path;
}
@@ -225,7 +227,7 @@ preset_path_cmp(const GValue *path1, const GValue *path2)
static GValue*
presets_get_dict(GValue *presets, gint *indices, gint len)
{
- gint ii, count, ptype;
+ gint ii, count, folder;
GValue *dict = NULL;
g_debug("presets_get_dict ()");
@@ -236,10 +238,10 @@ presets_get_dict(GValue *presets, gint *indices, gint len)
dict = ghb_array_get_nth(presets, indices[ii]);
if (ii < len-1)
{
- ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
- if (!(ptype & PRESETS_FOLDER))
+ folder = ghb_value_boolean(preset_dict_get_value(dict, "Folder"));
+ if (!folder)
return NULL;
- presets = ghb_dict_lookup(dict, "preset_folder");
+ presets = ghb_dict_lookup(dict, "ChildrenArray");
}
}
if (ii < len)
@@ -250,7 +252,7 @@ presets_get_dict(GValue *presets, gint *indices, gint len)
static GValue*
presets_get_folder(GValue *presets, gint *indices, gint len)
{
- gint ii, count, ptype;
+ gint ii, count, folder;
GValue *dict;
g_debug("presets_get_folder ()");
@@ -259,10 +261,10 @@ presets_get_folder(GValue *presets, gint *indices, gint len)
count = ghb_array_len(presets);
if (indices[ii] >= count) return NULL;
dict = ghb_array_get_nth(presets, indices[ii]);
- ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
- if (!(ptype & PRESETS_FOLDER))
+ folder = ghb_value_boolean(preset_dict_get_value(dict, "Folder"));
+ if (!folder)
break;
- presets = ghb_dict_lookup(dict, "preset_folder");
+ presets = ghb_dict_lookup(dict, "ChildrenArray");
}
if (ii < len)
return NULL;
@@ -279,21 +281,19 @@ plist_get_dict(GValue *presets, const gchar *name)
static const gchar*
preset_get_name(GValue *dict)
{
- return g_value_get_string(ghb_dict_lookup(dict, "preset_name"));
+ return g_value_get_string(preset_dict_get_value(dict, "PresetName"));
}
-gint
-ghb_preset_flags(GValue *dict)
+gboolean
+ghb_preset_folder(GValue *dict)
{
- const GValue *gval;
- gint ptype = 0;
+ return ghb_value_int(preset_dict_get_value(dict, "Folder"));
+}
- gval = preset_dict_get_value(dict, "preset_type");
- if (gval)
- {
- ptype = ghb_value_int(gval);
- }
- return ptype;
+gint
+ghb_preset_type(GValue *dict)
+{
+ return ghb_value_int(preset_dict_get_value(dict, "Type"));
}
static void
@@ -403,7 +403,7 @@ single_find_pos(GValue *presets, const gchar *name, gint type)
const gchar *str;
dict = ghb_array_get_nth(presets, ii);
str = preset_get_name(dict);
- ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
+ ptype = ghb_value_int(preset_dict_get_value(dict, "Type"));
if (strcasecmp(name, str) <= 0 && ptype == type)
{
return ii;
@@ -419,7 +419,8 @@ presets_find_pos(const GValue *path, gint type, gint *len)
{
GValue *nested;
GValue *val;
- gint count, ii, ptype;
+ gint count, ii;
+ gboolean folder;
gint *indices = NULL;
const gchar *name;
GValue *dict;
@@ -435,11 +436,11 @@ presets_find_pos(const GValue *path, gint type, gint *len)
indices[ii] = presets_find_element(nested, name);
if (indices[ii] == -1) return NULL;
dict = ghb_array_get_nth(nested, indices[ii]);
- ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
+ folder = ghb_value_boolean(preset_dict_get_value(dict, "Folder"));
nested = NULL;
- if (!(ptype & PRESETS_FOLDER))
+ if (!folder)
break;
- nested = ghb_dict_lookup(dict, "preset_folder");
+ nested = ghb_dict_lookup(dict, "ChildrenArray");
}
if (nested)
{
@@ -456,16 +457,16 @@ presets_find_pos(const GValue *path, gint type, gint *len)
static gint
preset_tree_depth(GValue *dict)
{
- gint ptype;
+ gboolean folder;
- ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
- if (ptype & PRESETS_FOLDER)
+ folder = ghb_value_boolean(preset_dict_get_value(dict, "Folder"));
+ if (folder)
{
gint depth = 0;
gint count, ii;
GValue *presets;
- presets = ghb_dict_lookup(dict, "preset_folder");
+ presets = ghb_dict_lookup(dict, "ChildrenArray");
count = ghb_array_len(presets);
for (ii = 0; ii < count; ii++)
{
@@ -489,7 +490,7 @@ preset_is_default(GValue *dict)
const GValue *val;
val = preset_dict_get_value(dict, "Default");
- return g_value_get_boolean(val);
+ return ghb_value_boolean(val);
}
static gint*
@@ -502,16 +503,16 @@ presets_find_default2(GValue *presets, gint *len)
for (ii = 0; ii < count; ii++)
{
GValue *dict;
- gint ptype;
+ gboolean folder;
dict = ghb_array_get_nth(presets, ii);
- ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
- if (ptype & PRESETS_FOLDER)
+ folder = ghb_value_boolean(preset_dict_get_value(dict, "Folder"));
+ if (folder)
{
GValue *nested;
gint pos = *len;
- nested = ghb_dict_lookup(dict, "preset_folder");
+ nested = ghb_dict_lookup(dict, "ChildrenArray");
(*len)++;
indices = presets_find_default2(nested, len);
if (indices)
@@ -551,10 +552,11 @@ ghb_preset_indices_from_path(
{
GValue *nested;
GValue *val;
- gint count, ii, ptype;
+ gint count, ii;
gint *indices = NULL;
const gchar *name;
GValue *dict;
+ gboolean folder;
g_debug("ghb_preset_indices_from_path () ");
nested = presets;
@@ -575,13 +577,13 @@ ghb_preset_indices_from_path(
if (ii < count-1)
{
dict = ghb_array_get_nth(nested, indices[ii]);
- ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
- if (!(ptype & PRESETS_FOLDER))
+ folder = ghb_value_boolean(preset_dict_get_value(dict, "Folder"));
+ if (!folder)
{
g_free(indices);
return NULL;
}
- nested = ghb_dict_lookup(dict, "preset_folder");
+ nested = ghb_dict_lookup(dict, "ChildrenArray");
}
}
*len = ii;
@@ -595,19 +597,41 @@ ghb_presets_get_type(
gint len)
{
GValue *dict;
- gint flags = 0;
+ gint type = 0;
dict = presets_get_dict(presets, indices, len);
if (dict)
{
- flags = ghb_preset_flags(dict);
+ type = ghb_preset_type(dict);
}
else
{
g_warning("ghb_presets_get_type ()");
g_warning("internal preset lookup error");
}
- return flags;
+ return type;
+}
+
+static gboolean
+ghb_presets_get_folder(
+ GValue *presets,
+ gint *indices,
+ gint len)
+{
+ GValue *dict;
+ gboolean folder = FALSE;
+
+ dict = presets_get_dict(presets, indices, len);
+ if (dict)
+ {
+ folder = ghb_preset_folder(dict);
+ }
+ else
+ {
+ g_warning("ghb_presets_get_folder ()");
+ g_warning("internal preset lookup error");
+ }
+ return folder;
}
void
@@ -632,7 +656,7 @@ presets_set_default(gint *indices, gint len)
{
ghb_dict_insert(dict, g_strdup("Default"), ghb_boolean_value_new(TRUE));
}
- store_plist(presetsPlist, "presets");
+ store_presets();
}
// Used for sorting dictionaries.
@@ -671,28 +695,12 @@ ghb_presets_get_description(GValue *pdict)
if (pdict == NULL) return NULL;
desc = g_value_get_string(
- preset_dict_get_value(pdict, "preset_description"));
+ preset_dict_get_value(pdict, "PresetDescription"));
if (desc[0] == 0) return NULL;
return desc;
}
-static const GValue*
-preset_get_value(const GValue *preset, const gchar *key)
-{
- GValue *dict = NULL;
- gint *indices, len;
-
-
- indices = ghb_preset_indices_from_path(presetsPlist, preset, &len);
- if (indices)
- {
- dict = presets_get_dict(presetsPlist, indices, len);
- g_free(indices);
- }
- return preset_dict_get_value(dict, key);
-}
-
static void init_settings_from_dict(
GValue *dest, GValue *internal, GValue *dict);
@@ -821,32 +829,35 @@ preset_to_ui(signal_user_data_t *ud, GValue *dict)
{
g_debug("preset_to_ui()\n");
// Initialize the ui from presets file.
- GValue *internal;
+ GValue *internal, *hidden;
// Get key list from internal default presets. This way we do not
// load any unknown keys.
if (internalPlist == NULL) return;
internal = plist_get_dict(internalPlist, "Presets");
+ hidden = plist_get_dict(internalPlist, "XlatPresets");
// Setting a ui widget will cause the corresponding setting
// to be set, but it also triggers a callback that can
// have the side effect of using other settings values
// that have not yet been set. So set *all* settings first
// then update the ui.
init_settings_from_dict(ud->settings, internal, dict);
+ init_settings_from_dict(ud->settings, hidden, dict);
init_ui_from_dict(ud, internal, dict);
+ init_ui_from_dict(ud, hidden, dict);
if (ghb_settings_get_boolean(ud->settings, "allow_tweaks"))
{
const GValue *gval;
- gval = preset_dict_get_value(dict, "deinterlace");
+ gval = preset_dict_get_value(dict, "PictureDeinterlace");
if (gval)
{
- ghb_ui_update(ud, "tweak_deinterlace", gval);
+ ghb_ui_update(ud, "tweak_PictureDeinterlace", gval);
}
- gval = preset_dict_get_value(dict, "denoise");
+ gval = preset_dict_get_value(dict, "PictureDenoise");
if (gval)
{
- ghb_ui_update(ud, "tweak_denoise", gval);
+ ghb_ui_update(ud, "tweak_PictureDenoise", gval);
}
}
}
@@ -857,6 +868,8 @@ ghb_settings_to_ui(signal_user_data_t *ud, GValue *dict)
init_ui_from_dict(ud, dict, dict);
}
+static GValue *current_preset = NULL;
+
void
ghb_set_preset_from_indices(signal_user_data_t *ud, gint *indices, gint len)
{
@@ -874,14 +887,16 @@ ghb_set_preset_from_indices(signal_user_data_t *ud, gint *indices, gint len)
if (dict == NULL)
{
preset_to_ui(ud, NULL);
+ current_preset = NULL;
}
else
{
- gint ptype;
GValue *path;
+ gboolean folder;
- ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
- if (ptype & PRESETS_FOLDER)
+ current_preset = dict;
+ folder = ghb_value_boolean(preset_dict_get_value(dict, "Folder"));
+ if (folder)
preset_to_ui(ud, NULL);
else
preset_to_ui(ud, dict);
@@ -891,34 +906,88 @@ ghb_set_preset_from_indices(signal_user_data_t *ud, gint *indices, gint len)
}
}
-void
-ghb_set_preset(signal_user_data_t *ud, const GValue *path)
+static const GValue*
+curr_preset_get_value(const gchar *key)
{
- gint *indices, len;
-
- g_debug("ghb_set_preset()");
- indices = ghb_preset_indices_from_path(presetsPlist, path, &len);
- ghb_set_preset_from_indices(ud, indices, len);
- if (indices) g_free(indices);
+ if (current_preset == NULL) return NULL;
+ return preset_dict_get_value(current_preset, key);
}
void
ghb_update_from_preset(
signal_user_data_t *ud,
- const GValue *preset,
const gchar *key)
{
const GValue *gval;
g_debug("ghb_update_from_preset() %s", key);
- if (preset == NULL) return;
- gval = preset_get_value(preset, key);
+ gval = curr_preset_get_value(key);
if (gval != NULL)
{
ghb_ui_update(ud, key, gval);
}
}
+static void
+ghb_select_preset2(
+ GtkBuilder *builder,
+ gint *indices,
+ gint len)
+{
+ GtkTreeView *treeview;
+ GtkTreeSelection *selection;
+ GtkTreeModel *store;
+ GtkTreeIter iter;
+ GtkTreePath *path;
+
+ g_debug("ghb_select_preset2()");
+ treeview = GTK_TREE_VIEW(GHB_WIDGET(builder, "presets_list"));
+ selection = gtk_tree_view_get_selection (treeview);
+ store = gtk_tree_view_get_model (treeview);
+ path = ghb_tree_path_new_from_indices(indices, len);
+ if (path)
+ {
+ if (gtk_tree_model_get_iter(store, &iter, path))
+ {
+ gtk_tree_selection_select_iter (selection, &iter);
+ }
+ else
+ {
+ if (gtk_tree_model_get_iter_first(store, &iter))
+ gtk_tree_selection_select_iter (selection, &iter);
+ }
+ gtk_tree_path_free(path);
+ }
+}
+
+void
+ghb_select_preset(GtkBuilder *builder, const GValue *path)
+{
+ gint *indices, len;
+
+ g_debug("ghb_select_preset()");
+ indices = ghb_preset_indices_from_path(presetsPlist, path, &len);
+ if (indices)
+ {
+ ghb_select_preset2(builder, indices, len);
+ g_free(indices);
+ }
+}
+
+void
+ghb_select_default_preset(GtkBuilder *builder)
+{
+ gint *indices, len;
+
+ g_debug("ghb_select_default_preset()");
+ indices = presets_find_default(&len);
+ if (indices)
+ {
+ ghb_select_preset2(builder, indices, len);
+ g_free(indices);
+ }
+}
+
gchar*
ghb_get_user_config_dir()
{
@@ -1248,14 +1317,14 @@ ghb_prefs_load(signal_user_data_t *ud)
}
static const gchar*
-get_preset_color(gint flags)
+get_preset_color(gint type, gboolean folder)
{
const gchar *color;
- if (flags & PRESETS_CUST)
+ if (type == PRESETS_CUSTOM)
{
color = "DimGray";
- if (flags & PRESETS_FOLDER)
+ if (folder)
{
color = "black";
}
@@ -1263,7 +1332,7 @@ get_preset_color(gint flags)
else
{
color = "blue";
- if (flags & PRESETS_FOLDER)
+ if (folder)
{
color = "Navy";
}
@@ -1284,7 +1353,6 @@ ghb_presets_list_init(
const gchar *preset;
GtkTreePath *parent_path;
const gchar *description;
- gint flags;
gboolean def;
gint count, ii;
GValue *dict;
@@ -1317,6 +1385,8 @@ ghb_presets_list_init(
for (ii = 0; ii < count; ii++)
{
const gchar *color;
+ gint type;
+ gboolean folder;
// Additional settings, add row
dict = ghb_array_get_nth(presets, ii);
@@ -1326,8 +1396,9 @@ ghb_presets_list_init(
description = ghb_presets_get_description(dict);
gtk_tree_store_append(store, &iter, piter);
- flags = ghb_preset_flags(dict);
- color = get_preset_color(flags);
+ type = ghb_preset_type(dict);
+ folder = ghb_preset_folder(dict);
+ color = get_preset_color(type, folder);
gtk_tree_store_set(store, &iter, 0, preset,
1, def ? 800 : 400,
2, def ? 2 : 0,
@@ -1350,7 +1421,7 @@ ghb_presets_list_init(
gtk_tree_view_expand_row(treeview, path, FALSE);
gtk_tree_path_free(path);
}
- if (flags & PRESETS_FOLDER)
+ if (folder)
{
ghb_presets_list_init(ud, more_indices, len+1);
}
@@ -1370,8 +1441,8 @@ presets_list_update_item(
GtkTreePath *treepath;
const gchar *name;
const gchar *description;
- gint flags;
- gboolean def;
+ gint type;
+ gboolean def, folder;
GValue *dict;
const gchar *color;
@@ -1388,15 +1459,16 @@ presets_list_update_item(
def = preset_is_default(dict);
description = ghb_presets_get_description(dict);
- flags = ghb_preset_flags(dict);
- color = get_preset_color(flags);
+ type = ghb_preset_type(dict);
+ folder = ghb_preset_folder(dict);
+ color = get_preset_color(type, folder);
gtk_tree_store_set(store, &iter, 0, name,
1, def ? 800 : 400,
2, def ? 2 : 0,
3, color,
4, description,
-1);
- if (flags & PRESETS_FOLDER)
+ if (folder)
{
ghb_presets_list_init(ud, indices, len);
}
@@ -1413,8 +1485,8 @@ presets_list_insert(
GtkTreeStore *store;
const gchar *preset;
const gchar *description;
- gint flags;
- gboolean def;
+ gint type;
+ gboolean def, folder;
gint count;
GValue *presets;
GtkTreePath *parent_path;
@@ -1451,15 +1523,16 @@ presets_list_insert(
description = ghb_presets_get_description(dict);
gtk_tree_store_insert(store, &iter, piter, indices[len-1]);
- flags = ghb_preset_flags(dict);
- color = get_preset_color(flags);
+ type = ghb_preset_type(dict);
+ folder = ghb_preset_folder(dict);
+ color = get_preset_color(type, folder);
gtk_tree_store_set(store, &iter, 0, preset,
1, def ? 800 : 400,
2, def ? 2 : 0,
3, color,
4, description,
-1);
- if (flags & PRESETS_FOLDER)
+ if (folder)
{
ghb_presets_list_init(ud, indices, len);
}
@@ -1501,8 +1574,8 @@ remove_std_presets(signal_user_data_t *ud)
gint ptype;
dict = ghb_array_get_nth(presetsPlist, ii);
- ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
- if (!(ptype & PRESETS_CUST))
+ ptype = ghb_value_int(preset_dict_get_value(dict, "Type"));
+ if (ptype == PRESETS_BUILTIN)
{
if (ghb_presets_remove(presetsPlist, &indices, 1))
{
@@ -1513,6 +1586,705 @@ remove_std_presets(signal_user_data_t *ud)
}
void
+ghb_save_queue(GValue *queue)
+{
+ store_plist(queue, "queue");
+}
+
+GValue*
+ghb_load_queue()
+{
+ return load_plist("queue");
+}
+
+void
+ghb_remove_queue_file()
+{
+ remove_plist("queue");
+}
+
+typedef struct
+{
+ gchar *mac_val;
+ gchar *lin_val;
+} value_map_t;
+
+static value_map_t vcodec_xlat[] =
+{
+ {"MPEG-4 (FFmpeg)", "ffmpeg"},
+ {"MPEG-4 (XviD)", "xvid"},
+ {"H.264 (x264)", "x264"},
+ {"VP3 (Theora)", "theora"},
+ {NULL,NULL}
+};
+
+static value_map_t acodec_xlat[] =
+{
+ {"AAC (faac)", "faac"},
+ {"AC3 Passthru", "ac3"},
+ {"MP3 (lame)", "lame"},
+ {"Vorbis (vorbis)", "vorbis"},
+ {NULL,NULL}
+};
+
+value_map_t container_xlat[] =
+{
+ {"MP4 file", "mp4"},
+ {"M4V file", "m4v"},
+ {"MKV file", "mkv"},
+ {"AVI file", "avi"},
+ {"OGM file", "ogm"},
+ {NULL, NULL}
+};
+
+value_map_t framerate_xlat[] =
+{
+ {"Same as source", "source"},
+ {"5", "5"},
+ {"10", "10"},
+ {"12", "12"},
+ {"15", "15"},
+ {"23.976", "23.976"},
+ {"24", "24"},
+ {"25", "25"},
+ {"29.97", "29.97"},
+ {NULL, NULL}
+};
+
+value_map_t samplerate_xlat[] =
+{
+ {"Auto", "source"},
+ {"22.05", "22.05"},
+ {"24", "24"},
+ {"32", "32"},
+ {"44.1", "44.1"},
+ {"48", "48"},
+ {NULL, NULL}
+};
+
+value_map_t mix_xlat[] =
+{
+ {"Mono", "mono"},
+ {"Stereo", "stereo"},
+ {"Dolby Surround", "dpl1"},
+ {"Dolby Pro Logic II", "dpl2"},
+ {"6-channel discrete", "6ch"},
+ {"AC3 Passthru", "none"},
+ {NULL, NULL}
+};
+
+value_map_t deint_xlat[] =
+{
+ {"0", "none"},
+ {"1", "fast"},
+ {"2", "slow"},
+ {"3", "slower"},
+ {NULL, NULL}
+};
+
+value_map_t denoise_xlat[] =
+{
+ {"0", "none"},
+ {"1", "weak"},
+ {"2", "medium"},
+ {"3", "strong"},
+ {NULL, NULL}
+};
+
+extern iso639_lang_t ghb_language_table[];
+
+static GValue*
+export_lang_xlat2(GValue *lin_val)
+{
+ GValue *gval;
+
+ if (lin_val == NULL) return NULL;
+ gint ii;
+ gchar *str;
+
+ str = ghb_value_string(lin_val);
+ for (ii = 0; ghb_language_table[ii].eng_name; ii++)
+ {
+ if (strcmp(str, ghb_language_table[ii].iso639_2) == 0)
+ {
+ gval = ghb_string_value_new(ghb_language_table[ii].eng_name);
+ g_free(str);
+ return gval;
+ }
+ }
+ g_debug("Can't map language value: (%s)", str);
+ g_free(str);
+ return NULL;
+}
+
+static GValue*
+export_subtitle_xlat2(GValue *lin_val)
+{
+ gchar *str;
+ GValue *gval;
+
+ str = ghb_value_string(lin_val);
+ if (strcmp(str, "none") == 0)
+ {
+ gval = ghb_string_value_new("None");
+ }
+ else if (strcmp(str, "auto") == 0)
+ {
+ gval = ghb_string_value_new("Autoselect");
+ }
+ else
+ {
+ gval = export_lang_xlat2(lin_val);
+ }
+ g_free(str);
+ return gval;
+}
+
+static GValue*
+import_lang_xlat2(GValue *mac_val)
+{
+ GValue *gval;
+
+ if (mac_val == NULL) return NULL;
+ gint ii;
+ gchar *str;
+
+ str = ghb_value_string(mac_val);
+ for (ii = 0; ghb_language_table[ii].eng_name; ii++)
+ {
+ if (strcmp(str, ghb_language_table[ii].eng_name) == 0)
+ {
+ gval = ghb_string_value_new(ghb_language_table[ii].iso639_2);
+ g_free(str);
+ return gval;
+ }
+ }
+ g_debug("Can't map language value: (%s)", str);
+ g_free(str);
+ return NULL;
+}
+
+static GValue*
+import_subtitle_xlat2(GValue *mac_val)
+{
+ gchar *str;
+ GValue *gval;
+
+ str = ghb_value_string(mac_val);
+ if (strcmp(str, "None") == 0)
+ {
+ gval = ghb_string_value_new("none");
+ }
+ else if (strcmp(str, "Autoselect") == 0)
+ {
+ gval = ghb_string_value_new("auto");
+ }
+ else
+ {
+ gval = import_lang_xlat2(mac_val);
+ }
+ g_free(str);
+ return gval;
+}
+
+static GValue*
+export_audio_track_xlat2(GValue *lin_val)
+{
+ gchar *str;
+ GValue *gval = NULL;
+
+ str = ghb_value_string(lin_val);
+ if (strcmp(str, "none") == 0)
+ {
+ gval = ghb_int_value_new(1);
+ }
+ else
+ {
+ gint val = ghb_value_int(lin_val) + 1;
+ gval = ghb_int_value_new(val);
+ }
+ g_free(str);
+ return gval;
+}
+
+static GValue*
+import_audio_track_xlat2(GValue *mac_val)
+{
+ gint val;
+ gchar *str;
+ GValue *gval;
+
+ val = ghb_value_int(mac_val);
+ if (val <= 0)
+ {
+ val = 0;
+ }
+ else
+ {
+ val--;
+ }
+ str = g_strdup_printf("%d", val);
+ gval = ghb_string_value_new(str);
+ g_free(str);
+ return gval;
+}
+
+static GValue*
+export_value_xlat2(value_map_t *value_map, GValue *lin_val, GType mac_type)
+{
+ GValue *gval;
+
+ if (lin_val == NULL) return NULL;
+ gint ii;
+ gchar *str;
+ GValue *sval;
+
+ str = ghb_value_string(lin_val);
+ for (ii = 0; value_map[ii].mac_val; ii++)
+ {
+ if (strcmp(str, value_map[ii].lin_val) == 0)
+ {
+ sval = ghb_string_value_new(value_map[ii].mac_val);
+ g_free(str);
+ gval = ghb_value_new(mac_type);
+ if (!g_value_transform(sval, gval))
+ {
+ g_warning("can't transform");
+ ghb_value_free(gval);
+ ghb_value_free(sval);
+ return NULL;
+ }
+ ghb_value_free(sval);
+ return gval;
+ }
+ }
+ g_debug("Can't map value: (%s)", str);
+ g_free(str);
+ return NULL;
+}
+
+static void
+export_value_xlat(GValue *dict)
+{
+ GValue *lin_val, *gval;
+ const gchar *key;
+
+ key = "VideoEncoder";
+ lin_val = ghb_dict_lookup(dict, key);
+ gval = export_value_xlat2(vcodec_xlat, lin_val, G_TYPE_STRING);
+ if (gval)
+ ghb_dict_insert(dict, g_strdup(key), gval);
+ key = "FileFormat";
+ lin_val = ghb_dict_lookup(dict, key);
+ gval = export_value_xlat2(container_xlat, lin_val, G_TYPE_STRING);
+ if (gval)
+ ghb_dict_insert(dict, g_strdup(key), gval);
+ key = "VideoFramerate";
+ lin_val = ghb_dict_lookup(dict, key);
+ gval = export_value_xlat2(framerate_xlat, lin_val, G_TYPE_STRING);
+ if (gval)
+ ghb_dict_insert(dict, g_strdup(key), gval);
+ key = "PictureDeinterlace";
+ lin_val = ghb_dict_lookup(dict, key);
+ gval = export_value_xlat2(deint_xlat, lin_val, G_TYPE_INT);
+ if (gval)
+ ghb_dict_insert(dict, g_strdup(key), gval);
+ else
+ ghb_dict_insert(dict, g_strdup(key), ghb_value_dup(lin_val));
+ key = "PictureDenoise";
+ lin_val = ghb_dict_lookup(dict, key);
+ gval = export_value_xlat2(denoise_xlat, lin_val, G_TYPE_INT);
+ if (gval)
+ ghb_dict_insert(dict, g_strdup(key), gval);
+ else
+ ghb_dict_insert(dict, g_strdup(key), ghb_value_dup(lin_val));
+ key = "Subtitles";
+ lin_val = ghb_dict_lookup(dict, key);
+ gval = export_subtitle_xlat2(lin_val);
+ if (gval)
+ ghb_dict_insert(dict, g_strdup(key), gval);
+
+ GValue *alist;
+ GValue *adict;
+ gint count, ii;
+
+ alist = ghb_dict_lookup(dict, "AudioList");
+ count = ghb_array_len(alist);
+ for (ii = 0; ii < count; ii++)
+ {
+ adict = ghb_array_get_nth(alist, ii);
+ key = "AudioTrack";
+ lin_val = ghb_dict_lookup(adict, key);
+ gval = export_audio_track_xlat2(lin_val);
+ if (gval)
+ ghb_dict_insert(adict, g_strdup(key), gval);
+ key = "AudioEncoder";
+ lin_val = ghb_dict_lookup(adict, key);
+ gval = export_value_xlat2(acodec_xlat, lin_val, G_TYPE_STRING);
+ if (gval)
+ ghb_dict_insert(adict, g_strdup(key), gval);
+ key = "AudioSamplerate";
+ lin_val = ghb_dict_lookup(adict, key);
+ gval = export_value_xlat2(samplerate_xlat, lin_val, G_TYPE_STRING);
+ if (gval)
+ ghb_dict_insert(adict, g_strdup(key), gval);
+ key = "AudioMixdown";
+ lin_val = ghb_dict_lookup(adict, key);
+ gval = export_value_xlat2(mix_xlat, lin_val, G_TYPE_STRING);
+ if (gval)
+ ghb_dict_insert(adict, g_strdup(key), gval);
+ }
+}
+
+
+static GValue*
+import_value_xlat2(
+ GValue *defaults,
+ value_map_t *value_map,
+ const gchar *key,
+ GValue *mac_val)
+{
+ GValue *gval, *def_val;
+
+ if (mac_val == NULL) return NULL;
+ def_val = ghb_dict_lookup(defaults, key);
+ if (def_val)
+ {
+ gint ii;
+ gchar *str;
+ GValue *sval;
+
+ str = ghb_value_string(mac_val);
+ for (ii = 0; value_map[ii].mac_val; ii++)
+ {
+ if (strcmp(str, value_map[ii].mac_val) == 0)
+ {
+ sval = ghb_string_value_new(value_map[ii].lin_val);
+ g_free(str);
+ gval = ghb_value_new(G_VALUE_TYPE(def_val));
+ if (!g_value_transform(sval, gval))
+ {
+ g_warning("can't transform");
+ ghb_value_free(gval);
+ ghb_value_free(sval);
+ return NULL;
+ }
+ ghb_value_free(sval);
+ return gval;
+ }
+ }
+ //g_warning("Can't map value: (%s)", str);
+ g_free(str);
+ }
+ else
+ {
+ g_warning("Bad key: (%s)", key);
+ return NULL;
+ }
+ return NULL;
+}
+
+static void
+import_value_xlat(GValue *dict)
+{
+ GValue *defaults, *mac_val, *gval;
+ const gchar *key;
+
+ defaults = plist_get_dict(internalPlist, "Presets");
+ key = "VideoEncoder";
+ mac_val = ghb_dict_lookup(dict, key);
+ gval = import_value_xlat2(defaults, vcodec_xlat, key, mac_val);
+ if (gval)
+ ghb_dict_insert(dict, g_strdup(key), gval);
+ key = "FileFormat";
+ mac_val = ghb_dict_lookup(dict, key);
+ gval = import_value_xlat2(defaults, container_xlat, key, mac_val);
+ if (gval)
+ ghb_dict_insert(dict, g_strdup(key), gval);
+ key = "VideoFramerate";
+ mac_val = ghb_dict_lookup(dict, key);
+ gval = import_value_xlat2(defaults, framerate_xlat, key, mac_val);
+ if (gval)
+ ghb_dict_insert(dict, g_strdup(key), gval);
+ key = "PictureDeinterlace";
+ mac_val = ghb_dict_lookup(dict, key);
+ gval = import_value_xlat2(defaults, deint_xlat, key, mac_val);
+ if (gval)
+ ghb_dict_insert(dict, g_strdup(key), gval);
+ key = "PictureDenoise";
+ mac_val = ghb_dict_lookup(dict, key);
+ gval = import_value_xlat2(defaults, denoise_xlat, key, mac_val);
+ if (gval)
+ ghb_dict_insert(dict, g_strdup(key), gval);
+ key = "Subtitles";
+ mac_val = ghb_dict_lookup(dict, key);
+ gval = import_subtitle_xlat2(mac_val);
+ if (gval)
+ ghb_dict_insert(dict, g_strdup(key), gval);
+
+ GValue *alist;
+ GValue *adict;
+ GValue *adefaults;
+ GValue *adeflist;
+ gint count, ii;
+
+ adeflist = ghb_dict_lookup(dict, "AudioList");
+ if (adeflist)
+ {
+ adefaults = ghb_array_get_nth(adeflist, 0);
+ alist = ghb_dict_lookup(dict, "AudioList");
+ count = ghb_array_len(alist);
+ for (ii = 0; ii < count; ii++)
+ {
+ adict = ghb_array_get_nth(alist, ii);
+ key = "AudioTrack";
+ mac_val = ghb_dict_lookup(adict, key);
+ gval = import_audio_track_xlat2(mac_val);
+ if (gval)
+ ghb_dict_insert(adict, g_strdup(key), gval);
+ key = "AudioEncoder";
+ mac_val = ghb_dict_lookup(adict, key);
+ gval = import_value_xlat2(adefaults, acodec_xlat, key, mac_val);
+ if (gval)
+ ghb_dict_insert(adict, g_strdup(key), gval);
+ key = "AudioSamplerate";
+ mac_val = ghb_dict_lookup(adict, key);
+ gval = import_value_xlat2(adefaults, samplerate_xlat, key, mac_val);
+ if (gval)
+ ghb_dict_insert(adict, g_strdup(key), gval);
+ key = "AudioMixdown";
+ mac_val = ghb_dict_lookup(adict, key);
+ gval = import_value_xlat2(adefaults, mix_xlat, key, mac_val);
+ if (gval)
+ ghb_dict_insert(adict, g_strdup(key), gval);
+ }
+ }
+}
+
+static void
+import_xlat_preset(GValue *dict)
+{
+ gboolean uses_max;
+ gint uses_pic;
+ gint par;
+ gint vqtype;
+
+ g_debug("import_xlat_preset ()");
+ uses_max = ghb_value_boolean(
+ preset_dict_get_value(dict, "UsesMaxPictureSettings"));
+ uses_pic = ghb_value_int(
+ preset_dict_get_value(dict, "UsesPictureSettings"));
+ par = ghb_value_int(preset_dict_get_value(dict, "PicturePAR"));
+ vqtype = ghb_value_int(preset_dict_get_value(dict, "VideoQualityType"));
+
+ if (uses_max || uses_pic == 2)
+ {
+ ghb_dict_insert(dict, g_strdup("autoscale"),
+ ghb_boolean_value_new(TRUE));
+ }
+ switch (par)
+ {
+ case 0:
+ {
+ ghb_dict_insert(dict, g_strdup("anamorphic"),
+ ghb_boolean_value_new(FALSE));
+ if (ghb_dict_lookup(dict, "ModDimensions") == NULL)
+ ghb_dict_insert(dict, g_strdup("ModDimensions"),
+ ghb_boolean_value_new(TRUE));
+ } break;
+ case 1:
+ {
+ ghb_dict_insert(dict, g_strdup("anamorphic"),
+ ghb_boolean_value_new(TRUE));
+ ghb_dict_insert(dict, g_strdup("ModDimensions"),
+ ghb_boolean_value_new(FALSE));
+ } break;
+ case 2:
+ {
+ ghb_dict_insert(dict, g_strdup("anamorphic"),
+ ghb_boolean_value_new(TRUE));
+ ghb_dict_insert(dict, g_strdup("ModDimensions"),
+ ghb_boolean_value_new(TRUE));
+ } break;
+ default:
+ {
+ ghb_dict_insert(dict, g_strdup("anamorphic"),
+ ghb_boolean_value_new(TRUE));
+ ghb_dict_insert(dict, g_strdup("ModDimensions"),
+ ghb_boolean_value_new(TRUE));
+ } break;
+ }
+ // VideoQualityType/0/1/2 - vquality_type_/target/bitrate/constant
+ switch (vqtype)
+ {
+ case 0:
+ {
+ ghb_dict_insert(dict, g_strdup("vquality_type_target"),
+ ghb_boolean_value_new(TRUE));
+ ghb_dict_insert(dict, g_strdup("vquality_type_bitrate"),
+ ghb_boolean_value_new(FALSE));
+ ghb_dict_insert(dict, g_strdup("vquality_type_constant"),
+ ghb_boolean_value_new(FALSE));
+ } break;
+ case 1:
+ {
+ ghb_dict_insert(dict, g_strdup("vquality_type_target"),
+ ghb_boolean_value_new(FALSE));
+ ghb_dict_insert(dict, g_strdup("vquality_type_bitrate"),
+ ghb_boolean_value_new(TRUE));
+ ghb_dict_insert(dict, g_strdup("vquality_type_constant"),
+ ghb_boolean_value_new(FALSE));
+ } break;
+ case 2:
+ {
+ ghb_dict_insert(dict, g_strdup("vquality_type_target"),
+ ghb_boolean_value_new(FALSE));
+ ghb_dict_insert(dict, g_strdup("vquality_type_bitrate"),
+ ghb_boolean_value_new(FALSE));
+ ghb_dict_insert(dict, g_strdup("vquality_type_constant"),
+ ghb_boolean_value_new(TRUE));
+ } break;
+ default:
+ {
+ ghb_dict_insert(dict, g_strdup("vquality_type_target"),
+ ghb_boolean_value_new(FALSE));
+ ghb_dict_insert(dict, g_strdup("vquality_type_bitrate"),
+ ghb_boolean_value_new(FALSE));
+ ghb_dict_insert(dict, g_strdup("vquality_type_constant"),
+ ghb_boolean_value_new(TRUE));
+ } break;
+ }
+ import_value_xlat(dict);
+}
+
+static void
+import_xlat_presets(GValue *presets)
+{
+ gint count, ii;
+ GValue *dict;
+ gboolean folder;
+
+ g_debug("import_xlat_presets ()");
+ if (presets == NULL) return;
+ count = ghb_array_len(presets);
+ for (ii = 0; ii < count; ii++)
+ {
+ dict = ghb_array_get_nth(presets, ii);
+ folder = ghb_value_boolean(preset_dict_get_value(dict, "Folder"));
+ if (folder)
+ {
+ GValue *nested;
+
+ nested = ghb_dict_lookup(dict, "ChildrenArray");
+ import_xlat_presets(nested);
+ }
+ else
+ {
+ import_xlat_preset(dict);
+ }
+ }
+}
+
+static void
+export_xlat_preset(GValue *dict)
+{
+ gboolean ana, round, autoscale, target, br, constant;
+
+ g_debug("export_xlat_prest ()");
+ autoscale = ghb_value_boolean(preset_dict_get_value(dict, "autoscale"));
+ ana = ghb_value_boolean(preset_dict_get_value(dict, "anamorphic"));
+ round = ghb_value_boolean(preset_dict_get_value(dict, "ModDimensions"));
+ target = ghb_value_boolean(
+ preset_dict_get_value(dict, "vquality_type_target"));
+ br = ghb_value_boolean(
+ preset_dict_get_value(dict, "vquality_type_bitrate"));
+ constant = ghb_value_boolean(
+ preset_dict_get_value(dict, "vquality_type_constant"));
+
+ if (autoscale)
+ ghb_dict_insert(dict, g_strdup("UsesPictureSettings"),
+ ghb_int_value_new(2));
+ else
+ ghb_dict_insert(dict, g_strdup("UsesPictureSettings"),
+ ghb_int_value_new(1));
+
+ if (ana)
+ {
+ if (round)
+ ghb_dict_insert(dict, g_strdup("PicturePAR"),
+ ghb_int_value_new(2));
+ else
+ ghb_dict_insert(dict, g_strdup("PicturePAR"),
+ ghb_int_value_new(1));
+ }
+ else
+ {
+ ghb_dict_insert(dict, g_strdup("PicturePAR"),
+ ghb_int_value_new(0));
+ }
+ // VideoQualityType/0/1/2 - vquality_type_/target/bitrate/constant
+ if (target)
+ {
+ ghb_dict_insert(dict, g_strdup("VideoQualityType"),
+ ghb_int_value_new(0));
+ }
+ else if (br)
+ {
+ ghb_dict_insert(dict, g_strdup("VideoQualityType"),
+ ghb_int_value_new(1));
+ }
+ else if (constant)
+ {
+ ghb_dict_insert(dict, g_strdup("VideoQualityType"),
+ ghb_int_value_new(2));
+ }
+ ghb_dict_remove(dict, "autoscale");
+ ghb_dict_remove(dict, "anamorphic");
+ ghb_dict_remove(dict, "vquality_type_target");
+ ghb_dict_remove(dict, "vquality_type_bitrate");
+ ghb_dict_remove(dict, "vquality_type_constant");
+ export_value_xlat(dict);
+}
+
+static void
+export_xlat_presets(GValue *presets)
+{
+ gint count, ii;
+ GValue *dict;
+ gboolean folder;
+
+ if (presets == NULL) return;
+ count = ghb_array_len(presets);
+ for (ii = 0; ii < count; ii++)
+ {
+ dict = ghb_array_get_nth(presets, ii);
+ folder = ghb_value_boolean(preset_dict_get_value(dict, "Folder"));
+ if (folder)
+ {
+ GValue *nested;
+
+ nested = ghb_dict_lookup(dict, "ChildrenArray");
+ export_xlat_presets(nested);
+ }
+ else
+ {
+ export_xlat_preset(dict);
+ }
+ }
+}
+
+static void
+store_presets()
+{
+ GValue *export;
+
+ export = ghb_value_dup(presetsPlist);
+ export_xlat_presets(export);
+ store_plist(export, "presets");
+ ghb_value_free(export);
+}
+
+void
ghb_presets_reload(signal_user_data_t *ud)
{
GValue *std_presets;
@@ -1547,25 +2319,8 @@ ghb_presets_reload(signal_user_data_t *ud)
}
presets_list_insert(ud, &indices, 1);
}
- store_plist(presetsPlist, "presets");
-}
-
-void
-ghb_save_queue(GValue *queue)
-{
- store_plist(queue, "queue");
-}
-
-GValue*
-ghb_load_queue()
-{
- return load_plist("queue");
-}
-
-void
-ghb_remove_queue_file()
-{
- remove_plist("queue");
+ import_xlat_presets(presetsPlist);
+ store_presets();
}
void
@@ -1575,43 +2330,15 @@ ghb_presets_load()
if (presetsPlist == NULL)
{
presetsPlist = ghb_value_dup(ghb_resource_get("standard-presets"));
- store_plist(presetsPlist, "presets");
+ store_presets();
}
- if (G_VALUE_TYPE(presetsPlist) == ghb_dict_get_type())
+ else if (G_VALUE_TYPE(presetsPlist) == ghb_dict_get_type())
{ // Presets is older dictionary format. Convert to array
- GHashTableIter old_iter;
- GValue *presets;
- gchar *name;
- GValue *orig_dict;
-
- presets = ghb_array_value_new(32);
- ghb_dict_iter_init(&old_iter, presetsPlist);
- // middle (void*) cast prevents gcc warning "defreferencing type-punned
- // pointer will break strict-aliasing rules"
- while (g_hash_table_iter_next(
- &old_iter, (gpointer*)(void*)&name, (gpointer*)(void*)&orig_dict))
- {
- GHashTableIter iter;
- gchar *key;
- GValue *value, *dict;
-
- dict = ghb_dict_value_new();
- ghb_dict_insert(dict, g_strdup("preset_name"),
- ghb_string_value_new(name));
- ghb_array_append(presets, dict);
- ghb_dict_iter_init(&iter, orig_dict);
- // middle (void*) cast prevents gcc warning "defreferencing
- // type-punned pointer will break strict-aliasing rules"
- while (g_hash_table_iter_next(
- &iter, (gpointer*)(void*)&key, (gpointer*)(void*)&value))
- {
- ghb_dict_insert(dict, g_strdup(key), ghb_value_dup(value));
- }
- }
ghb_value_free(presetsPlist);
- presetsPlist = presets;
- store_plist(presetsPlist, "presets");
+ presetsPlist = ghb_value_dup(ghb_resource_get("standard-presets"));
+ store_presets();
}
+ import_xlat_presets(presetsPlist);
}
static void
@@ -1633,8 +2360,7 @@ settings_save(signal_user_data_t *ud, const GValue *path)
indices = ghb_preset_indices_from_path(presetsPlist, path, &len);
if (indices)
{
- if (ghb_presets_get_type(presetsPlist, indices, len) &
- PRESETS_FOLDER)
+ if (ghb_presets_get_folder(presetsPlist, indices, len))
{
gchar *message;
message = g_strdup_printf(
@@ -1651,7 +2377,7 @@ settings_save(signal_user_data_t *ud, const GValue *path)
}
else
{
- indices = presets_find_pos(path, PRESETS_CUST, &len);
+ indices = presets_find_pos(path, PRESETS_CUSTOM, &len);
if (indices)
{
dict = ghb_dict_value_new();
@@ -1663,26 +2389,25 @@ settings_save(signal_user_data_t *ud, const GValue *path)
return;
}
}
- ghb_dict_insert(dict, g_strdup("preset_name"), ghb_string_value_new(name));
if (ghb_settings_get_boolean(ud->settings, "allow_tweaks"))
{
gchar *str;
- str = ghb_settings_get_string(ud->settings, "tweak_deinterlace");
+ str = ghb_settings_get_string(ud->settings, "tweak_PictureDeinterlace");
if (str)
{
- ghb_settings_set_string(ud->settings, "deinterlace", str);
+ ghb_settings_set_string(ud->settings, "PictureDeinterlace", str);
g_free(str);
}
- str = ghb_settings_get_string(ud->settings, "tweak_denoise");
+ str = ghb_settings_get_string(ud->settings, "tweak_PictureDenoise");
if (str)
{
- ghb_settings_set_string(ud->settings, "denoise", str);
+ ghb_settings_set_string(ud->settings, "PictureDenoise", str);
g_free(str);
}
}
autoscale = ghb_settings_get_boolean(ud->settings, "autoscale");
- ghb_settings_set_int64(ud->settings, "preset_type", PRESETS_CUST);
+ ghb_settings_set_int64(ud->settings, "Type", PRESETS_CUSTOM);
internal = plist_get_dict(internalPlist, "Presets");
ghb_dict_iter_init(&iter, internal);
@@ -1697,11 +2422,11 @@ settings_save(signal_user_data_t *ud, const GValue *path)
key2 = key;
if (!autoscale)
{
- if (strcmp(key, "max_width") == 0)
+ if (strcmp(key, "PictureWidth") == 0)
{
key2 = "scale_width";
}
- else if (strcmp(key, "max_height") == 0)
+ else if (strcmp(key, "PictureHeight") == 0)
{
key2 = "scale_height";
}
@@ -1709,15 +2434,27 @@ settings_save(signal_user_data_t *ud, const GValue *path)
gval = ghb_settings_get_value(ud->settings, key2);
if (gval == NULL)
{
- g_debug("Setting (%s) is not in defaults\n", (gchar*)key);
continue;
}
- if (ghb_value_cmp(gval, value) != 0)
+ ghb_dict_insert(dict, g_strdup(key), ghb_value_dup(gval));
+ }
+ internal = plist_get_dict(internalPlist, "XlatPresets");
+ ghb_dict_iter_init(&iter, internal);
+ // middle (void*) cast prevents gcc warning "defreferencing type-punned
+ // pointer will break strict-aliasing rules"
+ while (g_hash_table_iter_next(
+ &iter, (gpointer*)(void*)&key, (gpointer*)(void*)&value))
+ {
+ const GValue *gval;
+
+ gval = ghb_settings_get_value(ud->settings, key);
+ if (gval == NULL)
{
- // Differs from default value. Store it.
- ghb_dict_insert(dict, g_strdup(key), ghb_value_dup(gval));
+ continue;
}
+ ghb_dict_insert(dict, g_strdup(key), ghb_value_dup(gval));
}
+ ghb_dict_insert(dict, g_strdup("PresetName"), ghb_string_value_new(name));
if (replace)
presets_list_update_item(ud, indices, len);
else
@@ -1726,10 +2463,11 @@ settings_save(signal_user_data_t *ud, const GValue *path)
ghb_boolean_value_new(FALSE));
presets_list_insert(ud, indices, len);
}
- g_free(indices);
- store_plist(presetsPlist, "presets");
+ store_presets();
ud->dont_clear_presets = TRUE;
- ghb_set_preset(ud, path);
+ // Make the new preset the selected item
+ ghb_select_preset2(ud->builder, indices, len);
+ g_free(indices);
ud->dont_clear_presets = FALSE;
return;
}
@@ -1746,8 +2484,7 @@ folder_save(signal_user_data_t *ud, const GValue *path)
indices = ghb_preset_indices_from_path(presetsPlist, path, &len);
if (indices)
{
- if (!(ghb_presets_get_type(presetsPlist, indices, len) &
- PRESETS_FOLDER))
+ if (!ghb_presets_get_folder(presetsPlist, indices, len))
{
gchar *message;
message = g_strdup_printf(
@@ -1761,15 +2498,15 @@ folder_save(signal_user_data_t *ud, const GValue *path)
}
// Already exists, update its description
dict = presets_get_dict(presetsPlist, indices, len);
- ghb_dict_insert(dict, g_strdup("preset_description"),
+ ghb_dict_insert(dict, g_strdup("PresetDescription"),
ghb_value_dup(preset_dict_get_value(
- ud->settings, "preset_description")));
+ ud->settings, "PresetDescription")));
g_free(indices);
return;
}
else
{
- indices = presets_find_pos(path, PRESETS_CUST, &len);
+ indices = presets_find_pos(path, PRESETS_CUSTOM, &len);
if (indices)
{
dict = ghb_dict_value_new();
@@ -1781,21 +2518,19 @@ folder_save(signal_user_data_t *ud, const GValue *path)
return;
}
}
- ghb_dict_insert(dict, g_strdup("preset_description"),
+ ghb_dict_insert(dict, g_strdup("PresetDescription"),
ghb_value_dup(preset_dict_get_value(
- ud->settings, "preset_description")));
- ghb_dict_insert(dict, g_strdup("preset_name"), ghb_string_value_new(name));
+ ud->settings, "PresetDescription")));
+ ghb_dict_insert(dict, g_strdup("PresetName"), ghb_string_value_new(name));
folder = ghb_array_value_new(8);
- ghb_dict_insert(dict, g_strdup("preset_folder"), folder);
- ghb_dict_insert(dict, g_strdup("preset_type"),
- ghb_int64_value_new(PRESETS_FOLDER|PRESETS_CUST));
+ ghb_dict_insert(dict, g_strdup("ChildrenArray"), folder);
+ ghb_dict_insert(dict, g_strdup("Type"),
+ ghb_int64_value_new(PRESETS_CUSTOM));
+ ghb_dict_insert(dict, g_strdup("Folder"), ghb_boolean_value_new(TRUE));
presets_list_insert(ud, indices, len);
g_free(indices);
- store_plist(presetsPlist, "presets");
- ud->dont_clear_presets = TRUE;
- ghb_set_preset(ud, path);
- ud->dont_clear_presets = FALSE;
+ store_presets();
return;
}
@@ -1858,73 +2593,13 @@ ghb_presets_list_clear_default(signal_user_data_t *ud)
}
static void
-ghb_select_preset2(
- GtkBuilder *builder,
- gint *indices,
- gint len)
-{
- GtkTreeView *treeview;
- GtkTreeSelection *selection;
- GtkTreeModel *store;
- GtkTreeIter iter;
- GtkTreePath *path;
-
- g_debug("ghb_select_preset2()");
- treeview = GTK_TREE_VIEW(GHB_WIDGET(builder, "presets_list"));
- selection = gtk_tree_view_get_selection (treeview);
- store = gtk_tree_view_get_model (treeview);
- path = ghb_tree_path_new_from_indices(indices, len);
- if (path)
- {
- if (gtk_tree_model_get_iter(store, &iter, path))
- {
- gtk_tree_selection_select_iter (selection, &iter);
- }
- else
- {
- if (gtk_tree_model_get_iter_first(store, &iter))
- gtk_tree_selection_select_iter (selection, &iter);
- }
- gtk_tree_path_free(path);
- }
-}
-
-void
-ghb_select_preset(GtkBuilder *builder, const GValue *path)
-{
- gint *indices, len;
-
- g_debug("ghb_select_preset()");
- indices = ghb_preset_indices_from_path(presetsPlist, path, &len);
- if (indices)
- {
- ghb_select_preset2(builder, indices, len);
- g_free(indices);
- }
-}
-
-void
-ghb_select_default_preset(GtkBuilder *builder)
-{
- gint *indices, len;
-
- g_debug("ghb_select_default_preset()");
- indices = presets_find_default(&len);
- if (indices)
- {
- ghb_select_preset2(builder, indices, len);
- g_free(indices);
- }
-}
-
-static void
update_audio_presets(signal_user_data_t *ud)
{
g_debug("update_audio_presets");
const GValue *audio_list;
audio_list = ghb_settings_get_value(ud->settings, "audio_list");
- ghb_settings_set_value(ud->settings, "pref_audio_list", audio_list);
+ ghb_settings_set_value(ud->settings, "AudioList", audio_list);
}
void
@@ -1932,22 +2607,22 @@ enforce_preset_type(signal_user_data_t *ud, const GValue *path)
{
gint *indices, len;
GtkWidget *normal, *folder;
- gint ptype;
+ gboolean fold;
normal = GHB_WIDGET(ud->builder, "preset_type_normal");
folder = GHB_WIDGET(ud->builder, "preset_type_folder");
indices = ghb_preset_indices_from_path(presetsPlist, path, &len);
if (indices)
{
- ptype = ghb_presets_get_type(presetsPlist, indices, len);
- if (ptype & PRESETS_FOLDER)
+ fold = ghb_presets_get_folder(presetsPlist, indices, len);
+ if (fold)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(folder),
TRUE);
else
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(normal),
TRUE);
- gtk_widget_set_sensitive(folder, ptype & PRESETS_FOLDER);
- gtk_widget_set_sensitive(normal, !(ptype & PRESETS_FOLDER));
+ gtk_widget_set_sensitive(folder, fold);
+ gtk_widget_set_sensitive(normal, !fold);
g_free(indices);
}
else
@@ -1977,9 +2652,9 @@ presets_save_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
else
count = 1;
// Clear the description
- desc = GTK_TEXT_VIEW(GHB_WIDGET(ud->builder, "preset_description"));
+ desc = GTK_TEXT_VIEW(GHB_WIDGET(ud->builder, "PresetDescription"));
dialog = GHB_WIDGET(ud->builder, "preset_save_dialog");
- entry = GTK_ENTRY(GHB_WIDGET(ud->builder, "preset_name"));
+ entry = GTK_ENTRY(GHB_WIDGET(ud->builder, "PresetName"));
gtk_entry_set_text(entry, name);
enforce_preset_type(ud, preset);
response = gtk_dialog_run(GTK_DIALOG(dialog));
@@ -2004,7 +2679,7 @@ presets_save_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
gint ptype;
ptype = ghb_presets_get_type(presetsPlist, indices, len);
- if (ptype & PRESETS_CUST)
+ if (ptype == PRESETS_CUSTOM)
{
ghb_array_copy(dest, preset, count-1);
}
@@ -2022,8 +2697,6 @@ presets_save_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
update_audio_presets(ud);
settings_save(ud, dest);
}
- // Make the new preset the selected item
- ghb_select_preset(ud->builder, dest);
ghb_value_free(dest);
}
}
@@ -2082,18 +2755,18 @@ presets_remove_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
GtkWidget *dialog;
GtkTreePath *path;
gint *indices, len;
- gint ptype;
+ gboolean folder;
gtk_tree_model_get(store, &iter, 0, &preset, -1);
path = gtk_tree_model_get_path(store, &iter);
indices = gtk_tree_path_get_indices(path);
len = gtk_tree_path_get_depth(path);
- ptype = ghb_presets_get_type(presetsPlist, indices, len);
+ folder = ghb_presets_get_folder(presetsPlist, indices, len);
dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,
GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,
"Confirm deletion of %s:\n\n%s",
- (ptype & PRESETS_FOLDER) ? "folder" : "preset",
+ folder ? "folder" : "preset",
preset);
response = gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy (dialog);
@@ -2113,7 +2786,7 @@ presets_remove_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
gtk_tree_selection_unselect_iter (selection, &iter);
if (ghb_presets_remove(presetsPlist, indices, len))
{
- store_plist(presetsPlist, "presets");
+ store_presets();
presets_list_remove(ud, indices, len);
}
if (!valid)
@@ -2150,6 +2823,7 @@ presets_drag_motion_cb(
GtkTreeModel *model;
GtkTreeSelection *select;
gint src_ptype, dst_ptype;
+ gboolean src_folder, dst_folder;
GValue *preset;
gint tree_depth, ii;
@@ -2165,9 +2839,10 @@ presets_drag_motion_cb(
tree_depth = preset_tree_depth(preset);
src_ptype = ghb_presets_get_type(presetsPlist, indices, len);
+ src_folder = ghb_presets_get_folder(presetsPlist, indices, len);
gtk_tree_path_free(path);
- if ((src_ptype & PRESETS_FOLDER) && tree_depth == 1)
+ if (src_folder && tree_depth == 1)
tree_depth = 2;
// The rest checks that the destination is a valid position
@@ -2179,7 +2854,7 @@ presets_drag_motion_cb(
return TRUE;
}
// Don't allow repositioning of builtin presets
- if (!(src_ptype & PRESETS_CUST))
+ if (src_ptype != PRESETS_CUSTOM)
{
gdk_drag_status(ctx, 0, time);
return TRUE;
@@ -2198,15 +2873,16 @@ presets_drag_motion_cb(
indices = gtk_tree_path_get_indices(path);
len = gtk_tree_path_get_depth(path);
dst_ptype = ghb_presets_get_type(presetsPlist, indices, len);
+ dst_folder = ghb_presets_get_folder(presetsPlist, indices, len);
// Don't allow mixing custom presets in the builtins
- if (!(dst_ptype & PRESETS_CUST))
+ if (dst_ptype != PRESETS_CUSTOM)
{
gdk_drag_status(ctx, 0, time);
return TRUE;
}
// Only allow *drop into* for folders
- if (!(dst_ptype & PRESETS_FOLDER))
+ if (!dst_folder)
{
if (drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE)
drop_pos = GTK_TREE_VIEW_DROP_BEFORE;
@@ -2234,7 +2910,8 @@ presets_drag_cb(
GtkTreeViewDropPosition drop_pos;
GtkTreeIter dstiter, srciter;
gint *dst_indices, dst_len, *src_indices, src_len;
- gint src_ptype, dst_ptype;
+ gint src_ptype;
+ gboolean src_folder, dst_folder;
GtkTreeModel *dstmodel = gtk_tree_view_get_model(dstwidget);
@@ -2277,16 +2954,17 @@ presets_drag_cb(
src_indices = gtk_tree_path_get_indices(srcpath);
src_len = gtk_tree_path_get_depth(srcpath);
src_ptype = ghb_presets_get_type(presetsPlist, src_indices, src_len);
+ src_folder = ghb_presets_get_folder(presetsPlist, src_indices, src_len);
preset = ghb_value_dup(
presets_get_dict(presetsPlist, src_indices, src_len));
gtk_tree_path_free(srcpath);
// Don't allow repositioning of builtin presets
- if (!(src_ptype & PRESETS_CUST))
+ if (src_ptype != PRESETS_CUSTOM)
return;
tree_depth = preset_tree_depth(preset);
- if ((src_ptype & PRESETS_FOLDER) && tree_depth == 1)
+ if (src_folder && tree_depth == 1)
tree_depth = 2;
dst_len = gtk_tree_path_get_depth(path);
@@ -2302,9 +2980,9 @@ presets_drag_cb(
gtk_tree_path_up(path);
dst_indices = gtk_tree_path_get_indices(path);
dst_len = gtk_tree_path_get_depth(path);
- dst_ptype = ghb_presets_get_type(presetsPlist, dst_indices, dst_len);
+ dst_folder = ghb_presets_get_folder(presetsPlist, dst_indices, dst_len);
// Only allow *drop into* for folders
- if (!(dst_ptype & PRESETS_FOLDER))
+ if (!dst_folder)
{
if (drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE)
drop_pos = GTK_TREE_VIEW_DROP_BEFORE;
@@ -2362,7 +3040,7 @@ presets_drag_cb(
presets_list_update_item(ud, dst_indices, dst_len);
gtk_tree_path_free(dstpath);
- store_plist(presetsPlist, "presets");
+ store_presets();
}
gtk_tree_path_free(path);
}
@@ -2377,7 +3055,7 @@ preset_update_title_deps(signal_user_data_t *ud, ghb_title_info_t *tinfo)
ghb_int64_value(tinfo->width - tinfo->crop[2] - tinfo->crop[3]));
// If anamorphic or keep_aspect, the hight will be automatically calculated
gboolean keep_aspect, anamorphic;
- keep_aspect = ghb_settings_get_boolean(ud->settings, "keep_aspect");
+ keep_aspect = ghb_settings_get_boolean(ud->settings, "PictureKeepRatio");
anamorphic = ghb_settings_get_boolean(ud->settings, "anamorphic");
if (!(keep_aspect || anamorphic))
{
@@ -2389,28 +3067,21 @@ preset_update_title_deps(signal_user_data_t *ud, ghb_title_info_t *tinfo)
// you pass it a cropped width or height == 0.
gint bound;
bound = tinfo->height / 2 - 2;
- widget = GHB_WIDGET (ud->builder, "crop_top");
+ widget = GHB_WIDGET (ud->builder, "PictureTopCrop");
gtk_spin_button_set_range (GTK_SPIN_BUTTON(widget), 0, bound);
- widget = GHB_WIDGET (ud->builder, "crop_bottom");
+ widget = GHB_WIDGET (ud->builder, "PictureBottomCrop");
gtk_spin_button_set_range (GTK_SPIN_BUTTON(widget), 0, bound);
bound = tinfo->width / 2 - 2;
- widget = GHB_WIDGET (ud->builder, "crop_left");
+ widget = GHB_WIDGET (ud->builder, "PictureLeftCrop");
gtk_spin_button_set_range (GTK_SPIN_BUTTON(widget), 0, bound);
- widget = GHB_WIDGET (ud->builder, "crop_right");
+ widget = GHB_WIDGET (ud->builder, "PictureRightCrop");
gtk_spin_button_set_range (GTK_SPIN_BUTTON(widget), 0, bound);
- if (ghb_settings_get_boolean(ud->settings, "autocrop"))
+ if (ghb_settings_get_boolean(ud->settings, "PictureAutoCrop"))
{
- ghb_ui_update(ud, "crop_top", ghb_int64_value(tinfo->crop[0]));
- ghb_ui_update(ud, "crop_bottom", ghb_int64_value(tinfo->crop[1]));
- ghb_ui_update(ud, "crop_left", ghb_int64_value(tinfo->crop[2]));
- ghb_ui_update(ud, "crop_right", ghb_int64_value(tinfo->crop[3]));
- }
- else
- {
- ghb_ui_update(ud, "crop_top", ghb_int64_value(0));
- ghb_ui_update(ud, "crop_bottom", ghb_int64_value(0));
- ghb_ui_update(ud, "crop_left", ghb_int64_value(0));
- ghb_ui_update(ud, "crop_right", ghb_int64_value(0));
+ ghb_ui_update(ud, "PictureTopCrop", ghb_int64_value(tinfo->crop[0]));
+ ghb_ui_update(ud, "PictureBottomCrop", ghb_int64_value(tinfo->crop[1]));
+ ghb_ui_update(ud, "PictureLeftCrop", ghb_int64_value(tinfo->crop[2]));
+ ghb_ui_update(ud, "PictureRightCrop", ghb_int64_value(tinfo->crop[3]));
}
}
@@ -2427,8 +3098,9 @@ presets_list_selection_changed_cb(GtkTreeSelection *selection, signal_user_data_
if (gtk_tree_selection_get_selected(selection, &store, &iter))
{
GtkTreePath *treepath;
- gint *indices, len, ptype;
+ gint *indices, len;
GValue *path;
+ gboolean folder;
treepath = gtk_tree_model_get_path(store, &iter);
indices = gtk_tree_path_get_indices(treepath);
@@ -2437,15 +3109,16 @@ presets_list_selection_changed_cb(GtkTreeSelection *selection, signal_user_data_
path = preset_path_from_indices(presetsPlist, indices, len);
ghb_settings_take_value(ud->settings, "preset_selection", path);
- ptype = ghb_presets_get_type(presetsPlist, indices, len);
- if (!(ptype & PRESETS_FOLDER))
+ folder = ghb_presets_get_folder(presetsPlist, indices, len);
+ if (!folder)
{
ud->dont_clear_presets = TRUE;
// Temporarily set the video_quality range to (0,100)
// This is needed so the video_quality value does not get
// truncated when set. The range will be readjusted below
- GtkWidget *qp = GHB_WIDGET(ud->builder, "video_quality");
+ GtkWidget *qp = GHB_WIDGET(ud->builder, "VideoQualitySlider");
gtk_range_set_range (GTK_RANGE(qp), 0, 100);
+ gtk_scale_set_digits(GTK_SCALE(qp), 3);
// Clear the audio list prior to changing the preset. Existing
// audio can cause the container extension to be automatically
// changed when it shouldn't be
@@ -2463,11 +3136,27 @@ presets_list_selection_changed_cb(GtkTreeSelection *selection, signal_user_data_
}
ghb_set_scale (ud, GHB_SCALE_KEEP_NONE);
- gint vqmin, vqmax;
- ghb_vquality_range(ud, &vqmin, &vqmax);
+ gdouble vqmin, vqmax, step, page;
+ gint digits;
+ ghb_vquality_range(ud, &vqmin, &vqmax, &step, &page, &digits);
gtk_range_set_range (GTK_RANGE(qp), vqmin, vqmax);
- gtk_widget_set_sensitive(widget, TRUE);
+ gtk_range_set_increments (GTK_RANGE(qp), step, page);
+ gtk_scale_set_digits(GTK_SCALE(qp), digits);
+
+ gchar *text;
+ gint crop[4];
+ GtkWidget *crop_widget;
+ crop[0] = ghb_settings_get_int(ud->settings, "PictureTopCrop");
+ crop[1] = ghb_settings_get_int(ud->settings, "PictureBottomCrop");
+ crop[2] = ghb_settings_get_int(ud->settings, "PictureLeftCrop");
+ crop[3] = ghb_settings_get_int(ud->settings, "PictureRightCrop");
+ crop_widget = GHB_WIDGET (ud->builder, "crop_values");
+ text = g_strdup_printf("%d:%d:%d:%d",
+ crop[0], crop[1], crop[2], crop[3]);
+ gtk_label_set_text (GTK_LABEL(crop_widget), text);
+ g_free(text);
}
+ gtk_widget_set_sensitive(widget, TRUE);
}
else
{
@@ -2521,8 +3210,7 @@ presets_default_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
indices = ghb_preset_indices_from_path(presetsPlist, preset, &len);
if (indices)
{
- if (!(ghb_presets_get_type(presetsPlist, indices, len) &
- PRESETS_FOLDER))
+ if (!ghb_presets_get_folder(presetsPlist, indices, len))
{
ghb_presets_list_clear_default(ud);
presets_set_default(indices, len);
diff --git a/gtk/src/presets.h b/gtk/src/presets.h
index 3b2f572b1..2c34f30b2 100644
--- a/gtk/src/presets.h
+++ b/gtk/src/presets.h
@@ -18,8 +18,7 @@
void ghb_settings_save(signal_user_data_t *ud, const gchar *name);
void ghb_presets_load(void);
-void ghb_update_from_preset(signal_user_data_t *ud,
- const GValue *preset, const gchar *key);
+void ghb_update_from_preset(signal_user_data_t *ud, const gchar *key);
void ghb_prefs_load(signal_user_data_t *ud);
void ghb_settings_init(signal_user_data_t *ud);
void ghb_settings_close();
diff --git a/gtk/src/queuehandler.c b/gtk/src/queuehandler.c
index 6d56af7a3..63f0f6548 100644
--- a/gtk/src/queuehandler.c
+++ b/gtk/src/queuehandler.c
@@ -70,7 +70,7 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
gchar *dest, *preset, *vol_name, *basename;
const gchar *vcodec, *container;
gchar *fps, *vcodec_abbr;
- gint title, start_chapter, end_chapter, width, height, vqvalue;
+ gint title, start_chapter, end_chapter, width, height;
gint source_width, source_height;
gboolean pass2, anamorphic, round_dim, keep_aspect, vqtype, turbo;
gboolean tweaks;
@@ -84,7 +84,7 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
title = ghb_settings_combo_int(settings, "title");
start_chapter = ghb_settings_get_int(settings, "start_chapter");
end_chapter = ghb_settings_get_int(settings, "end_chapter");
- pass2 = ghb_settings_get_boolean(settings, "two_pass");
+ pass2 = ghb_settings_get_boolean(settings, "VideoTwoPass");
vol_name = ghb_settings_get_string(settings, "volume_label");
dest = ghb_settings_get_string(settings, "destination");
basename = g_path_get_basename(dest);
@@ -130,12 +130,12 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
gint mux;
const GValue *path;
- container = ghb_settings_combo_option(settings, "container");
- mux = ghb_settings_combo_int(settings, "container");
+ container = ghb_settings_combo_option(settings, "FileFormat");
+ mux = ghb_settings_combo_int(settings, "FileFormat");
preset_modified = ghb_settings_get_boolean(settings, "preset_modified");
path = ghb_settings_get_value(settings, "preset");
preset = ghb_preset_path_string(path);
- markers = ghb_settings_get_boolean(settings, "chapter_markers");
+ markers = ghb_settings_get_boolean(settings, "ChapterMarkers");
if (preset_modified)
g_string_append_printf(str,
@@ -161,9 +161,9 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
{
gboolean ipod, http, large;
- ipod = ghb_settings_get_boolean(settings, "ipod_file");
- http = ghb_settings_get_boolean(settings, "http_optimize_mp4");
- large = ghb_settings_get_boolean(settings, "large_mp4");
+ ipod = ghb_settings_get_boolean(settings, "Mp4iPodCompatible");
+ http = ghb_settings_get_boolean(settings, "Mp4HttpOptimize");
+ large = ghb_settings_get_boolean(settings, "Mp4LargeFile");
if (http || ipod || large)
{
g_string_append_printf(str, "<b>MP4 Options:</b><small>");
@@ -182,8 +182,8 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
width = ghb_settings_get_int(settings, "scale_width");
height = ghb_settings_get_int(settings, "scale_height");
anamorphic = ghb_settings_get_boolean(settings, "anamorphic");
- round_dim = ghb_settings_get_boolean(settings, "round_dimensions");
- keep_aspect = ghb_settings_get_boolean(settings, "keep_aspect");
+ round_dim = ghb_settings_get_boolean(settings, "ModDimensions");
+ keep_aspect = ghb_settings_get_boolean(settings, "PictureKeepRatio");
gchar *aspect_desc;
if (anamorphic)
@@ -209,39 +209,51 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
}
}
vqtype = ghb_settings_get_boolean(settings, "vquality_type_constant");
- vqvalue = 0;
gchar *vq_desc = "Error";
gchar *vq_units = "";
+ gchar *vqstr;
+ gdouble vqvalue;
if (!vqtype)
{
vqtype = ghb_settings_get_boolean(settings, "vquality_type_target");
if (!vqtype)
{
// Has to be bitrate
- vqvalue = ghb_settings_get_int(settings, "video_bitrate");
+ vqvalue = ghb_settings_get_int(settings, "VideoAvgBitrate");
vq_desc = "Bitrate:";
vq_units = "kbps";
}
else
{
// Target file size
- vqvalue = ghb_settings_get_int(settings, "video_target_size");
+ vqvalue = ghb_settings_get_int(settings, "VideoTargetSize");
vq_desc = "Target Size:";
vq_units = "MB";
}
+ vqstr = g_strdup_printf("%d", (gint)vqvalue);
}
else
{
// Constant quality
- vqvalue = ghb_settings_get_int(settings, "video_quality");
+ vqvalue = ghb_settings_get_double(settings, "VideoQualitySlider");
vq_desc = "Constant Quality:";
+ if (ghb_settings_get_boolean(settings, "directqp"))
+ {
+ vqstr = g_strdup_printf("%d", (gint)vqvalue);
+ vq_units = "(crf)";
+ }
+ else
+ {
+ vqstr = g_strdup_printf("%.1f", 100*vqvalue);
+ vq_units = "%";
+ }
}
- fps = ghb_settings_get_string(settings, "framerate");
+ fps = ghb_settings_get_string(settings, "VideoFramerate");
if (strcmp("source", fps) == 0)
{
g_free(fps);
- if (ghb_settings_get_boolean(settings, "detelecine"))
+ if (ghb_settings_get_boolean(settings, "PictureDetelecine"))
fps = g_strdup("Same As Source (vfr detelecine)");
else
fps = g_strdup("Same As Source (variable)");
@@ -253,8 +265,8 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
g_free(fps);
fps = tmp;
}
- vcodec = ghb_settings_combo_option(settings, "video_codec");
- vcodec_abbr = ghb_settings_get_string(settings, "video_codec");
+ vcodec = ghb_settings_combo_option(settings, "VideoEncoder");
+ vcodec_abbr = ghb_settings_get_string(settings, "VideoEncoder");
source_width = ghb_settings_get_int(settings, "source_width");
source_height = ghb_settings_get_int(settings, "source_height");
g_string_append_printf(str,
@@ -264,9 +276,9 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
gboolean decomb;
gboolean filters = FALSE;
- decomb = ghb_settings_get_boolean(settings, "decomb");
+ decomb = ghb_settings_get_boolean(settings, "PictureDecomb");
g_string_append_printf(str, "<b>Filters:</b><small>");
- if (ghb_settings_get_boolean(settings, "detelecine"))
+ if (ghb_settings_get_boolean(settings, "PictureDetelecine"))
{
g_string_append_printf(str, " - Detelecine");
filters = TRUE;
@@ -279,31 +291,31 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
else
{
gint deint = ghb_settings_combo_int(settings,
- tweaks ? "tweak_deinterlace":"deinterlace");
+ tweaks ? "tweak_PictureDeinterlace":"PictureDeinterlace");
if (deint)
{
const gchar *opt = ghb_settings_combo_option(settings,
- tweaks ? "tweak_deinterlace":"deinterlace");
+ tweaks ? "tweak_PictureDeinterlace":"PictureDeinterlace");
g_string_append_printf(str, " - Deinterlace: %s", opt);
filters = TRUE;
}
}
gint denoise = ghb_settings_combo_int(settings,
- tweaks ? "tweak_denoise":"denoise");
+ tweaks ? "tweak_PictureDenoise":"PictureDenoise");
if (denoise)
{
const gchar *opt = ghb_settings_combo_option(settings,
- tweaks ? "tweak_denoise":"denoise");
+ tweaks ? "tweak_PictureDenoise":"PictureDenoise");
g_string_append_printf(str, " - Denoise: %s", opt);
filters = TRUE;
}
- gint deblock = ghb_settings_get_int(settings, "deblock");
+ gint deblock = ghb_settings_get_int(settings, "PictureDeblock");
if (deblock >= 5)
{
g_string_append_printf(str, " - Deblock (%d)", deblock);
filters = TRUE;
}
- if (ghb_settings_get_boolean(settings, "grayscale"))
+ if (ghb_settings_get_boolean(settings, "VideoGrayScale"))
{
g_string_append_printf(str, " - Grayscale");
filters = TRUE;
@@ -313,10 +325,10 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
g_string_append_printf(str, "</small>\n");
g_string_append_printf(str,
- "<b>Video:</b> <small>%s, Framerate: %s, %s %d%s</small>\n",
- vcodec, fps, vq_desc, vqvalue, vq_units);
+ "<b>Video:</b> <small>%s, Framerate: %s, %s %s%s</small>\n",
+ vcodec, fps, vq_desc, vqstr, vq_units);
- turbo = ghb_settings_get_boolean(settings, "turbo");
+ turbo = ghb_settings_get_boolean(settings, "VideoTurboTwoPass");
if (turbo)
{
g_string_append_printf(str, "<b>Turbo:</b> <small>On</small>\n");
@@ -342,16 +354,16 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
asettings = ghb_array_get_nth(audio_list, ii);
- acodec = ghb_settings_combo_option(asettings, "audio_codec");
- bitrate = ghb_settings_get_string(asettings, "audio_bitrate");
- samplerate = ghb_settings_get_string(asettings, "audio_rate");
+ acodec = ghb_settings_combo_option(asettings, "AudioEncoder");
+ bitrate = ghb_settings_get_string(asettings, "AudioBitrate");
+ samplerate = ghb_settings_get_string(asettings, "AudioSamplerate");
if (strcmp("source", samplerate) == 0)
{
g_free(samplerate);
samplerate = g_strdup("Same As Source");
}
- track = ghb_settings_get_string(asettings, "audio_track_long");
- mix = ghb_settings_combo_option(asettings, "audio_mix");
+ track = ghb_settings_get_string(asettings, "AudioTrackDescription");
+ mix = ghb_settings_combo_option(asettings, "AudioMixdown");
g_string_append_printf(str,
"<b>Audio:</b><small> %s, Encoder: %s, Mixdown: %s, SampleRate: %s, Bitrate: %s</small>",
track, acodec, mix, samplerate, bitrate);
@@ -372,25 +384,6 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
g_free(preset);
}
-static gint64
-estimate_file_size(signal_user_data_t *ud)
-{
- ghb_title_info_t tinfo;
- gint duration;
- gint bitrate;
- gint64 size;
- gint titleindex;
-
- titleindex = ghb_settings_combo_int(ud->settings, "title");
- if (titleindex < 0) return 0;
-
- if (!ghb_get_title_info(&tinfo, titleindex)) return 0;
- duration = ((tinfo.hours*60)+tinfo.minutes)*60+tinfo.seconds;
- bitrate = ghb_guess_bitrate(ud->settings);
- size = (gint64)duration * (gint64)bitrate/8;
- return size;
-}
-
void
audio_list_refresh(signal_user_data_t *ud)
{
@@ -418,19 +411,19 @@ audio_list_refresh(signal_user_data_t *ud)
return;
asettings = ghb_array_get_nth(audio_list, row);
- track = ghb_settings_combo_option(asettings, "audio_track");
- codec = ghb_settings_combo_option(asettings, "audio_codec");
- br = ghb_settings_combo_option(asettings, "audio_bitrate");
- sr = ghb_settings_combo_option(asettings, "audio_rate");
- mix = ghb_settings_combo_option(asettings, "audio_mix");
- drc = ghb_settings_get_string(asettings, "audio_drc");
+ track = ghb_settings_combo_option(asettings, "AudioTrack");
+ codec = ghb_settings_combo_option(asettings, "AudioEncoder");
+ br = ghb_settings_combo_option(asettings, "AudioBitrate");
+ sr = ghb_settings_combo_option(asettings, "AudioSamplerate");
+ mix = ghb_settings_combo_option(asettings, "AudioMixdown");
+ drc = ghb_settings_get_string(asettings, "AudioTrackDRCSlider");
- s_track = ghb_settings_get_string(asettings, "audio_track");
- s_codec = ghb_settings_get_string(asettings, "audio_codec");
- s_br = ghb_settings_get_string(asettings, "audio_bitrate");
- s_sr = ghb_settings_get_string(asettings, "audio_rate");
- s_mix = ghb_settings_get_string(asettings, "audio_mix");
- s_drc = ghb_settings_get_double(asettings, "audio_drc");
+ s_track = ghb_settings_get_string(asettings, "AudioTrack");
+ s_codec = ghb_settings_get_string(asettings, "AudioEncoder");
+ s_br = ghb_settings_get_string(asettings, "AudioBitrate");
+ s_sr = ghb_settings_get_string(asettings, "AudioSamplerate");
+ s_mix = ghb_settings_get_string(asettings, "AudioMixdown");
+ s_drc = ghb_settings_get_double(asettings, "AudioTrackDRCSlider");
gtk_list_store_set(GTK_LIST_STORE(store), &iter,
// These are displayed in list
@@ -539,7 +532,7 @@ validate_settings(signal_user_data_t *ud)
size = g_file_info_get_attribute_uint64(info,
G_FILE_ATTRIBUTE_FILESYSTEM_FREE);
- gint64 fsize = estimate_file_size(ud);
+ gint64 fsize = 10L * 1024L * 1024L * 1024L;
if (size < fsize)
{
message = g_strdup_printf(
diff --git a/gtk/src/resource_data.h b/gtk/src/resource_data.h
index 2ba6d786f..026389c7c 100644
--- a/gtk/src/resource_data.h
+++ b/gtk/src/resource_data.h
@@ -149,13 +149,13 @@
" &lt;/object&gt;\n"
" &lt;object class=&quot;GtkAdjustment&quot; id=&quot;adjustment5&quot;"
"&gt;\n"
-" &lt;property name=&quot;upper&quot;&gt;100&lt;/property&gt;\n"
+" &lt;property name=&quot;upper&quot;&gt;1&lt;/property&gt;\n"
" &lt;property name=&quot;lower&quot;&gt;0&lt;/property&gt;\n"
-" &lt;property name=&quot;page_increment&quot;&gt;10&lt;/property&gt;"
-"\n"
-" &lt;property name=&quot;step_increment&quot;&gt;1&lt;/property&gt;\n"
+" &lt;property name=&quot;page_increment&quot;&gt;1&lt;/property&gt;\n"
+" &lt;property name=&quot;step_increment&quot;&gt;0.1&lt;/property&gt"
+";\n"
" &lt;property name=&quot;page_size&quot;&gt;0&lt;/property&gt;\n"
-" &lt;property name=&quot;value&quot;&gt;63&lt;/property&gt;\n"
+" &lt;property name=&quot;value&quot;&gt;0.63&lt;/property&gt;\n"
" &lt;/object&gt;\n"
" &lt;object class=&quot;GtkAdjustment&quot; id=&quot;adjustment6&quot;"
"&gt;\n"
@@ -1210,7 +1210,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkComboBox&qu"
-"ot; id=&quot;container&quot;&gt;\n"
+"ot; id=&quot;FileFormat&quot;&gt;\n"
" &lt;property name=&quot;visible&quo"
"t;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;tooltip-tex"
@@ -1240,7 +1240,7 @@
";&gt;0&lt;/property&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCheckBu"
-"tton&quot; id=&quot;ipod_file&quot;&gt;\n"
+"tton&quot; id=&quot;Mp4iPodCompatible&quot;&gt;\n"
" &lt;property name=&quot;visible"
"&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_foc"
@@ -1266,7 +1266,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCheckButton"
-"&quot; id=&quot;http_optimize_mp4&quot;&gt;\n"
+"&quot; id=&quot;Mp4HttpOptimize&quot;&gt;\n"
" &lt;property name=&quot;visible&quo"
"t;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_focus&q"
@@ -1290,7 +1290,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCheckButton"
-"&quot; id=&quot;large_mp4&quot;&gt;\n"
+"&quot; id=&quot;Mp4LargeFile&quot;&gt;\n"
" &lt;property name=&quot;visible&quo"
"t;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_focus&q"
@@ -2038,7 +2038,7 @@
"N_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCheckBu"
-"tton&quot; id=&quot;grayscale&quot;&gt;\n"
+"tton&quot; id=&quot;VideoGrayScale&quot;&gt;\n"
" &lt;property name=&quot;visible"
"&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_foc"
@@ -2060,7 +2060,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCheckBu"
-"tton&quot; id=&quot;detelecine&quot;&gt;\n"
+"tton&quot; id=&quot;PictureDetelecine&quot;&gt;\n"
" &lt;property name=&quot;visible"
"&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_foc"
@@ -2086,7 +2086,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCheckBu"
-"tton&quot; id=&quot;decomb&quot;&gt;\n"
+"tton&quot; id=&quot;PictureDecomb&quot;&gt;\n"
" &lt;property name=&quot;visible"
"&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_foc"
@@ -2142,7 +2142,7 @@
"ale&quot;&gt;0.55&lt;/property&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;Gt"
-"kHScale&quot; id=&quot;deblock&quot;&gt;\n"
+"kHScale&quot; id=&quot;PictureDeblock&quot;&gt;\n"
" &lt;property name=&quot"
";visible&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot"
@@ -2209,7 +2209,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCom"
-"boBox&quot; id=&quot;deinterlace&quot;&gt;\n"
+"boBox&quot; id=&quot;PictureDeinterlace&quot;&gt;\n"
" &lt;property name=&quot;wid"
"th_request&quot;&gt;100&lt;/property&gt;\n"
" &lt;property name=&quot;vis"
@@ -2231,7 +2231,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCom"
-"boBoxEntry&quot; id=&quot;tweak_deinterlace&quot;&gt;\n"
+"boBoxEntry&quot; id=&quot;tweak_PictureDeinterlace&quot;&gt;\n"
" &lt;property name=&quot;vis"
"ible&quot;&gt;False&lt;/property&gt;\n"
" &lt;signal handler=&quot;se"
@@ -2300,7 +2300,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCom"
-"boBox&quot; id=&quot;denoise&quot;&gt;\n"
+"boBox&quot; id=&quot;PictureDenoise&quot;&gt;\n"
" &lt;property name=&quot;wid"
"th_request&quot;&gt;100&lt;/property&gt;\n"
" &lt;property name=&quot;vis"
@@ -2322,7 +2322,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCom"
-"boBoxEntry&quot; id=&quot;tweak_denoise&quot;&gt;\n"
+"boBoxEntry&quot; id=&quot;tweak_PictureDenoise&quot;&gt;\n"
" &lt;property name=&quot;vis"
"ible&quot;&gt;False&lt;/property&gt;\n"
" &lt;signal handler=&quot;se"
@@ -2605,7 +2605,7 @@
"ale&quot;&gt;0&lt;/property&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;Gt"
-"kComboBox&quot; id=&quot;video_codec&quot;&gt;\n"
+"kComboBox&quot; id=&quot;VideoEncoder&quot;&gt;\n"
" &lt;property name=&quot"
";visible&quot;&gt;True&lt;/property&gt;\n"
" &lt;signal handler=&quo"
@@ -2668,7 +2668,7 @@
"ale&quot;&gt;0&lt;/property&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;Gt"
-"kComboBox&quot; id=&quot;framerate&quot;&gt;\n"
+"kComboBox&quot; id=&quot;VideoFramerate&quot;&gt;\n"
" &lt;property name=&quot"
";visible&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot"
@@ -2696,7 +2696,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCheckBu"
-"tton&quot; id=&quot;two_pass&quot;&gt;\n"
+"tton&quot; id=&quot;VideoTwoPass&quot;&gt;\n"
" &lt;property name=&quot;visible"
"&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_foc"
@@ -2728,7 +2728,7 @@
"quot;&gt;0.23999999463558197&lt;/property&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkChe"
-"ckButton&quot; id=&quot;turbo&quot;&gt;\n"
+"ckButton&quot; id=&quot;VideoTurboTwoPass&quot;&gt;\n"
" &lt;property name=&quot;vis"
"ible&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can"
@@ -2881,7 +2881,7 @@
"ale&quot;&gt;0.10000000149011612&lt;/property&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;Gt"
-"kSpinButton&quot; id=&quot;video_bitrate&quot;&gt;\n"
+"kSpinButton&quot; id=&quot;VideoAvgBitrate&quot;&gt;\n"
" &lt;property name=&quot"
";visible&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot"
@@ -2950,7 +2950,7 @@
"ale&quot;&gt;0.10000000149011612&lt;/property&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;Gt"
-"kSpinButton&quot; id=&quot;video_target_size&quot;&gt;\n"
+"kSpinButton&quot; id=&quot;VideoTargetSize&quot;&gt;\n"
" &lt;property name=&quot"
";visible&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot"
@@ -3012,7 +3012,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkHSc"
-"ale&quot; id=&quot;video_quality&quot;&gt;\n"
+"ale&quot; id=&quot;VideoQualitySlider&quot;&gt;\n"
" &lt;property name=&quot;vis"
"ible&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can"
@@ -3023,11 +3023,13 @@
" &lt;property name=&quot;adj"
"ustment&quot;&gt;adjustment5&lt;/property&gt;\n"
" &lt;property name=&quot;dig"
-"its&quot;&gt;0&lt;/property&gt;\n"
+"its&quot;&gt;3&lt;/property&gt;\n"
" &lt;property name=&quot;val"
"ue_pos&quot;&gt;GTK_POS_RIGHT&lt;/property&gt;\n"
" &lt;signal handler=&quot;se"
"tting_widget_changed_cb&quot; name=&quot;value_changed&quot;/&gt;\n"
+" &lt;signal handler=&quot;fo"
+"rmat_vquality_cb&quot; name=&quot;format-value&quot;/&gt;\n"
" &lt;/object&gt;\n"
" &lt;packing&gt;\n"
" &lt;property name=&quot;pos"
@@ -3299,7 +3301,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;Gt"
-"kHScale&quot; id=&quot;audio_drc&quot;&gt;\n"
+"kHScale&quot; id=&quot;AudioTrackDRCSlider&quot;&gt;\n"
" &lt;property name=&quot"
";visible&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot"
@@ -3351,7 +3353,7 @@
"uot;&gt;5&lt;/property&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkComboBo"
-"x&quot; id=&quot;audio_track&quot;&gt;\n"
+"x&quot; id=&quot;AudioTrack&quot;&gt;\n"
" &lt;property name=&quot;width_r"
"equest&quot;&gt;215&lt;/property&gt;\n"
" &lt;property name=&quot;visible"
@@ -3371,7 +3373,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkComboBo"
-"x&quot; id=&quot;audio_codec&quot;&gt;\n"
+"x&quot; id=&quot;AudioEncoder&quot;&gt;\n"
" &lt;property name=&quot;visible"
"&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;events&"
@@ -3395,7 +3397,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkComboBo"
-"x&quot; id=&quot;audio_rate&quot;&gt;\n"
+"x&quot; id=&quot;AudioSamplerate&quot;&gt;\n"
" &lt;property name=&quot;visible"
"&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;events&"
@@ -3523,7 +3525,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkComboBo"
-"x&quot; id=&quot;audio_mix&quot;&gt;\n"
+"x&quot; id=&quot;AudioMixdown&quot;&gt;\n"
" &lt;property name=&quot;visible"
"&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;events&"
@@ -3547,7 +3549,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkComboBo"
-"x&quot; id=&quot;audio_bitrate&quot;&gt;\n"
+"x&quot; id=&quot;AudioBitrate&quot;&gt;\n"
" &lt;property name=&quot;visible"
"&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;events&"
@@ -3665,7 +3667,7 @@
"\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkComboBo"
-"x&quot; id=&quot;source_audio_lang&quot;&gt;\n"
+"x&quot; id=&quot;SourceAudioLang&quot;&gt;\n"
" &lt;property name=&quot;width_r"
"equest&quot;&gt;150&lt;/property&gt;\n"
" &lt;property name=&quot;visible"
@@ -3739,7 +3741,7 @@
"\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkComboBo"
-"x&quot; id=&quot;subtitle_lang&quot;&gt;\n"
+"x&quot; id=&quot;Subtitles&quot;&gt;\n"
" &lt;property name=&quot;width_r"
"equest&quot;&gt;150&lt;/property&gt;\n"
" &lt;property name=&quot;visible"
@@ -3753,7 +3755,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCheckBu"
-"tton&quot; id=&quot;forced_subtitles&quot;&gt;\n"
+"tton&quot; id=&quot;SubtitlesForced&quot;&gt;\n"
" &lt;property name=&quot;visible"
"&quot;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_foc"
@@ -4300,7 +4302,7 @@
"uot;&gt;2&lt;/property&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkTextView&qu"
-"ot; id=&quot;x264_options&quot;&gt;\n"
+"ot; id=&quot;x264Option&quot;&gt;\n"
" &lt;property name=&quot;visible&quo"
"t;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_focus&q"
@@ -5071,7 +5073,7 @@
"t;/property&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCheckButton&quot; i"
-"d=&quot;chapter_markers&quot;&gt;\n"
+"d=&quot;ChapterMarkers&quot;&gt;\n"
" &lt;property name=&quot;visible&quot;&gt;Tr"
"ue&lt;/property&gt;\n"
" &lt;property name=&quot;can_focus&quot;&gt;"
@@ -5618,31 +5620,6 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCheckButton&quot; i"
-"d=&quot;linear_vquality&quot;&gt;\n"
-" &lt;property name=&quot;visible&quot;&gt;Tr"
-"ue&lt;/property&gt;\n"
-" &lt;property name=&quot;can_focus&quot;&gt;"
-"True&lt;/property&gt;\n"
-" &lt;property name=&quot;tooltip_text&quot;&"
-"gt;x264 uses a different scale for video quality than\n"
-"other codecs. This adjusts the scale so that \n"
-"similar values give similar quality across all the\n"
-"video codecs.&lt;/property&gt;\n"
-" &lt;property name=&quot;label&quot; transla"
-"table=&quot;yes&quot;&gt;Adjust x264 video quality scale&lt;/property&g"
-"t;\n"
-" &lt;property name=&quot;draw_indicator&quot"
-";&gt;True&lt;/property&gt;\n"
-" &lt;signal name=&quot;toggled&quot; handler"
-"=&quot;pref_changed_cb&quot;/&gt;\n"
-" &lt;/object&gt;\n"
-" &lt;packing&gt;\n"
-" &lt;property name=&quot;position&quot;&gt;2"
-"&lt;/property&gt;\n"
-" &lt;/packing&gt;\n"
-" &lt;/child&gt;\n"
-" &lt;child&gt;\n"
-" &lt;object class=&quot;GtkCheckButton&quot; i"
"d=&quot;noscale&quot;&gt;\n"
" &lt;property name=&quot;visible&quot;&gt;Tr"
"ue&lt;/property&gt;\n"
@@ -5662,7 +5639,7 @@
"=&quot;pref_changed_cb&quot;/&gt;\n"
" &lt;/object&gt;\n"
" &lt;packing&gt;\n"
-" &lt;property name=&quot;position&quot;&gt;3"
+" &lt;property name=&quot;position&quot;&gt;2"
"&lt;/property&gt;\n"
" &lt;/packing&gt;\n"
" &lt;/child&gt;\n"
@@ -5689,7 +5666,7 @@
"=&quot;vcodec_changed_cb&quot;/&gt;\n"
" &lt;/object&gt;\n"
" &lt;packing&gt;\n"
-" &lt;property name=&quot;position&quot;&gt;4"
+" &lt;property name=&quot;position&quot;&gt;3"
"&lt;/property&gt;\n"
" &lt;/packing&gt;\n"
" &lt;/child&gt;\n"
@@ -5706,7 +5683,7 @@
"=&quot;tweaks_changed_cb&quot;/&gt;\n"
" &lt;/object&gt;\n"
" &lt;packing&gt;\n"
-" &lt;property name=&quot;position&quot;&gt;5"
+" &lt;property name=&quot;position&quot;&gt;4"
"&lt;/property&gt;\n"
" &lt;/packing&gt;\n"
" &lt;/child&gt;\n"
@@ -5723,7 +5700,7 @@
"=&quot;hbfd_feature_changed_cb&quot;/&gt;\n"
" &lt;/object&gt;\n"
" &lt;packing&gt;\n"
-" &lt;property name=&quot;position&quot;&gt;6"
+" &lt;property name=&quot;position&quot;&gt;5"
"&lt;/property&gt;\n"
" &lt;/packing&gt;\n"
" &lt;/child&gt;\n"
@@ -6000,8 +5977,8 @@
" &lt;/packing&gt;\n"
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
-" &lt;object class=&quot;GtkEntry&quot; id=&quot;preset"
-"_name&quot;&gt;\n"
+" &lt;object class=&quot;GtkEntry&quot; id=&quot;Preset"
+"Name&quot;&gt;\n"
" &lt;property name=&quot;visible&quot;&gt;True&lt;/p"
"roperty&gt;\n"
" &lt;property name=&quot;can_focus&quot;&gt;True&lt;"
@@ -6061,7 +6038,7 @@
";/property&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkTextView&quot; id=&quot"
-";preset_description&quot;&gt;\n"
+";PresetDescription&quot;&gt;\n"
" &lt;property name=&quot;height_request&quot;&gt"
";60&lt;/property&gt;\n"
" &lt;property name=&quot;visible&quot;&gt;True&l"
@@ -6767,7 +6744,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkSpinButton&"
-"quot; id=&quot;crop_left&quot;&gt;\n"
+"quot; id=&quot;PictureLeftCrop&quot;&gt;\n"
" &lt;property name=&quot;visible&quo"
"t;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_focus&q"
@@ -6819,7 +6796,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkSpinButton&"
-"quot; id=&quot;crop_top&quot;&gt;\n"
+"quot; id=&quot;PictureTopCrop&quot;&gt;\n"
" &lt;property name=&quot;visible&quo"
"t;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_focus&q"
@@ -6847,7 +6824,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkSpinButton&"
-"quot; id=&quot;crop_bottom&quot;&gt;\n"
+"quot; id=&quot;PictureBottomCrop&quot;&gt;\n"
" &lt;property name=&quot;visible&quo"
"t;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_focus&q"
@@ -6875,7 +6852,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkSpinButton&"
-"quot; id=&quot;crop_right&quot;&gt;\n"
+"quot; id=&quot;PictureRightCrop&quot;&gt;\n"
" &lt;property name=&quot;visible&quo"
"t;&gt;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_focus&q"
@@ -6935,7 +6912,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCheckButton&quot; i"
-"d=&quot;autocrop&quot;&gt;\n"
+"d=&quot;PictureAutoCrop&quot;&gt;\n"
" &lt;property name=&quot;visible&quot;&gt;Tr"
"ue&lt;/property&gt;\n"
" &lt;property name=&quot;can_focus&quot;&gt;"
@@ -7145,7 +7122,7 @@
"MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCheckButton&quo"
-"t; id=&quot;round_dimensions&quot;&gt;\n"
+"t; id=&quot;ModDimensions&quot;&gt;\n"
" &lt;property name=&quot;visible&quot;&g"
"t;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_focus&quot;"
@@ -7219,7 +7196,7 @@
" &lt;/child&gt;\n"
" &lt;child&gt;\n"
" &lt;object class=&quot;GtkCheckButton&quo"
-"t; id=&quot;keep_aspect&quot;&gt;\n"
+"t; id=&quot;PictureKeepRatio&quot;&gt;\n"
" &lt;property name=&quot;visible&quot;&g"
"t;True&lt;/property&gt;\n"
" &lt;property name=&quot;can_focus&quot;"
@@ -10041,17 +10018,13 @@
" <dict>\n"
" <key>Initialization</key>\n"
" <dict>\n"
+" <key>anamorphic</key>\n"
+" <true />\n"
" <key>audio_list</key>\n"
" <array>\n"
" </array>\n"
-" <key>crop_bottom</key>\n"
-" <integer>0</integer>\n"
-" <key>crop_left</key>\n"
-" <integer>0</integer>\n"
-" <key>crop_right</key>\n"
-" <integer>0</integer>\n"
-" <key>crop_top</key>\n"
-" <integer>0</integer>\n"
+" <key>autoscale</key>\n"
+" <false />\n"
" <key>end_chapter</key>\n"
" <integer>100</integer>\n"
" <key>folder</key>\n"
@@ -10069,15 +10042,25 @@
" <key>preset_type_normal</key>\n"
" <true />\n"
" <key>scale_height</key>\n"
-" <integer>480</integer>\n"
+" <integer>0</integer>\n"
" <key>scale_width</key>\n"
-" <integer>720</integer>\n"
+" <integer>0</integer>\n"
" <key>start_chapter</key>\n"
" <integer>1</integer>\n"
" <key>title</key>\n"
" <string>none</string>\n"
+" <key>tweak_PictureDecomb</key>\n"
+" <string></string>\n"
+" <key>tweak_PictureDetelecine</key>\n"
+" <string></string>\n"
" <key>volume_label</key>\n"
" <string>New Video</string>\n"
+" <key>vquality_type_bitrate</key>\n"
+" <false />\n"
+" <key>vquality_type_constant</key>\n"
+" <false />\n"
+" <key>vquality_type_target</key>\n"
+" <false />\n"
" <key>x264_8x8dct</key>\n"
" <false />\n"
" <key>x264_analyse</key>\n"
@@ -10127,8 +10110,6 @@
" <false />\n"
" <key>hbfd_feature</key>\n"
" <false />\n"
-" <key>linear_vquality</key>\n"
-" <false />\n"
" <key>nocheckvquality</key>\n"
" <false />\n"
" <key>noscale</key>\n"
@@ -10142,1388 +10123,1602 @@
" </dict>\n"
" <key>Presets</key>\n"
" <dict>\n"
+" <key>AudioList</key>\n"
+" <array>\n"
+" <dict>\n"
+" <key>AudioBitrate</key>\n"
+" <string>192</string>\n"
+" <key>AudioEncoder</key>\n"
+" <string>ac3</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>dpl2</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>source</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
+" </dict>\n"
+" </array>\n"
+" <key>ChapterMarkers</key>\n"
+" <true />\n"
" <key>Default</key>\n"
" <false />\n"
-" <key>anamorphic</key>\n"
-" <true />\n"
-" <key>autocrop</key>\n"
-" <true />\n"
-" <key>autoscale</key>\n"
+" <key>FileFormat</key>\n"
+" <string>mp4</string>\n"
+" <key>Folder</key>\n"
" <false />\n"
-" <key>chapter_markers</key>\n"
+" <key>ModDimensions</key>\n"
" <true />\n"
-" <key>constant_rate_factor</key>\n"
+" <key>Mp4HttpOptimize</key>\n"
+" <false />\n"
+" <key>Mp4LargeFile</key>\n"
+" <false />\n"
+" <key>Mp4iPodCompatible</key>\n"
+" <false />\n"
+" <key>PictureAutoCrop</key>\n"
" <true />\n"
-" <key>container</key>\n"
-" <string>mp4</string>\n"
-" <key>deblock</key>\n"
+" <key>PictureBottomCrop</key>\n"
" <integer>0</integer>\n"
-" <key>decomb</key>\n"
+" <key>PictureDeblock</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDecomb</key>\n"
" <false />\n"
-" <key>deinterlace</key>\n"
+" <key>PictureDeinterlace</key>\n"
" <string>none</string>\n"
-" <key>denoise</key>\n"
+" <key>PictureDenoise</key>\n"
" <string>none</string>\n"
-" <key>detelecine</key>\n"
+" <key>PictureDetelecine</key>\n"
" <true />\n"
-" <key>directqp</key>\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
+" <true />\n"
+" <key>PictureLeftCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PicturePAR</key>\n"
+" <integer>2</integer>\n"
+" <key>PictureRightCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
+" <integer>0</integer>\n"
+" <key>PresetDescription</key>\n"
+" <string></string>\n"
+" <key>PresetName</key>\n"
+" <string>Name Missing</string>\n"
+" <key>SourceAudioLang</key>\n"
+" <string>und</string>\n"
+" <key>Subtitles</key>\n"
+" <string>none</string>\n"
+" <key>SubtitlesForced</key>\n"
+" <true />\n"
+" <key>Type</key>\n"
+" <integer>1</integer>\n"
+" <key>UsesMaxPictureSettings</key>\n"
" <false />\n"
-" <key>forced_subtitles</key>\n"
+" <key>UsesPictureFilters</key>\n"
" <true />\n"
-" <key>framerate</key>\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>2</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
+" <integer>1800</integer>\n"
+" <key>VideoEncoder</key>\n"
+" <string>x264</string>\n"
+" <key>VideoFramerate</key>\n"
" <string>source</string>\n"
-" <key>grayscale</key>\n"
+" <key>VideoGrayScale</key>\n"
" <false />\n"
-" <key>http_optimize_mp4</key>\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.59999999999999998</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>2</integer>\n"
+" <key>VideoTargetSize</key>\n"
+" <integer>700</integer>\n"
+" <key>VideoTurboTwoPass</key>\n"
" <false />\n"
-" <key>ipod_file</key>\n"
+" <key>VideoTwoPass</key>\n"
" <false />\n"
-" <key>keep_aspect</key>\n"
+" <key>constant_rate_factor</key>\n"
" <true />\n"
-" <key>large_mp4</key>\n"
+" <key>directqp</key>\n"
" <false />\n"
-" <key>max_height</key>\n"
-" <integer>0</integer>\n"
-" <key>max_width</key>\n"
-" <integer>0</integer>\n"
-" <key>pref_audio_list</key>\n"
-" <array>\n"
-" <dict>\n"
-" <key>audio_bitrate</key>\n"
-" <string>192</string>\n"
-" <key>audio_codec</key>\n"
-" <string>ac3</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>dpl2</string>\n"
-" <key>audio_rate</key>\n"
-" <string>source</string>\n"
-" </dict>\n"
-" </array>\n"
-" <key>preset_description</key>\n"
+" <key>x264Option</key>\n"
" <string></string>\n"
-" <key>preset_name</key>\n"
-" <string></string>\n"
-" <key>preset_type</key>\n"
-" <integer>1</integer>\n"
-" <key>round_dimensions</key>\n"
+" </dict>\n"
+" <key>XlatPresets</key>\n"
+" <dict>\n"
+" <key>anamorphic</key>\n"
" <true />\n"
-" <key>source_audio_lang</key>\n"
-" <string>und</string>\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>turbo</key>\n"
-" <false />\n"
-" <key>tweak_decomb</key>\n"
-" <string></string>\n"
-" <key>tweak_detelecine</key>\n"
-" <string></string>\n"
-" <key>two_pass</key>\n"
+" <key>autoscale</key>\n"
" <false />\n"
-" <key>video_bitrate</key>\n"
-" <integer>1800</integer>\n"
-" <key>video_codec</key>\n"
-" <string>x264</string>\n"
-" <key>video_quality</key>\n"
-" <integer>64</integer>\n"
-" <key>video_target_size</key>\n"
-" <integer>700</integer>\n"
" <key>vquality_type_bitrate</key>\n"
" <false />\n"
" <key>vquality_type_constant</key>\n"
" <false />\n"
" <key>vquality_type_target</key>\n"
" <false />\n"
-" <key>x264_options</key>\n"
-" <string></string>\n"
" </dict>\n"
" </dict>\n"
" <key>standard-presets</key>\n"
" <array>\n"
" <dict>\n"
-" <key>preset_folder</key>\n"
+" <key>ChildrenArray</key>\n"
" <array>\n"
" <dict>\n"
-" <key>Default</key>\n"
-" <false />\n"
-" <key>anamorphic</key>\n"
-" <true />\n"
-" <key>autocrop</key>\n"
-" <true />\n"
-" <key>chapter_markers</key>\n"
-" <true />\n"
-" <key>container</key>\n"
-" <string>mp4</string>\n"
-" <key>deblock</key>\n"
-" <integer>0</integer>\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
-" <false />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
-" <false />\n"
-" <key>keep_aspect</key>\n"
-" <false />\n"
-" <key>large_mp4</key>\n"
-" <true />\n"
-" <key>max_height</key>\n"
-" <integer>0</integer>\n"
-" <key>max_width</key>\n"
-" <integer>720</integer>\n"
-" <key>pref_audio_list</key>\n"
+" <key>AudioList</key>\n"
" <array>\n"
" <dict>\n"
-" <key>audio_bitrate</key>\n"
+" <key>AudioBitrate</key>\n"
" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>faac</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>dpl2</string>\n"
-" <key>audio_rate</key>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AAC (faac)</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>Dolby Pro Logic II</string>\n"
+" <key>AudioSamplerate</key>\n"
" <string>48</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
" </dict>\n"
" <dict>\n"
-" <key>audio_bitrate</key>\n"
+" <key>AudioBitrate</key>\n"
" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>ac3</string>\n"
-" <key>audio_drc</key>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AC3 Passthru</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>AC3 Passthru</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>Auto</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>none</string>\n"
-" <key>audio_rate</key>\n"
-" <string>source</string>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
" </dict>\n"
" </array>\n"
-" <key>preset_description</key>\n"
+" <key>ChapterMarkers</key>\n"
+" <true />\n"
+" <key>Default</key>\n"
+" <false />\n"
+" <key>FileFormat</key>\n"
+" <string>MP4 file</string>\n"
+" <key>Folder</key>\n"
+" <false />\n"
+" <key>Mp4LargeFile</key>\n"
+" <true />\n"
+" <key>PictureAutoCrop</key>\n"
+" <true />\n"
+" <key>PictureBottomCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeblock</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
+" <false />\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
+" <false />\n"
+" <key>PictureLeftCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PicturePAR</key>\n"
+" <integer>2</integer>\n"
+" <key>PictureRightCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
+" <integer>720</integer>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s universally compatible, full resolution s"
"ettings for all current Apple devices: iPod, iPhone, AppleTV, and Macs<"
"/string>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>Universal</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
+" <key>UsesPictureFilters</key>\n"
" <true />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>two_pass</key>\n"
-" <false />\n"
-" <key>video_bitrate</key>\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
" <integer>2500</integer>\n"
-" <key>video_codec</key>\n"
-" <string>x264</string>\n"
-" <key>video_quality</key>\n"
-" <integer>59</integer>\n"
-" <key>video_target_size</key>\n"
-" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>VideoEncoder</key>\n"
+" <string>H.264 (x264)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
" <false />\n"
-" <key>vquality_type_constant</key>\n"
-" <true />\n"
-" <key>vquality_type_target</key>\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.5899999737739563</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>2</integer>\n"
+" <key>VideoTargetSize</key>\n"
+" <integer>700</integer>\n"
+" <key>VideoTwoPass</key>\n"
" <false />\n"
-" <key>x264_options</key>\n"
+" <key>x264Option</key>\n"
" <string>level=30:cabac=0:ref=3:mixed-refs=1:analyse=all:me=umh:no-"
"fast-pskip=1:subme=8</string>\n"
" </dict>\n"
" <dict>\n"
-" <key>Default</key>\n"
-" <false />\n"
-" <key>anamorphic</key>\n"
-" <true />\n"
-" <key>autocrop</key>\n"
-" <true />\n"
-" <key>chapter_markers</key>\n"
-" <true />\n"
-" <key>container</key>\n"
-" <string>mp4</string>\n"
-" <key>deblock</key>\n"
-" <integer>0</integer>\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
-" <false />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
-" <false />\n"
-" <key>keep_aspect</key>\n"
-" <false />\n"
-" <key>large_mp4</key>\n"
-" <true />\n"
-" <key>max_height</key>\n"
-" <integer>0</integer>\n"
-" <key>max_width</key>\n"
-" <integer>960</integer>\n"
-" <key>pref_audio_list</key>\n"
+" <key>AudioList</key>\n"
" <array>\n"
" <dict>\n"
-" <key>audio_bitrate</key>\n"
+" <key>AudioBitrate</key>\n"
" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>faac</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>dpl2</string>\n"
-" <key>audio_rate</key>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AAC (faac)</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>Dolby Pro Logic II</string>\n"
+" <key>AudioSamplerate</key>\n"
" <string>48</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
" </dict>\n"
" <dict>\n"
-" <key>audio_bitrate</key>\n"
+" <key>AudioBitrate</key>\n"
" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>ac3</string>\n"
-" <key>audio_drc</key>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AC3 Passthru</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>AC3 Passthru</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>Auto</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>none</string>\n"
-" <key>audio_rate</key>\n"
-" <string>source</string>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
" </dict>\n"
" </array>\n"
-" <key>preset_description</key>\n"
+" <key>ChapterMarkers</key>\n"
+" <true />\n"
+" <key>Default</key>\n"
+" <false />\n"
+" <key>FileFormat</key>\n"
+" <string>MP4 file</string>\n"
+" <key>Folder</key>\n"
+" <false />\n"
+" <key>Mp4LargeFile</key>\n"
+" <true />\n"
+" <key>PictureAutoCrop</key>\n"
+" <true />\n"
+" <key>PictureBottomCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeblock</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
+" <false />\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
+" <false />\n"
+" <key>PictureLeftCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PicturePAR</key>\n"
+" <integer>2</integer>\n"
+" <key>PictureRightCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
+" <integer>960</integer>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s settings for the AppleTV, including Dolby"
" Digital 5.1 AC3 sound. Provides a good balance between quality and fil"
"e size, and optimizes performance.</string>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>AppleTV</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
+" <key>UsesPictureFilters</key>\n"
" <true />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>two_pass</key>\n"
-" <false />\n"
-" <key>video_bitrate</key>\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
" <integer>2500</integer>\n"
-" <key>video_codec</key>\n"
-" <string>x264</string>\n"
-" <key>video_quality</key>\n"
-" <integer>59</integer>\n"
-" <key>video_target_size</key>\n"
-" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>VideoEncoder</key>\n"
+" <string>H.264 (x264)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
" <false />\n"
-" <key>vquality_type_constant</key>\n"
-" <true />\n"
-" <key>vquality_type_target</key>\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.5899999737739563</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>2</integer>\n"
+" <key>VideoTargetSize</key>\n"
+" <integer>700</integer>\n"
+" <key>VideoTwoPass</key>\n"
" <false />\n"
-" <key>x264_options</key>\n"
+" <key>x264Option</key>\n"
" <string>level=30:cabac=0:ref=3:mixed-refs=1:bframes=6:weightb=1:di"
"rect=auto:no-fast-pskip=1:me=umh:subq=9:analyse=all</string>\n"
" </dict>\n"
" <dict>\n"
-" <key>preset_folder</key>\n"
+" <key>ChildrenArray</key>\n"
" <array>\n"
" <dict>\n"
+" <key>AudioList</key>\n"
+" <array>\n"
+" <dict>\n"
+" <key>AudioBitrate</key>\n"
+" <string>160</string>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AAC (faac)</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>Dolby Pro Logic II</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>48</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
+" </dict>\n"
+" </array>\n"
+" <key>ChapterMarkers</key>\n"
+" <true />\n"
" <key>Default</key>\n"
" <false />\n"
-" <key>anamorphic</key>\n"
-" <false />\n"
-" <key>autocrop</key>\n"
+" <key>FileFormat</key>\n"
+" <string>MP4 file</string>\n"
+" <key>Mp4iPodCompatible</key>\n"
" <true />\n"
-" <key>chapter_markers</key>\n"
+" <key>PictureAutoCrop</key>\n"
" <true />\n"
-" <key>container</key>\n"
-" <string>mp4</string>\n"
-" <key>deblock</key>\n"
+" <key>PictureBottomCrop</key>\n"
" <integer>0</integer>\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
-" <false />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
+" <key>PictureDeblock</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
" <false />\n"
-" <key>ipod_file</key>\n"
-" <true />\n"
-" <key>keep_aspect</key>\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
" <true />\n"
-" <key>max_height</key>\n"
+" <key>PictureLeftCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PicturePAR</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureRightCrop</key>\n"
" <integer>0</integer>\n"
-" <key>max_width</key>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
" <integer>320</integer>\n"
-" <key>pref_audio_list</key>\n"
-" <array>\n"
-" <dict>\n"
-" <key>audio_bitrate</key>\n"
-" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>faac</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>dpl2</string>\n"
-" <key>audio_rate</key>\n"
-" <string>48</string>\n"
-" </dict>\n"
-" </array>\n"
-" <key>preset_description</key>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s low resolution settings for the iPod. O"
"ptimized for great playback on the iPod screen, with smaller file size."
"</string>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>iPod Classic &amp; iPod Nano</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
-" <true />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>two_pass</key>\n"
+" <key>UsesMaxPictureSettings</key>\n"
" <false />\n"
-" <key>video_bitrate</key>\n"
-" <integer>700</integer>\n"
-" <key>video_codec</key>\n"
-" <string>x264</string>\n"
-" <key>video_quality</key>\n"
-" <integer>65</integer>\n"
-" <key>video_target_size</key>\n"
-" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>UsesPictureFilters</key>\n"
" <true />\n"
-" <key>vquality_type_constant</key>\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
+" <integer>700</integer>\n"
+" <key>VideoEncoder</key>\n"
+" <string>H.264 (x264)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
" <false />\n"
-" <key>vquality_type_target</key>\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.64709997177124023</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoTargetSize</key>\n"
+" <integer>700</integer>\n"
+" <key>VideoTwoPass</key>\n"
" <false />\n"
-" <key>x264_options</key>\n"
+" <key>x264Option</key>\n"
" <string>level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-buf"
"size=2000:analyse=all:me=umh:no-fast-pskip=1</string>\n"
" </dict>\n"
" <dict>\n"
+" <key>AudioList</key>\n"
+" <array>\n"
+" <dict>\n"
+" <key>AudioBitrate</key>\n"
+" <string>128</string>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AAC (faac)</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>Dolby Pro Logic II</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>48</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
+" </dict>\n"
+" </array>\n"
+" <key>ChapterMarkers</key>\n"
+" <true />\n"
" <key>Default</key>\n"
" <false />\n"
-" <key>anamorphic</key>\n"
-" <false />\n"
-" <key>autocrop</key>\n"
+" <key>FileFormat</key>\n"
+" <string>MP4 file</string>\n"
+" <key>Mp4iPodCompatible</key>\n"
" <true />\n"
-" <key>chapter_markers</key>\n"
+" <key>PictureAutoCrop</key>\n"
" <true />\n"
-" <key>container</key>\n"
-" <string>mp4</string>\n"
-" <key>deblock</key>\n"
+" <key>PictureBottomCrop</key>\n"
" <integer>0</integer>\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
-" <false />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
+" <key>PictureDeblock</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
" <false />\n"
-" <key>ipod_file</key>\n"
-" <true />\n"
-" <key>keep_aspect</key>\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
" <true />\n"
-" <key>max_height</key>\n"
+" <key>PictureLeftCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PicturePAR</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureRightCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureTopCrop</key>\n"
" <integer>0</integer>\n"
-" <key>max_width</key>\n"
+" <key>PictureWidth</key>\n"
" <integer>480</integer>\n"
-" <key>pref_audio_list</key>\n"
-" <array>\n"
-" <dict>\n"
-" <key>audio_bitrate</key>\n"
-" <string>128</string>\n"
-" <key>audio_codec</key>\n"
-" <string>faac</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>dpl2</string>\n"
-" <key>audio_rate</key>\n"
-" <string>48</string>\n"
-" </dict>\n"
-" </array>\n"
-" <key>preset_description</key>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s settings for the iPhone and iPod Touch."
"</string>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>iPhone &amp; iPod Touch</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
-" <true />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>two_pass</key>\n"
+" <key>UsesMaxPictureSettings</key>\n"
" <false />\n"
-" <key>video_bitrate</key>\n"
-" <integer>960</integer>\n"
-" <key>video_codec</key>\n"
-" <string>x264</string>\n"
-" <key>video_quality</key>\n"
-" <integer>65</integer>\n"
-" <key>video_target_size</key>\n"
-" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>UsesPictureFilters</key>\n"
" <true />\n"
-" <key>vquality_type_constant</key>\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
+" <integer>960</integer>\n"
+" <key>VideoEncoder</key>\n"
+" <string>H.264 (x264)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
" <false />\n"
-" <key>vquality_type_target</key>\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.64709997177124023</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoTargetSize</key>\n"
+" <integer>700</integer>\n"
+" <key>VideoTwoPass</key>\n"
" <false />\n"
-" <key>x264_options</key>\n"
+" <key>x264Option</key>\n"
" <string>level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip="
"1:trellis=1</string>\n"
" </dict>\n"
" <dict>\n"
+" <key>AudioList</key>\n"
+" <array>\n"
+" <dict>\n"
+" <key>AudioBitrate</key>\n"
+" <string>160</string>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AAC (faac)</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>Dolby Pro Logic II</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>48</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
+" </dict>\n"
+" </array>\n"
+" <key>ChapterMarkers</key>\n"
+" <true />\n"
" <key>Default</key>\n"
" <false />\n"
-" <key>anamorphic</key>\n"
-" <false />\n"
-" <key>autocrop</key>\n"
+" <key>FileFormat</key>\n"
+" <string>MP4 file</string>\n"
+" <key>Mp4iPodCompatible</key>\n"
" <true />\n"
-" <key>chapter_markers</key>\n"
+" <key>PictureAutoCrop</key>\n"
" <true />\n"
-" <key>container</key>\n"
-" <string>mp4</string>\n"
-" <key>deblock</key>\n"
+" <key>PictureBottomCrop</key>\n"
" <integer>0</integer>\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
-" <false />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
+" <key>PictureDeblock</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
" <false />\n"
-" <key>ipod_file</key>\n"
-" <true />\n"
-" <key>keep_aspect</key>\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
" <true />\n"
-" <key>max_height</key>\n"
+" <key>PictureLeftCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PicturePAR</key>\n"
" <integer>0</integer>\n"
-" <key>max_width</key>\n"
+" <key>PictureRightCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
" <integer>640</integer>\n"
-" <key>pref_audio_list</key>\n"
-" <array>\n"
-" <dict>\n"
-" <key>audio_bitrate</key>\n"
-" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>faac</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>dpl2</string>\n"
-" <key>audio_rate</key>\n"
-" <string>48</string>\n"
-" </dict>\n"
-" </array>\n"
-" <key>preset_description</key>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s high resolution settings for older 5 an"
"d 5.5G iPods. Good video quality, great for viewing on a TV using your "
"iPod</string>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>iPod Legacy</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
-" <true />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>two_pass</key>\n"
+" <key>UsesMaxPictureSettings</key>\n"
" <false />\n"
-" <key>video_bitrate</key>\n"
-" <integer>1500</integer>\n"
-" <key>video_codec</key>\n"
-" <string>x264</string>\n"
-" <key>video_quality</key>\n"
-" <integer>65</integer>\n"
-" <key>video_target_size</key>\n"
-" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>UsesPictureFilters</key>\n"
" <true />\n"
-" <key>vquality_type_constant</key>\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
+" <integer>1500</integer>\n"
+" <key>VideoEncoder</key>\n"
+" <string>H.264 (x264)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
" <false />\n"
-" <key>vquality_type_target</key>\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.64709997177124023</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoTargetSize</key>\n"
+" <integer>700</integer>\n"
+" <key>VideoTwoPass</key>\n"
" <false />\n"
-" <key>x264_options</key>\n"
+" <key>x264Option</key>\n"
" <string>level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bu"
"fsize=2000:analyse=all:me=umh:no-fast-pskip=1</string>\n"
" </dict>\n"
" </array>\n"
-" <key>preset_name</key>\n"
+" <key>Folder</key>\n"
+" <true />\n"
+" <key>PresetName</key>\n"
" <string>iPod &amp; iPhone</string>\n"
-" <key>preset_type</key>\n"
-" <integer>2</integer>\n"
+" <key>Type</key>\n"
+" <integer>0</integer>\n"
" </dict>\n"
" <dict>\n"
+" <key>AudioList</key>\n"
+" <array>\n"
+" <dict>\n"
+" <key>AudioBitrate</key>\n"
+" <string>160</string>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AAC (faac)</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>Dolby Pro Logic II</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>Auto</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
+" </dict>\n"
+" </array>\n"
+" <key>ChapterMarkers</key>\n"
+" <true />\n"
" <key>Default</key>\n"
" <false />\n"
-" <key>anamorphic</key>\n"
-" <true />\n"
-" <key>autocrop</key>\n"
-" <true />\n"
-" <key>autoscale</key>\n"
+" <key>FileFormat</key>\n"
+" <string>MP4 file</string>\n"
+" <key>PictureAutoCrop</key>\n"
" <true />\n"
-" <key>chapter_markers</key>\n"
-" <true />\n"
-" <key>container</key>\n"
-" <string>mp4</string>\n"
-" <key>deblock</key>\n"
+" <key>PictureBottomCrop</key>\n"
" <integer>0</integer>\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
-" <false />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
+" <key>PictureDeblock</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
" <false />\n"
-" <key>keep_aspect</key>\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
" <false />\n"
-" <key>max_height</key>\n"
+" <key>PictureLeftCrop</key>\n"
" <integer>0</integer>\n"
-" <key>max_width</key>\n"
+" <key>PicturePAR</key>\n"
+" <integer>1</integer>\n"
+" <key>PictureRightCrop</key>\n"
" <integer>0</integer>\n"
-" <key>pref_audio_list</key>\n"
-" <array>\n"
-" <dict>\n"
-" <key>audio_bitrate</key>\n"
-" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>faac</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>dpl2</string>\n"
-" <key>audio_rate</key>\n"
-" <string>source</string>\n"
-" </dict>\n"
-" </array>\n"
-" <key>preset_description</key>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
+" <integer>0</integer>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s high profile settings for use with QuickT"
"ime. It can be slow, so use it when the Normal preset doesn&apos;t look"
" good enough.</string>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>QuickTime</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
-" <false />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>turbo</key>\n"
+" <key>UsesMaxPictureSettings</key>\n"
" <true />\n"
-" <key>two_pass</key>\n"
+" <key>UsesPictureFilters</key>\n"
" <true />\n"
-" <key>video_bitrate</key>\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
" <integer>1800</integer>\n"
-" <key>video_codec</key>\n"
-" <string>x264</string>\n"
-" <key>video_quality</key>\n"
-" <integer>65</integer>\n"
-" <key>video_target_size</key>\n"
+" <key>VideoEncoder</key>\n"
+" <string>H.264 (x264)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
+" <false />\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.64709997177124023</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoTargetSize</key>\n"
" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>VideoTurboTwoPass</key>\n"
" <true />\n"
-" <key>vquality_type_constant</key>\n"
-" <false />\n"
-" <key>vquality_type_target</key>\n"
-" <false />\n"
-" <key>x264_options</key>\n"
+" <key>VideoTwoPass</key>\n"
+" <true />\n"
+" <key>x264Option</key>\n"
" <string>ref=3:mixed-refs:bframes=3:weightb:direct=auto:me=umh:subm"
"e=7:analyse=all:8x8dct:trellis=1:no-fast-pskip=1:psy-rd=1,1</string>\n"
" </dict>\n"
" </array>\n"
-" <key>preset_name</key>\n"
+" <key>Folder</key>\n"
+" <true />\n"
+" <key>PresetName</key>\n"
" <string>Apple</string>\n"
-" <key>preset_type</key>\n"
-" <integer>2</integer>\n"
+" <key>Type</key>\n"
+" <integer>0</integer>\n"
" </dict>\n"
" <dict>\n"
-" <key>preset_folder</key>\n"
+" <key>ChildrenArray</key>\n"
" <array>\n"
" <dict>\n"
-" <key>Default</key>\n"
-" <true />\n"
-" <key>anamorphic</key>\n"
-" <true />\n"
-" <key>autocrop</key>\n"
+" <key>AudioList</key>\n"
+" <array>\n"
+" <dict>\n"
+" <key>AudioBitrate</key>\n"
+" <string>160</string>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AAC (faac)</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>Dolby Pro Logic II</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>Auto</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
+" </dict>\n"
+" </array>\n"
+" <key>ChapterMarkers</key>\n"
" <true />\n"
-" <key>autoscale</key>\n"
+" <key>Default</key>\n"
" <true />\n"
-" <key>chapter_markers</key>\n"
+" <key>FileFormat</key>\n"
+" <string>MP4 file</string>\n"
+" <key>PictureAutoCrop</key>\n"
" <true />\n"
-" <key>container</key>\n"
-" <string>mp4</string>\n"
-" <key>deblock</key>\n"
+" <key>PictureBottomCrop</key>\n"
" <integer>0</integer>\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
-" <false />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
+" <key>PictureDeblock</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
" <false />\n"
-" <key>keep_aspect</key>\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
" <false />\n"
-" <key>max_height</key>\n"
+" <key>PictureLeftCrop</key>\n"
" <integer>0</integer>\n"
-" <key>max_width</key>\n"
+" <key>PicturePAR</key>\n"
+" <integer>1</integer>\n"
+" <key>PictureRightCrop</key>\n"
" <integer>0</integer>\n"
-" <key>pref_audio_list</key>\n"
-" <array>\n"
-" <dict>\n"
-" <key>audio_bitrate</key>\n"
-" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>faac</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>dpl2</string>\n"
-" <key>audio_rate</key>\n"
-" <string>source</string>\n"
-" </dict>\n"
-" </array>\n"
-" <key>preset_description</key>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
+" <integer>0</integer>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s normal, default settings.</string>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>Normal</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
-" <false />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>turbo</key>\n"
+" <key>UsesMaxPictureSettings</key>\n"
" <true />\n"
-" <key>two_pass</key>\n"
+" <key>UsesPictureFilters</key>\n"
" <true />\n"
-" <key>video_bitrate</key>\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
" <integer>1500</integer>\n"
-" <key>video_codec</key>\n"
-" <string>x264</string>\n"
-" <key>video_quality</key>\n"
-" <integer>65</integer>\n"
-" <key>video_target_size</key>\n"
+" <key>VideoEncoder</key>\n"
+" <string>H.264 (x264)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
+" <false />\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.64709997177124023</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoTargetSize</key>\n"
" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>VideoTurboTwoPass</key>\n"
" <true />\n"
-" <key>vquality_type_constant</key>\n"
-" <false />\n"
-" <key>vquality_type_target</key>\n"
-" <false />\n"
-" <key>x264_options</key>\n"
+" <key>VideoTwoPass</key>\n"
+" <true />\n"
+" <key>x264Option</key>\n"
" <string>ref=2:bframes=2:me=umh</string>\n"
" </dict>\n"
" <dict>\n"
-" <key>Default</key>\n"
+" <key>AudioList</key>\n"
+" <array>\n"
+" <dict>\n"
+" <key>AudioBitrate</key>\n"
+" <string>160</string>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AAC (faac)</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>Dolby Pro Logic II</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>Auto</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
+" </dict>\n"
+" </array>\n"
+" <key>ChapterMarkers</key>\n"
" <false />\n"
-" <key>anamorphic</key>\n"
+" <key>Default</key>\n"
" <false />\n"
-" <key>autocrop</key>\n"
-" <true />\n"
-" <key>autoscale</key>\n"
+" <key>FileFormat</key>\n"
+" <string>MP4 file</string>\n"
+" <key>PictureAutoCrop</key>\n"
" <true />\n"
-" <key>chapter_markers</key>\n"
-" <false />\n"
-" <key>container</key>\n"
-" <string>mp4</string>\n"
-" <key>deblock</key>\n"
+" <key>PictureBottomCrop</key>\n"
" <integer>0</integer>\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
-" <false />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
+" <key>PictureDeblock</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
" <false />\n"
-" <key>keep_aspect</key>\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
" <true />\n"
-" <key>max_height</key>\n"
+" <key>PictureLeftCrop</key>\n"
" <integer>0</integer>\n"
-" <key>max_width</key>\n"
+" <key>PicturePAR</key>\n"
" <integer>0</integer>\n"
-" <key>pref_audio_list</key>\n"
-" <array>\n"
-" <dict>\n"
-" <key>audio_bitrate</key>\n"
-" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>faac</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>dpl2</string>\n"
-" <key>audio_rate</key>\n"
-" <string>source</string>\n"
-" </dict>\n"
-" </array>\n"
-" <key>preset_description</key>\n"
+" <key>PictureRightCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
+" <integer>0</integer>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s traditional, faster, lower-quality settin"
"gs.</string>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>Classic</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
+" <key>UsesMaxPictureSettings</key>\n"
" <true />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>two_pass</key>\n"
-" <false />\n"
-" <key>video_bitrate</key>\n"
-" <integer>1000</integer>\n"
-" <key>video_codec</key>\n"
-" <string>ffmpeg</string>\n"
-" <key>video_quality</key>\n"
-" <integer>65</integer>\n"
-" <key>video_target_size</key>\n"
-" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>UsesPictureFilters</key>\n"
" <true />\n"
-" <key>vquality_type_constant</key>\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
+" <integer>1000</integer>\n"
+" <key>VideoEncoder</key>\n"
+" <string>MPEG-4 (FFmpeg)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
" <false />\n"
-" <key>vquality_type_target</key>\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.64709997177124023</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoTargetSize</key>\n"
+" <integer>700</integer>\n"
+" <key>VideoTwoPass</key>\n"
" <false />\n"
-" <key>x264_options</key>\n"
+" <key>x264Option</key>\n"
" <string></string>\n"
" </dict>\n"
" </array>\n"
-" <key>preset_name</key>\n"
+" <key>Folder</key>\n"
+" <true />\n"
+" <key>PresetName</key>\n"
" <string>Basic</string>\n"
-" <key>preset_type</key>\n"
-" <integer>2</integer>\n"
+" <key>Type</key>\n"
+" <integer>0</integer>\n"
" </dict>\n"
" <dict>\n"
-" <key>preset_folder</key>\n"
+" <key>ChildrenArray</key>\n"
" <array>\n"
" <dict>\n"
+" <key>AudioList</key>\n"
+" <array>\n"
+" <dict>\n"
+" <key>AudioBitrate</key>\n"
+" <string>160</string>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AAC (faac)</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>Dolby Pro Logic II</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>Auto</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
+" </dict>\n"
+" </array>\n"
+" <key>ChapterMarkers</key>\n"
+" <true />\n"
" <key>Default</key>\n"
" <false />\n"
-" <key>anamorphic</key>\n"
-" <true />\n"
-" <key>autocrop</key>\n"
-" <true />\n"
-" <key>autoscale</key>\n"
+" <key>FileFormat</key>\n"
+" <string>MKV file</string>\n"
+" <key>PictureAutoCrop</key>\n"
" <true />\n"
-" <key>chapter_markers</key>\n"
-" <true />\n"
-" <key>container</key>\n"
-" <string>mkv</string>\n"
-" <key>deblock</key>\n"
+" <key>PictureBottomCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeblock</key>\n"
" <integer>0</integer>\n"
-" <key>decomb</key>\n"
+" <key>PictureDecomb</key>\n"
" <true />\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
" <true />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
-" <false />\n"
-" <key>keep_aspect</key>\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
" <false />\n"
-" <key>max_height</key>\n"
+" <key>PictureLeftCrop</key>\n"
" <integer>0</integer>\n"
-" <key>max_width</key>\n"
+" <key>PicturePAR</key>\n"
+" <integer>1</integer>\n"
+" <key>PictureRightCrop</key>\n"
" <integer>0</integer>\n"
-" <key>pref_audio_list</key>\n"
-" <array>\n"
-" <dict>\n"
-" <key>audio_bitrate</key>\n"
-" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>faac</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>dpl2</string>\n"
-" <key>audio_rate</key>\n"
-" <string>source</string>\n"
-" </dict>\n"
-" </array>\n"
-" <key>preset_description</key>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
+" <integer>0</integer>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s settings for cartoons, anime, and CGI.</s"
"tring>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>Animation</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
-" <false />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>turbo</key>\n"
+" <key>UsesMaxPictureSettings</key>\n"
" <true />\n"
-" <key>two_pass</key>\n"
+" <key>UsesPictureFilters</key>\n"
" <true />\n"
-" <key>video_bitrate</key>\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
" <integer>1000</integer>\n"
-" <key>video_codec</key>\n"
-" <string>x264</string>\n"
-" <key>video_quality</key>\n"
-" <integer>65</integer>\n"
-" <key>video_target_size</key>\n"
+" <key>VideoEncoder</key>\n"
+" <string>H.264 (x264)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
+" <false />\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.64709997177124023</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoTargetSize</key>\n"
" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>VideoTurboTwoPass</key>\n"
" <true />\n"
-" <key>vquality_type_constant</key>\n"
-" <false />\n"
-" <key>vquality_type_target</key>\n"
-" <false />\n"
-" <key>x264_options</key>\n"
+" <key>VideoTwoPass</key>\n"
+" <true />\n"
+" <key>x264Option</key>\n"
" <string>ref=5:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:m"
"e=umh:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip:filter=2,2:psy-"
"rd=1,1:subme=9</string>\n"
" </dict>\n"
" <dict>\n"
+" <key>AudioList</key>\n"
+" <array>\n"
+" <dict>\n"
+" <key>AudioBitrate</key>\n"
+" <string>160</string>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AC3 Passthru</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>AC3 Passthru</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>Auto</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
+" </dict>\n"
+" </array>\n"
+" <key>ChapterMarkers</key>\n"
+" <true />\n"
" <key>Default</key>\n"
" <false />\n"
-" <key>anamorphic</key>\n"
-" <true />\n"
-" <key>autocrop</key>\n"
+" <key>FileFormat</key>\n"
+" <string>MKV file</string>\n"
+" <key>PictureAutoCrop</key>\n"
" <true />\n"
-" <key>autoscale</key>\n"
-" <true />\n"
-" <key>chapter_markers</key>\n"
-" <true />\n"
-" <key>container</key>\n"
-" <string>mkv</string>\n"
-" <key>deblock</key>\n"
+" <key>PictureBottomCrop</key>\n"
" <integer>0</integer>\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
-" <false />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
+" <key>PictureDeblock</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
" <false />\n"
-" <key>keep_aspect</key>\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
" <false />\n"
-" <key>max_height</key>\n"
+" <key>PictureLeftCrop</key>\n"
" <integer>0</integer>\n"
-" <key>max_width</key>\n"
+" <key>PicturePAR</key>\n"
+" <integer>1</integer>\n"
+" <key>PictureRightCrop</key>\n"
" <integer>0</integer>\n"
-" <key>pref_audio_list</key>\n"
-" <array>\n"
-" <dict>\n"
-" <key>audio_bitrate</key>\n"
-" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>ac3</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>none</string>\n"
-" <key>audio_rate</key>\n"
-" <string>source</string>\n"
-" </dict>\n"
-" </array>\n"
-" <key>preset_description</key>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
+" <integer>0</integer>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s preset for consistently excellent quality"
" in one pass, with the downside of entirely unpredictable file sizes an"
"d bitrates.</string>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>Constant Quality Rate</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
-" <false />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>turbo</key>\n"
-" <false />\n"
-" <key>two_pass</key>\n"
-" <false />\n"
-" <key>video_bitrate</key>\n"
+" <key>UsesMaxPictureSettings</key>\n"
+" <true />\n"
+" <key>UsesPictureFilters</key>\n"
+" <true />\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
" <integer>2000</integer>\n"
-" <key>video_codec</key>\n"
-" <string>x264</string>\n"
-" <key>video_quality</key>\n"
-" <integer>60</integer>\n"
-" <key>video_target_size</key>\n"
+" <key>VideoEncoder</key>\n"
+" <string>H.264 (x264)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
+" <false />\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.60000002384185791</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>2</integer>\n"
+" <key>VideoTargetSize</key>\n"
" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>VideoTurboTwoPass</key>\n"
" <false />\n"
-" <key>vquality_type_constant</key>\n"
-" <true />\n"
-" <key>vquality_type_target</key>\n"
+" <key>VideoTwoPass</key>\n"
" <false />\n"
-" <key>x264_options</key>\n"
+" <key>x264Option</key>\n"
" <string>ref=3:mixed-refs:bframes=3:b-pyramid:weightb:filter=-2,-1:"
"trellis=1:analyse=all:8x8dct:me=umh:subme=9:psy-rd=1,1</string>\n"
" </dict>\n"
" <dict>\n"
+" <key>AudioList</key>\n"
+" <array>\n"
+" <dict>\n"
+" <key>AudioBitrate</key>\n"
+" <string>160</string>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AC3 Passthru</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>AC3 Passthru</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>Auto</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
+" </dict>\n"
+" </array>\n"
+" <key>ChapterMarkers</key>\n"
+" <true />\n"
" <key>Default</key>\n"
" <false />\n"
-" <key>anamorphic</key>\n"
+" <key>FileFormat</key>\n"
+" <string>MKV file</string>\n"
+" <key>PictureAutoCrop</key>\n"
" <true />\n"
-" <key>autocrop</key>\n"
-" <true />\n"
-" <key>autoscale</key>\n"
-" <true />\n"
-" <key>chapter_markers</key>\n"
-" <true />\n"
-" <key>container</key>\n"
-" <string>mkv</string>\n"
-" <key>deblock</key>\n"
+" <key>PictureBottomCrop</key>\n"
" <integer>0</integer>\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
-" <false />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
+" <key>PictureDeblock</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
" <false />\n"
-" <key>keep_aspect</key>\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
" <false />\n"
-" <key>max_height</key>\n"
+" <key>PictureLeftCrop</key>\n"
" <integer>0</integer>\n"
-" <key>max_width</key>\n"
+" <key>PicturePAR</key>\n"
+" <integer>1</integer>\n"
+" <key>PictureRightCrop</key>\n"
" <integer>0</integer>\n"
-" <key>pref_audio_list</key>\n"
-" <array>\n"
-" <dict>\n"
-" <key>audio_bitrate</key>\n"
-" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>ac3</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>none</string>\n"
-" <key>audio_rate</key>\n"
-" <string>source</string>\n"
-" </dict>\n"
-" </array>\n"
-" <key>preset_description</key>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
+" <integer>0</integer>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s preset for feature films.</string>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>Film</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
-" <false />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>turbo</key>\n"
+" <key>UsesMaxPictureSettings</key>\n"
" <true />\n"
-" <key>two_pass</key>\n"
+" <key>UsesPictureFilters</key>\n"
" <true />\n"
-" <key>video_bitrate</key>\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
" <integer>1800</integer>\n"
-" <key>video_codec</key>\n"
-" <string>x264</string>\n"
-" <key>video_quality</key>\n"
-" <integer>65</integer>\n"
-" <key>video_target_size</key>\n"
+" <key>VideoEncoder</key>\n"
+" <string>H.264 (x264)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
+" <false />\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.64709997177124023</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoTargetSize</key>\n"
" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>VideoTurboTwoPass</key>\n"
" <true />\n"
-" <key>vquality_type_constant</key>\n"
-" <false />\n"
-" <key>vquality_type_target</key>\n"
-" <false />\n"
-" <key>x264_options</key>\n"
+" <key>VideoTwoPass</key>\n"
+" <true />\n"
+" <key>x264Option</key>\n"
" <string>ref=3:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:m"
"e=umh:subme=9:analyse=all:8x8dct:trellis=1:no-fast-pskip:psy-rd=1,1</st"
"ring>\n"
" </dict>\n"
" <dict>\n"
+" <key>AudioList</key>\n"
+" <array>\n"
+" <dict>\n"
+" <key>AudioBitrate</key>\n"
+" <string>160</string>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AAC (faac)</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>Dolby Pro Logic II</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>Auto</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
+" </dict>\n"
+" </array>\n"
+" <key>ChapterMarkers</key>\n"
+" <true />\n"
" <key>Default</key>\n"
" <false />\n"
-" <key>anamorphic</key>\n"
-" <true />\n"
-" <key>autocrop</key>\n"
+" <key>FileFormat</key>\n"
+" <string>MKV file</string>\n"
+" <key>PictureAutoCrop</key>\n"
" <true />\n"
-" <key>autoscale</key>\n"
-" <true />\n"
-" <key>chapter_markers</key>\n"
-" <true />\n"
-" <key>container</key>\n"
-" <string>mkv</string>\n"
-" <key>deblock</key>\n"
+" <key>PictureBottomCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeblock</key>\n"
" <integer>0</integer>\n"
-" <key>decomb</key>\n"
+" <key>PictureDecomb</key>\n"
" <true />\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
" <true />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
-" <false />\n"
-" <key>keep_aspect</key>\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
" <false />\n"
-" <key>max_height</key>\n"
+" <key>PictureLeftCrop</key>\n"
" <integer>0</integer>\n"
-" <key>max_width</key>\n"
+" <key>PicturePAR</key>\n"
+" <integer>1</integer>\n"
+" <key>PictureRightCrop</key>\n"
" <integer>0</integer>\n"
-" <key>pref_audio_list</key>\n"
-" <array>\n"
-" <dict>\n"
-" <key>audio_bitrate</key>\n"
-" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>faac</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>dpl2</string>\n"
-" <key>audio_rate</key>\n"
-" <string>source</string>\n"
-" </dict>\n"
-" </array>\n"
-" <key>preset_description</key>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
+" <integer>0</integer>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s settings for video from television.</stri"
"ng>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>Television</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
-" <false />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>turbo</key>\n"
+" <key>UsesMaxPictureSettings</key>\n"
" <true />\n"
-" <key>two_pass</key>\n"
+" <key>UsesPictureFilters</key>\n"
" <true />\n"
-" <key>video_bitrate</key>\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
" <integer>1300</integer>\n"
-" <key>video_codec</key>\n"
-" <string>x264</string>\n"
-" <key>video_quality</key>\n"
-" <integer>65</integer>\n"
-" <key>video_target_size</key>\n"
+" <key>VideoEncoder</key>\n"
+" <string>H.264 (x264)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
+" <false />\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.64709997177124023</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoTargetSize</key>\n"
" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>VideoTurboTwoPass</key>\n"
" <true />\n"
-" <key>vquality_type_constant</key>\n"
-" <false />\n"
-" <key>vquality_type_target</key>\n"
-" <false />\n"
-" <key>x264_options</key>\n"
+" <key>VideoTwoPass</key>\n"
+" <true />\n"
+" <key>x264Option</key>\n"
" <string>ref=3:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:m"
"e=umh:subme=9:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip=1:psy-r"
"d=1,1</string>\n"
" </dict>\n"
" </array>\n"
-" <key>preset_name</key>\n"
+" <key>Folder</key>\n"
+" <true />\n"
+" <key>PresetName</key>\n"
" <string>High Profile</string>\n"
-" <key>preset_type</key>\n"
-" <integer>2</integer>\n"
+" <key>Type</key>\n"
+" <integer>0</integer>\n"
" </dict>\n"
" <dict>\n"
-" <key>preset_folder</key>\n"
+" <key>ChildrenArray</key>\n"
" <array>\n"
" <dict>\n"
+" <key>AudioList</key>\n"
+" <array>\n"
+" <dict>\n"
+" <key>AudioBitrate</key>\n"
+" <string>128</string>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AAC (faac)</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>Dolby Pro Logic II</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>48</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
+" </dict>\n"
+" </array>\n"
+" <key>ChapterMarkers</key>\n"
+" <true />\n"
" <key>Default</key>\n"
" <false />\n"
-" <key>anamorphic</key>\n"
-" <false />\n"
-" <key>autocrop</key>\n"
-" <true />\n"
-" <key>chapter_markers</key>\n"
+" <key>FileFormat</key>\n"
+" <string>MP4 file</string>\n"
+" <key>PictureAutoCrop</key>\n"
" <true />\n"
-" <key>container</key>\n"
-" <string>mp4</string>\n"
-" <key>deblock</key>\n"
+" <key>PictureBottomCrop</key>\n"
" <integer>0</integer>\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
-" <false />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
+" <key>PictureDeblock</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
" <false />\n"
-" <key>keep_aspect</key>\n"
-" <true />\n"
-" <key>max_height</key>\n"
+" <key>PictureHeight</key>\n"
" <integer>208</integer>\n"
-" <key>max_width</key>\n"
+" <key>PictureKeepRatio</key>\n"
+" <true />\n"
+" <key>PictureLeftCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PicturePAR</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureRightCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
" <integer>368</integer>\n"
-" <key>pref_audio_list</key>\n"
-" <array>\n"
-" <dict>\n"
-" <key>audio_bitrate</key>\n"
-" <string>128</string>\n"
-" <key>audio_codec</key>\n"
-" <string>faac</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>dpl2</string>\n"
-" <key>audio_rate</key>\n"
-" <string>48</string>\n"
-" </dict>\n"
-" </array>\n"
-" <key>preset_description</key>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s settings for the Sony PlayStation Portabl"
"e.</string>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>PSP</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
-" <true />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>two_pass</key>\n"
+" <key>UsesMaxPictureSettings</key>\n"
" <false />\n"
-" <key>video_bitrate</key>\n"
-" <integer>1024</integer>\n"
-" <key>video_codec</key>\n"
-" <string>ffmpeg</string>\n"
-" <key>video_quality</key>\n"
-" <integer>65</integer>\n"
-" <key>video_target_size</key>\n"
-" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>UsesPictureFilters</key>\n"
" <true />\n"
-" <key>vquality_type_constant</key>\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
+" <integer>1024</integer>\n"
+" <key>VideoEncoder</key>\n"
+" <string>MPEG-4 (FFmpeg)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
" <false />\n"
-" <key>vquality_type_target</key>\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.64709997177124023</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoTargetSize</key>\n"
+" <integer>700</integer>\n"
+" <key>VideoTwoPass</key>\n"
" <false />\n"
-" <key>x264_options</key>\n"
+" <key>x264Option</key>\n"
" <string></string>\n"
" </dict>\n"
" <dict>\n"
-" <key>Default</key>\n"
+" <key>AudioList</key>\n"
+" <array>\n"
+" <dict>\n"
+" <key>AudioBitrate</key>\n"
+" <string>160</string>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AAC (faac)</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>Dolby Pro Logic II</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>48</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
+" </dict>\n"
+" </array>\n"
+" <key>ChapterMarkers</key>\n"
" <false />\n"
-" <key>anamorphic</key>\n"
-" <true />\n"
-" <key>autocrop</key>\n"
+" <key>Default</key>\n"
" <false />\n"
-" <key>autoscale</key>\n"
-" <true />\n"
-" <key>chapter_markers</key>\n"
+" <key>FileFormat</key>\n"
+" <string>MP4 file</string>\n"
+" <key>PictureAutoCrop</key>\n"
" <false />\n"
-" <key>container</key>\n"
-" <string>mp4</string>\n"
-" <key>deblock</key>\n"
+" <key>PictureBottomCrop</key>\n"
" <integer>0</integer>\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
-" <false />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
+" <key>PictureDeblock</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
" <false />\n"
-" <key>keep_aspect</key>\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
" <false />\n"
-" <key>max_height</key>\n"
+" <key>PictureLeftCrop</key>\n"
" <integer>0</integer>\n"
-" <key>max_width</key>\n"
+" <key>PicturePAR</key>\n"
+" <integer>1</integer>\n"
+" <key>PictureRightCrop</key>\n"
" <integer>0</integer>\n"
-" <key>pref_audio_list</key>\n"
-" <array>\n"
-" <dict>\n"
-" <key>audio_bitrate</key>\n"
-" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>faac</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>dpl2</string>\n"
-" <key>audio_rate</key>\n"
-" <string>48</string>\n"
-" </dict>\n"
-" </array>\n"
-" <key>preset_description</key>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
+" <integer>0</integer>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s settings for the Sony PlayStation 3.</str"
"ing>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>PS3</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
-" <false />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>two_pass</key>\n"
-" <false />\n"
-" <key>video_bitrate</key>\n"
-" <integer>2500</integer>\n"
-" <key>video_codec</key>\n"
-" <string>x264</string>\n"
-" <key>video_quality</key>\n"
-" <integer>65</integer>\n"
-" <key>video_target_size</key>\n"
-" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>UsesMaxPictureSettings</key>\n"
+" <true />\n"
+" <key>UsesPictureFilters</key>\n"
" <true />\n"
-" <key>vquality_type_constant</key>\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
+" <integer>2500</integer>\n"
+" <key>VideoEncoder</key>\n"
+" <string>H.264 (x264)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
" <false />\n"
-" <key>vquality_type_target</key>\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.64709997177124023</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoTargetSize</key>\n"
+" <integer>700</integer>\n"
+" <key>VideoTwoPass</key>\n"
" <false />\n"
-" <key>x264_options</key>\n"
+" <key>x264Option</key>\n"
" <string>level=41:me=umh</string>\n"
" </dict>\n"
" <dict>\n"
-" <key>Default</key>\n"
+" <key>AudioList</key>\n"
+" <array>\n"
+" <dict>\n"
+" <key>AudioBitrate</key>\n"
+" <string>160</string>\n"
+" <key>AudioEncoder</key>\n"
+" <string>AAC (faac)</string>\n"
+" <key>AudioMixdown</key>\n"
+" <string>Dolby Pro Logic II</string>\n"
+" <key>AudioSamplerate</key>\n"
+" <string>48</string>\n"
+" <key>AudioTrack</key>\n"
+" <integer>1</integer>\n"
+" <key>AudioTrackDRCSlider</key>\n"
+" <real>1</real>\n"
+" <key>AudioTrackDescription</key>\n"
+" <string></string>\n"
+" </dict>\n"
+" </array>\n"
+" <key>ChapterMarkers</key>\n"
" <false />\n"
-" <key>anamorphic</key>\n"
-" <true />\n"
-" <key>autoscale</key>\n"
-" <true />\n"
-" <key>chapter_markers</key>\n"
+" <key>Default</key>\n"
" <false />\n"
-" <key>container</key>\n"
-" <string>mp4</string>\n"
-" <key>deblock</key>\n"
+" <key>FileFormat</key>\n"
+" <string>MP4 file</string>\n"
+" <key>PictureBottomCrop</key>\n"
" <integer>0</integer>\n"
-" <key>deinterlace</key>\n"
-" <string>none</string>\n"
-" <key>denoise</key>\n"
-" <string>none</string>\n"
-" <key>detelecine</key>\n"
-" <false />\n"
-" <key>framerate</key>\n"
-" <string>source</string>\n"
-" <key>grayscale</key>\n"
+" <key>PictureDeblock</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureDeinterlace</key>\n"
+" <string>0</string>\n"
+" <key>PictureDenoise</key>\n"
+" <string>0</string>\n"
+" <key>PictureDetelecine</key>\n"
" <false />\n"
-" <key>keep_aspect</key>\n"
+" <key>PictureHeight</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureKeepRatio</key>\n"
" <false />\n"
-" <key>max_height</key>\n"
+" <key>PictureLeftCrop</key>\n"
" <integer>0</integer>\n"
-" <key>max_width</key>\n"
+" <key>PicturePAR</key>\n"
+" <integer>1</integer>\n"
+" <key>PictureRightCrop</key>\n"
" <integer>0</integer>\n"
-" <key>pref_audio_list</key>\n"
-" <array>\n"
-" <dict>\n"
-" <key>audio_bitrate</key>\n"
-" <string>160</string>\n"
-" <key>audio_codec</key>\n"
-" <string>faac</string>\n"
-" <key>audio_drc</key>\n"
-" <real>1</real>\n"
-" <key>audio_mix</key>\n"
-" <string>dpl2</string>\n"
-" <key>audio_rate</key>\n"
-" <string>48</string>\n"
-" </dict>\n"
-" </array>\n"
-" <key>preset_description</key>\n"
+" <key>PictureTopCrop</key>\n"
+" <integer>0</integer>\n"
+" <key>PictureWidth</key>\n"
+" <integer>0</integer>\n"
+" <key>PresetDescription</key>\n"
" <string>HandBrake&apos;s settings for the Microsoft Xbox 360.</str"
"ing>\n"
-" <key>preset_name</key>\n"
+" <key>PresetName</key>\n"
" <string>Xbox 360</string>\n"
-" <key>preset_type</key>\n"
+" <key>Subtitles</key>\n"
+" <string>None</string>\n"
+" <key>Type</key>\n"
" <integer>0</integer>\n"
-" <key>round_dimensions</key>\n"
-" <false />\n"
-" <key>subtitle_lang</key>\n"
-" <string>none</string>\n"
-" <key>two_pass</key>\n"
-" <false />\n"
-" <key>video_bitrate</key>\n"
-" <integer>2000</integer>\n"
-" <key>video_codec</key>\n"
-" <string>x264</string>\n"
-" <key>video_quality</key>\n"
-" <integer>65</integer>\n"
-" <key>video_target_size</key>\n"
-" <integer>700</integer>\n"
-" <key>vquality_type_bitrate</key>\n"
+" <key>UsesMaxPictureSettings</key>\n"
" <true />\n"
-" <key>vquality_type_constant</key>\n"
+" <key>UsesPictureFilters</key>\n"
+" <true />\n"
+" <key>UsesPictureSettings</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoAvgBitrate</key>\n"
+" <integer>2000</integer>\n"
+" <key>VideoEncoder</key>\n"
+" <string>H.264 (x264)</string>\n"
+" <key>VideoFramerate</key>\n"
+" <string>Same as source</string>\n"
+" <key>VideoGrayScale</key>\n"
" <false />\n"
-" <key>vquality_type_target</key>\n"
+" <key>VideoQualitySlider</key>\n"
+" <real>0.64709997177124023</real>\n"
+" <key>VideoQualityType</key>\n"
+" <integer>1</integer>\n"
+" <key>VideoTargetSize</key>\n"
+" <integer>700</integer>\n"
+" <key>VideoTwoPass</key>\n"
" <false />\n"
-" <key>x264_options</key>\n"
+" <key>x264Option</key>\n"
" <string>level=40:ref=2:mixed-refs:bframes=3:weightb:subme=7:direct"
"=auto:b-pyramid:me=umh:analyse=all:no-fast-pskip:filter=-2,-1</string>\n"
" </dict>\n"
" </array>\n"
-" <key>preset_name</key>\n"
+" <key>Folder</key>\n"
+" <true />\n"
+" <key>PresetName</key>\n"
" <string>Gaming Consoles</string>\n"
-" <key>preset_type</key>\n"
-" <integer>2</integer>\n"
+" <key>Type</key>\n"
+" <integer>0</integer>\n"
" </dict>\n"
" </array>\n"
" <key>widget-deps</key>\n"
" <dict>\n"
-" <key>anamorphic</key>\n"
+" <key>AudioEncoder</key>\n"
" <array>\n"
-" <string>keep_aspect</string>\n"
-" <string>scale_height</string>\n"
+" <string>AudioBitrate</string>\n"
+" <string>AudioSamplerate</string>\n"
+" <string>AudioMixdown</string>\n"
+" <string>AudioTrackDRCSlider</string>\n"
" </array>\n"
-" <key>audio_codec</key>\n"
+" <key>ChapterMarkers</key>\n"
" <array>\n"
-" <string>audio_bitrate</string>\n"
-" <string>audio_rate</string>\n"
-" <string>audio_mix</string>\n"
-" <string>audio_drc</string>\n"
+" <string>chapters_list</string>\n"
" </array>\n"
-" <key>autocrop</key>\n"
+" <key>FileFormat</key>\n"
" <array>\n"
-" <string>crop_top</string>\n"
-" <string>crop_bottom</string>\n"
-" <string>crop_left</string>\n"
-" <string>crop_right</string>\n"
+" <string>Mp4LargeFile</string>\n"
+" <string>Mp4HttpOptimize</string>\n"
+" <string>Mp4iPodCompatible</string>\n"
" </array>\n"
-" <key>autoscale</key>\n"
+" <key>PictureAutoCrop</key>\n"
+" <array>\n"
+" <string>PictureTopCrop</string>\n"
+" <string>PictureBottomCrop</string>\n"
+" <string>PictureLeftCrop</string>\n"
+" <string>PictureRightCrop</string>\n"
+" </array>\n"
+" <key>PictureDecomb</key>\n"
+" <array>\n"
+" <string>PictureDeinterlace</string>\n"
+" <string>tweak_PictureDeinterlace</string>\n"
+" </array>\n"
+" <key>PictureKeepRatio</key>\n"
" <array>\n"
-" <string>scale_width</string>\n"
" <string>scale_height</string>\n"
" </array>\n"
-" <key>chapter_markers</key>\n"
+" <key>VideoEncoder</key>\n"
" <array>\n"
-" <string>chapters_list</string>\n"
+" <string>x264_tab</string>\n"
+" <string>x264_tab_label</string>\n"
+" <string>Mp4iPodCompatible</string>\n"
+" <string>directqp</string>\n"
" </array>\n"
-" <key>container</key>\n"
+" <key>VideoTwoPass</key>\n"
" <array>\n"
-" <string>large_mp4</string>\n"
-" <string>http_optimize_mp4</string>\n"
-" <string>ipod_file</string>\n"
+" <string>VideoTurboTwoPass</string>\n"
" </array>\n"
-" <key>decomb</key>\n"
+" <key>anamorphic</key>\n"
" <array>\n"
-" <string>deinterlace</string>\n"
-" <string>tweak_deinterlace</string>\n"
+" <string>PictureKeepRatio</string>\n"
+" <string>scale_height</string>\n"
" </array>\n"
-" <key>keep_aspect</key>\n"
+" <key>autoscale</key>\n"
" <array>\n"
+" <string>scale_width</string>\n"
" <string>scale_height</string>\n"
" </array>\n"
" <key>title</key>\n"
@@ -11541,34 +11736,24 @@
" <string>start_chapter</string>\n"
" <string>end_chapter</string>\n"
" </array>\n"
-" <key>two_pass</key>\n"
-" <array>\n"
-" <string>turbo</string>\n"
-" </array>\n"
" <key>use_source_name</key>\n"
" <array>\n"
" <string>chapters_in_destination</string>\n"
" </array>\n"
-" <key>video_codec</key>\n"
-" <array>\n"
-" <string>x264_tab</string>\n"
-" <string>x264_tab_label</string>\n"
-" <string>ipod_file</string>\n"
-" </array>\n"
" <key>vquality_type_bitrate</key>\n"
" <array>\n"
-" <string>video_bitrate</string>\n"
+" <string>VideoAvgBitrate</string>\n"
" </array>\n"
" <key>vquality_type_constant</key>\n"
" <array>\n"
-" <string>video_quality</string>\n"
+" <string>VideoQualitySlider</string>\n"
" <string>constant_rate_factor</string>\n"
-" <string>two_pass</string>\n"
-" <string>turbo</string>\n"
+" <string>VideoTwoPass</string>\n"
+" <string>VideoTurboTwoPass</string>\n"
" </array>\n"
" <key>vquality_type_target</key>\n"
" <array>\n"
-" <string>video_target_size</string>\n"
+" <string>VideoTargetSize</string>\n"
" </array>\n"
" <key>x264_bframes</key>\n"
" <array>\n"
@@ -11591,119 +11776,169 @@
" </dict>\n"
" <key>widget-reverse-deps</key>\n"
" <dict>\n"
-" <key>audio_bitrate</key>\n"
+" <key>AudioBitrate</key>\n"
" <array>\n"
" <array>\n"
-" <string>audio_codec</string>\n"
+" <string>AudioEncoder</string>\n"
" <string>ac3</string>\n"
" <true />\n"
" </array>\n"
" </array>\n"
-" <key>audio_drc</key>\n"
+" <key>AudioMixdown</key>\n"
" <array>\n"
" <array>\n"
-" <string>audio_codec</string>\n"
+" <string>AudioEncoder</string>\n"
" <string>ac3</string>\n"
" <true />\n"
" </array>\n"
" </array>\n"
-" <key>audio_mix</key>\n"
+" <key>AudioSamplerate</key>\n"
" <array>\n"
" <array>\n"
-" <string>audio_codec</string>\n"
+" <string>AudioEncoder</string>\n"
" <string>ac3</string>\n"
" <true />\n"
" </array>\n"
" </array>\n"
-" <key>audio_rate</key>\n"
+" <key>AudioTrackDRCSlider</key>\n"
" <array>\n"
" <array>\n"
-" <string>audio_codec</string>\n"
+" <string>AudioEncoder</string>\n"
" <string>ac3</string>\n"
" <true />\n"
" </array>\n"
" </array>\n"
-" <key>chapters_in_destination</key>\n"
+" <key>Mp4HttpOptimize</key>\n"
" <array>\n"
" <array>\n"
-" <string>use_source_name</string>\n"
-" <string>TRUE</string>\n"
+" <string>FileFormat</string>\n"
+" <string>mp4|m4v</string>\n"
" <false />\n"
" </array>\n"
" </array>\n"
-" <key>chapters_label</key>\n"
+" <key>Mp4LargeFile</key>\n"
" <array>\n"
" <array>\n"
-" <string>title</string>\n"
-" <string>none</string>\n"
-" <true />\n"
+" <string>FileFormat</string>\n"
+" <string>mp4|m4v</string>\n"
+" <false />\n"
" </array>\n"
" </array>\n"
-" <key>chapters_list</key>\n"
+" <key>Mp4iPodCompatible</key>\n"
" <array>\n"
" <array>\n"
-" <string>chapter_markers</string>\n"
-" <string>TRUE</string>\n"
+" <string>FileFormat</string>\n"
+" <string>mp4|m4v</string>\n"
+" <false />\n"
+" </array>\n"
+" <array>\n"
+" <string>VideoEncoder</string>\n"
+" <string>x264</string>\n"
" <false />\n"
" </array>\n"
" </array>\n"
-" <key>chapters_tab</key>\n"
+" <key>PictureBottomCrop</key>\n"
" <array>\n"
" <array>\n"
-" <string>title</string>\n"
-" <string>none</string>\n"
-" <true />\n"
+" <string>PictureAutoCrop</string>\n"
+" <string>FALSE</string>\n"
+" <false />\n"
" </array>\n"
" </array>\n"
-" <key>constant_rate_factor</key>\n"
+" <key>PictureDeinterlace</key>\n"
" <array>\n"
" <array>\n"
-" <string>vquality_type_constant</string>\n"
+" <string>PictureDecomb</string>\n"
" <string>TRUE</string>\n"
-" <false />\n"
+" <true />\n"
" </array>\n"
" </array>\n"
-" <key>crop_bottom</key>\n"
+" <key>PictureKeepRatio</key>\n"
" <array>\n"
" <array>\n"
-" <string>autocrop</string>\n"
+" <string>anamorphic</string>\n"
" <string>FALSE</string>\n"
" <false />\n"
" </array>\n"
" </array>\n"
-" <key>crop_left</key>\n"
+" <key>PictureLeftCrop</key>\n"
" <array>\n"
" <array>\n"
-" <string>autocrop</string>\n"
+" <string>PictureAutoCrop</string>\n"
" <string>FALSE</string>\n"
" <false />\n"
" </array>\n"
" </array>\n"
-" <key>crop_right</key>\n"
+" <key>PictureRightCrop</key>\n"
" <array>\n"
" <array>\n"
-" <string>autocrop</string>\n"
+" <string>PictureAutoCrop</string>\n"
" <string>FALSE</string>\n"
" <false />\n"
" </array>\n"
" </array>\n"
-" <key>crop_top</key>\n"
+" <key>PictureTopCrop</key>\n"
" <array>\n"
" <array>\n"
-" <string>autocrop</string>\n"
+" <string>PictureAutoCrop</string>\n"
" <string>FALSE</string>\n"
" <false />\n"
" </array>\n"
" </array>\n"
-" <key>deinterlace</key>\n"
+" <key>VideoAvgBitrate</key>\n"
+" <array>\n"
+" <array>\n"
+" <string>vquality_type_bitrate</string>\n"
+" <string>TRUE</string>\n"
+" <false />\n"
+" </array>\n"
+" </array>\n"
+" <key>VideoQualitySlider</key>\n"
+" <array>\n"
+" <array>\n"
+" <string>vquality_type_constant</string>\n"
+" <string>TRUE</string>\n"
+" <false />\n"
+" </array>\n"
+" </array>\n"
+" <key>VideoTargetSize</key>\n"
" <array>\n"
" <array>\n"
-" <string>decomb</string>\n"
+" <string>vquality_type_target</string>\n"
+" <string>TRUE</string>\n"
+" <false />\n"
+" </array>\n"
+" </array>\n"
+" <key>VideoTurboTwoPass</key>\n"
+" <array>\n"
+" <array>\n"
+" <string>vquality_type_constant</string>\n"
" <string>TRUE</string>\n"
" <true />\n"
" </array>\n"
+" <array>\n"
+" <string>VideoTwoPass</string>\n"
+" <string>TRUE</string>\n"
+" <false />\n"
+" </array>\n"
" </array>\n"
-" <key>end_chapter</key>\n"
+" <key>VideoTwoPass</key>\n"
+" <array>\n"
+" <array>\n"
+" <string>vquality_type_constant</string>\n"
+" <string>TRUE</string>\n"
+" <true />\n"
+" </array>\n"
+" </array>\n"
+" <key>chapters_in_destination</key>\n"
+" <array>\n"
+" <array>\n"
+" <string>use_source_name</string>\n"
+" <string>TRUE</string>\n"
+" <false />\n"
+" </array>\n"
+" </array>\n"
+" <key>chapters_label</key>\n"
" <array>\n"
" <array>\n"
" <string>title</string>\n"
@@ -11711,41 +11946,44 @@
" <true />\n"
" </array>\n"
" </array>\n"
-" <key>http_optimize_mp4</key>\n"
+" <key>chapters_list</key>\n"
" <array>\n"
" <array>\n"
-" <string>container</string>\n"
-" <string>mp4|m4v</string>\n"
+" <string>ChapterMarkers</string>\n"
+" <string>TRUE</string>\n"
" <false />\n"
" </array>\n"
" </array>\n"
-" <key>ipod_file</key>\n"
+" <key>chapters_tab</key>\n"
" <array>\n"
" <array>\n"
-" <string>container</string>\n"
-" <string>mp4|m4v</string>\n"
-" <false />\n"
+" <string>title</string>\n"
+" <string>none</string>\n"
+" <true />\n"
" </array>\n"
+" </array>\n"
+" <key>constant_rate_factor</key>\n"
+" <array>\n"
" <array>\n"
-" <string>video_codec</string>\n"
-" <string>x264</string>\n"
+" <string>vquality_type_constant</string>\n"
+" <string>TRUE</string>\n"
" <false />\n"
" </array>\n"
" </array>\n"
-" <key>keep_aspect</key>\n"
+" <key>directqp</key>\n"
" <array>\n"
" <array>\n"
-" <string>anamorphic</string>\n"
-" <string>FALSE</string>\n"
+" <string>VideoEncoder</string>\n"
+" <string>x264|ffmpeg</string>\n"
" <false />\n"
" </array>\n"
" </array>\n"
-" <key>large_mp4</key>\n"
+" <key>end_chapter</key>\n"
" <array>\n"
" <array>\n"
-" <string>container</string>\n"
-" <string>mp4|m4v</string>\n"
-" <false />\n"
+" <string>title</string>\n"
+" <string>none</string>\n"
+" <true />\n"
" </array>\n"
" </array>\n"
" <key>picture_label</key>\n"
@@ -11809,7 +12047,7 @@
" <false />\n"
" </array>\n"
" <array>\n"
-" <string>keep_aspect</string>\n"
+" <string>PictureKeepRatio</string>\n"
" <string>FALSE</string>\n"
" <false />\n"
" </array>\n"
@@ -11846,58 +12084,13 @@
" <true />\n"
" </array>\n"
" </array>\n"
-" <key>turbo</key>\n"
+" <key>tweak_PictureDeinterlace</key>\n"
" <array>\n"
" <array>\n"
-" <string>vquality_type_constant</string>\n"
+" <string>PictureDecomb</string>\n"
" <string>TRUE</string>\n"
" <true />\n"
" </array>\n"
-" <array>\n"
-" <string>two_pass</string>\n"
-" <string>TRUE</string>\n"
-" <false />\n"
-" </array>\n"
-" </array>\n"
-" <key>tweak_deinterlace</key>\n"
-" <array>\n"
-" <array>\n"
-" <string>decomb</string>\n"
-" <string>TRUE</string>\n"
-" <true />\n"
-" </array>\n"
-" </array>\n"
-" <key>two_pass</key>\n"
-" <array>\n"
-" <array>\n"
-" <string>vquality_type_constant</string>\n"
-" <string>TRUE</string>\n"
-" <true />\n"
-" </array>\n"
-" </array>\n"
-" <key>video_bitrate</key>\n"
-" <array>\n"
-" <array>\n"
-" <string>vquality_type_bitrate</string>\n"
-" <string>TRUE</string>\n"
-" <false />\n"
-" </array>\n"
-" </array>\n"
-" <key>video_quality</key>\n"
-" <array>\n"
-" <array>\n"
-" <string>vquality_type_constant</string>\n"
-" <string>TRUE</string>\n"
-" <false />\n"
-" </array>\n"
-" </array>\n"
-" <key>video_target_size</key>\n"
-" <array>\n"
-" <array>\n"
-" <string>vquality_type_target</string>\n"
-" <string>TRUE</string>\n"
-" <false />\n"
-" </array>\n"
" </array>\n"
" <key>x264_bpyramid</key>\n"
" <array>\n"
@@ -11934,7 +12127,7 @@
" <key>x264_tab</key>\n"
" <array>\n"
" <array>\n"
-" <string>video_codec</string>\n"
+" <string>VideoEncoder</string>\n"
" <string>x264</string>\n"
" <false />\n"
" </array>\n"
@@ -11942,7 +12135,7 @@
" <key>x264_tab_label</key>\n"
" <array>\n"
" <array>\n"
-" <string>video_codec</string>\n"
+" <string>VideoEncoder</string>\n"
" <string>x264</string>\n"
" <false />\n"
" </array>\n"
diff --git a/gtk/src/resources.plist b/gtk/src/resources.plist
index 282dced3b..b2e04560b 100644
--- a/gtk/src/resources.plist
+++ b/gtk/src/resources.plist
@@ -119,12 +119,12 @@
&lt;property name=&quot;value&quot;&gt;0&lt;/property&gt;
&lt;/object&gt;
&lt;object class=&quot;GtkAdjustment&quot; id=&quot;adjustment5&quot;&gt;
- &lt;property name=&quot;upper&quot;&gt;100&lt;/property&gt;
+ &lt;property name=&quot;upper&quot;&gt;1&lt;/property&gt;
&lt;property name=&quot;lower&quot;&gt;0&lt;/property&gt;
- &lt;property name=&quot;page_increment&quot;&gt;10&lt;/property&gt;
- &lt;property name=&quot;step_increment&quot;&gt;1&lt;/property&gt;
+ &lt;property name=&quot;page_increment&quot;&gt;1&lt;/property&gt;
+ &lt;property name=&quot;step_increment&quot;&gt;0.1&lt;/property&gt;
&lt;property name=&quot;page_size&quot;&gt;0&lt;/property&gt;
- &lt;property name=&quot;value&quot;&gt;63&lt;/property&gt;
+ &lt;property name=&quot;value&quot;&gt;0.63&lt;/property&gt;
&lt;/object&gt;
&lt;object class=&quot;GtkAdjustment&quot; id=&quot;adjustment6&quot;&gt;
&lt;property name=&quot;upper&quot;&gt;4&lt;/property&gt;
@@ -801,7 +801,7 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkComboBox&quot; id=&quot;container&quot;&gt;
+ &lt;object class=&quot;GtkComboBox&quot; id=&quot;FileFormat&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;tooltip-text&quot; translatable=&quot;yes&quot;&gt;Output file container type&lt;/property&gt;
&lt;signal handler=&quot;container_changed_cb&quot; name=&quot;changed&quot;/&gt;
@@ -818,7 +818,7 @@
&lt;property name=&quot;xalign&quot;&gt;0.10000000149011612&lt;/property&gt;
&lt;property name=&quot;xscale&quot;&gt;0&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkCheckButton&quot; id=&quot;ipod_file&quot;&gt;
+ &lt;object class=&quot;GtkCheckButton&quot; id=&quot;Mp4iPodCompatible&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -834,7 +834,7 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkCheckButton&quot; id=&quot;http_optimize_mp4&quot;&gt;
+ &lt;object class=&quot;GtkCheckButton&quot; id=&quot;Mp4HttpOptimize&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -848,7 +848,7 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkCheckButton&quot; id=&quot;large_mp4&quot;&gt;
+ &lt;object class=&quot;GtkCheckButton&quot; id=&quot;Mp4LargeFile&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -1307,7 +1307,7 @@
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkCheckButton&quot; id=&quot;grayscale&quot;&gt;
+ &lt;object class=&quot;GtkCheckButton&quot; id=&quot;VideoGrayScale&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -1320,7 +1320,7 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkCheckButton&quot; id=&quot;detelecine&quot;&gt;
+ &lt;object class=&quot;GtkCheckButton&quot; id=&quot;PictureDetelecine&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -1335,7 +1335,7 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkCheckButton&quot; id=&quot;decomb&quot;&gt;
+ &lt;object class=&quot;GtkCheckButton&quot; id=&quot;PictureDecomb&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;label&quot; translatable=&quot;yes&quot;&gt;De-Comb&lt;/property&gt;
@@ -1369,7 +1369,7 @@
&lt;property name=&quot;xalign&quot;&gt;0&lt;/property&gt;
&lt;property name=&quot;xscale&quot;&gt;0.55&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkHScale&quot; id=&quot;deblock&quot;&gt;
+ &lt;object class=&quot;GtkHScale&quot; id=&quot;PictureDeblock&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;tooltip-text&quot; translatable=&quot;yes&quot;&gt;This is a filter that gets applied before encoding. If the source looks blocky before encoding, you may want to use this.&lt;/property&gt;
@@ -1409,7 +1409,7 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkComboBox&quot; id=&quot;deinterlace&quot;&gt;
+ &lt;object class=&quot;GtkComboBox&quot; id=&quot;PictureDeinterlace&quot;&gt;
&lt;property name=&quot;width_request&quot;&gt;100&lt;/property&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -1422,7 +1422,7 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkComboBoxEntry&quot; id=&quot;tweak_deinterlace&quot;&gt;
+ &lt;object class=&quot;GtkComboBoxEntry&quot; id=&quot;tweak_PictureDeinterlace&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;False&lt;/property&gt;
&lt;signal handler=&quot;setting_widget_changed_cb&quot; name=&quot;changed&quot;/&gt;
&lt;child internal-child=&quot;entry&quot;&gt;
@@ -1464,7 +1464,7 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkComboBox&quot; id=&quot;denoise&quot;&gt;
+ &lt;object class=&quot;GtkComboBox&quot; id=&quot;PictureDenoise&quot;&gt;
&lt;property name=&quot;width_request&quot;&gt;100&lt;/property&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -1477,7 +1477,7 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkComboBoxEntry&quot; id=&quot;tweak_denoise&quot;&gt;
+ &lt;object class=&quot;GtkComboBoxEntry&quot; id=&quot;tweak_PictureDenoise&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;False&lt;/property&gt;
&lt;signal handler=&quot;setting_widget_changed_cb&quot; name=&quot;changed&quot;/&gt;
&lt;child internal-child=&quot;entry&quot;&gt;
@@ -1650,7 +1650,7 @@
&lt;property name=&quot;xalign&quot;&gt;0&lt;/property&gt;
&lt;property name=&quot;xscale&quot;&gt;0&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkComboBox&quot; id=&quot;video_codec&quot;&gt;
+ &lt;object class=&quot;GtkComboBox&quot; id=&quot;VideoEncoder&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;signal handler=&quot;vcodec_changed_cb&quot; name=&quot;changed&quot;/&gt;
&lt;/object&gt;
@@ -1689,7 +1689,7 @@
&lt;property name=&quot;xalign&quot;&gt;0&lt;/property&gt;
&lt;property name=&quot;xscale&quot;&gt;0&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkComboBox&quot; id=&quot;framerate&quot;&gt;
+ &lt;object class=&quot;GtkComboBox&quot; id=&quot;VideoFramerate&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
&lt;signal handler=&quot;setting_widget_changed_cb&quot; name=&quot;changed&quot;/&gt;
@@ -1708,7 +1708,7 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkCheckButton&quot; id=&quot;two_pass&quot;&gt;
+ &lt;object class=&quot;GtkCheckButton&quot; id=&quot;VideoTwoPass&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -1726,7 +1726,7 @@
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
&lt;property name=&quot;xscale&quot;&gt;0.23999999463558197&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkCheckButton&quot; id=&quot;turbo&quot;&gt;
+ &lt;object class=&quot;GtkCheckButton&quot; id=&quot;VideoTurboTwoPass&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -1816,7 +1816,7 @@
&lt;property name=&quot;xalign&quot;&gt;0.11999999731779099&lt;/property&gt;
&lt;property name=&quot;xscale&quot;&gt;0.10000000149011612&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkSpinButton&quot; id=&quot;video_bitrate&quot;&gt;
+ &lt;object class=&quot;GtkSpinButton&quot; id=&quot;VideoAvgBitrate&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -1856,7 +1856,7 @@
&lt;property name=&quot;xalign&quot;&gt;0.11999999731779099&lt;/property&gt;
&lt;property name=&quot;xscale&quot;&gt;0.10000000149011612&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkSpinButton&quot; id=&quot;video_target_size&quot;&gt;
+ &lt;object class=&quot;GtkSpinButton&quot; id=&quot;VideoTargetSize&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -1894,14 +1894,15 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkHScale&quot; id=&quot;video_quality&quot;&gt;
+ &lt;object class=&quot;GtkHScale&quot; id=&quot;VideoQualitySlider&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
&lt;property name=&quot;adjustment&quot;&gt;adjustment5&lt;/property&gt;
- &lt;property name=&quot;digits&quot;&gt;0&lt;/property&gt;
+ &lt;property name=&quot;digits&quot;&gt;3&lt;/property&gt;
&lt;property name=&quot;value_pos&quot;&gt;GTK_POS_RIGHT&lt;/property&gt;
&lt;signal handler=&quot;setting_widget_changed_cb&quot; name=&quot;value_changed&quot;/&gt;
+ &lt;signal handler=&quot;format_vquality_cb&quot; name=&quot;format-value&quot;/&gt;
&lt;/object&gt;
&lt;packing&gt;
&lt;property name=&quot;position&quot;&gt;1&lt;/property&gt;
@@ -2061,7 +2062,7 @@
&lt;/object&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkHScale&quot; id=&quot;audio_drc&quot;&gt;
+ &lt;object class=&quot;GtkHScale&quot; id=&quot;AudioTrackDRCSlider&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -2094,7 +2095,7 @@
&lt;property name=&quot;n_rows&quot;&gt;2&lt;/property&gt;
&lt;property name=&quot;n_columns&quot;&gt;5&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkComboBox&quot; id=&quot;audio_track&quot;&gt;
+ &lt;object class=&quot;GtkComboBox&quot; id=&quot;AudioTrack&quot;&gt;
&lt;property name=&quot;width_request&quot;&gt;215&lt;/property&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -2106,7 +2107,7 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkComboBox&quot; id=&quot;audio_codec&quot;&gt;
+ &lt;object class=&quot;GtkComboBox&quot; id=&quot;AudioEncoder&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
&lt;signal handler=&quot;audio_codec_changed_cb&quot; name=&quot;changed&quot;/&gt;
@@ -2120,7 +2121,7 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkComboBox&quot; id=&quot;audio_rate&quot;&gt;
+ &lt;object class=&quot;GtkComboBox&quot; id=&quot;AudioSamplerate&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
&lt;signal handler=&quot;audio_widget_changed_cb&quot; name=&quot;changed&quot;/&gt;
@@ -2196,7 +2197,7 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkComboBox&quot; id=&quot;audio_mix&quot;&gt;
+ &lt;object class=&quot;GtkComboBox&quot; id=&quot;AudioMixdown&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
&lt;signal handler=&quot;audio_mix_changed_cb&quot; name=&quot;changed&quot;/&gt;
@@ -2210,7 +2211,7 @@
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkComboBox&quot; id=&quot;audio_bitrate&quot;&gt;
+ &lt;object class=&quot;GtkComboBox&quot; id=&quot;AudioBitrate&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
&lt;signal handler=&quot;audio_widget_changed_cb&quot; name=&quot;changed&quot;/&gt;
@@ -2279,7 +2280,7 @@
&lt;property name=&quot;spacing&quot;&gt;5&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkComboBox&quot; id=&quot;source_audio_lang&quot;&gt;
+ &lt;object class=&quot;GtkComboBox&quot; id=&quot;SourceAudioLang&quot;&gt;
&lt;property name=&quot;width_request&quot;&gt;150&lt;/property&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -2321,7 +2322,7 @@
&lt;property name=&quot;spacing&quot;&gt;5&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkComboBox&quot; id=&quot;subtitle_lang&quot;&gt;
+ &lt;object class=&quot;GtkComboBox&quot; id=&quot;Subtitles&quot;&gt;
&lt;property name=&quot;width_request&quot;&gt;150&lt;/property&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -2329,7 +2330,7 @@
&lt;/object&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkCheckButton&quot; id=&quot;forced_subtitles&quot;&gt;
+ &lt;object class=&quot;GtkCheckButton&quot; id=&quot;SubtitlesForced&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;has_tooltip&quot;&gt;True&lt;/property&gt;
@@ -2643,7 +2644,7 @@
&lt;property name=&quot;left_padding&quot;&gt;12&lt;/property&gt;
&lt;property name=&quot;right_padding&quot;&gt;2&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkTextView&quot; id=&quot;x264_options&quot;&gt;
+ &lt;object class=&quot;GtkTextView&quot; id=&quot;x264Option&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;tooltip-text&quot; translatable=&quot;yes&quot;&gt;Your selected options will appear here.
@@ -3090,7 +3091,7 @@ no-fast-pskip=0:no-dct-decimate=0:cabac=1&lt;/property&gt;
&lt;object class=&quot;GtkHBox&quot; id=&quot;hbox30&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkCheckButton&quot; id=&quot;chapter_markers&quot;&gt;
+ &lt;object class=&quot;GtkCheckButton&quot; id=&quot;ChapterMarkers&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -3425,22 +3426,6 @@ auto-generated destination name.&lt;/property&gt;
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkCheckButton&quot; id=&quot;linear_vquality&quot;&gt;
- &lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
- &lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
- &lt;property name=&quot;tooltip_text&quot;&gt;x264 uses a different scale for video quality than
-other codecs. This adjusts the scale so that
-similar values give similar quality across all the
-video codecs.&lt;/property&gt;
- &lt;property name=&quot;label&quot; translatable=&quot;yes&quot;&gt;Adjust x264 video quality scale&lt;/property&gt;
- &lt;property name=&quot;draw_indicator&quot;&gt;True&lt;/property&gt;
- &lt;signal name=&quot;toggled&quot; handler=&quot;pref_changed_cb&quot;/&gt;
- &lt;/object&gt;
- &lt;packing&gt;
- &lt;property name=&quot;position&quot;&gt;2&lt;/property&gt;
- &lt;/packing&gt;
- &lt;/child&gt;
- &lt;child&gt;
&lt;object class=&quot;GtkCheckButton&quot; id=&quot;noscale&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
@@ -3454,7 +3439,7 @@ the required multiple.&lt;/property&gt;
&lt;signal name=&quot;toggled&quot; handler=&quot;pref_changed_cb&quot;/&gt;
&lt;/object&gt;
&lt;packing&gt;
- &lt;property name=&quot;position&quot;&gt;3&lt;/property&gt;
+ &lt;property name=&quot;position&quot;&gt;2&lt;/property&gt;
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
@@ -3473,7 +3458,7 @@ this setting.&lt;/property&gt;
&lt;signal name=&quot;toggled&quot; handler=&quot;vcodec_changed_cb&quot;/&gt;
&lt;/object&gt;
&lt;packing&gt;
- &lt;property name=&quot;position&quot;&gt;4&lt;/property&gt;
+ &lt;property name=&quot;position&quot;&gt;3&lt;/property&gt;
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
@@ -3484,7 +3469,7 @@ this setting.&lt;/property&gt;
&lt;signal name=&quot;toggled&quot; handler=&quot;tweaks_changed_cb&quot;/&gt;
&lt;/object&gt;
&lt;packing&gt;
- &lt;property name=&quot;position&quot;&gt;5&lt;/property&gt;
+ &lt;property name=&quot;position&quot;&gt;4&lt;/property&gt;
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
@@ -3495,7 +3480,7 @@ this setting.&lt;/property&gt;
&lt;signal name=&quot;toggled&quot; handler=&quot;hbfd_feature_changed_cb&quot;/&gt;
&lt;/object&gt;
&lt;packing&gt;
- &lt;property name=&quot;position&quot;&gt;6&lt;/property&gt;
+ &lt;property name=&quot;position&quot;&gt;5&lt;/property&gt;
&lt;/packing&gt;
&lt;/child&gt;
&lt;/object&gt;
@@ -3667,7 +3652,7 @@ this setting.&lt;/property&gt;
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkEntry&quot; id=&quot;preset_name&quot;&gt;
+ &lt;object class=&quot;GtkEntry&quot; id=&quot;PresetName&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -3701,7 +3686,7 @@ this setting.&lt;/property&gt;
&lt;property name=&quot;left_padding&quot;&gt;12&lt;/property&gt;
&lt;property name=&quot;right_padding&quot;&gt;4&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkTextView&quot; id=&quot;preset_description&quot;&gt;
+ &lt;object class=&quot;GtkTextView&quot; id=&quot;PresetDescription&quot;&gt;
&lt;property name=&quot;height_request&quot;&gt;60&lt;/property&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
@@ -4152,7 +4137,7 @@ this setting.&lt;/property&gt;
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkSpinButton&quot; id=&quot;crop_left&quot;&gt;
+ &lt;object class=&quot;GtkSpinButton&quot; id=&quot;PictureLeftCrop&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -4182,7 +4167,7 @@ this setting.&lt;/property&gt;
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkSpinButton&quot; id=&quot;crop_top&quot;&gt;
+ &lt;object class=&quot;GtkSpinButton&quot; id=&quot;PictureTopCrop&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -4198,7 +4183,7 @@ this setting.&lt;/property&gt;
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkSpinButton&quot; id=&quot;crop_bottom&quot;&gt;
+ &lt;object class=&quot;GtkSpinButton&quot; id=&quot;PictureBottomCrop&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -4214,7 +4199,7 @@ this setting.&lt;/property&gt;
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkSpinButton&quot; id=&quot;crop_right&quot;&gt;
+ &lt;object class=&quot;GtkSpinButton&quot; id=&quot;PictureRightCrop&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -4251,7 +4236,7 @@ this setting.&lt;/property&gt;
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkCheckButton&quot; id=&quot;autocrop&quot;&gt;
+ &lt;object class=&quot;GtkCheckButton&quot; id=&quot;PictureAutoCrop&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -4375,7 +4360,7 @@ this setting.&lt;/property&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkCheckButton&quot; id=&quot;round_dimensions&quot;&gt;
+ &lt;object class=&quot;GtkCheckButton&quot; id=&quot;ModDimensions&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -4417,7 +4402,7 @@ adjusted to keep the video&apos;s original aspect ratio.&lt;/property&gt;
&lt;/packing&gt;
&lt;/child&gt;
&lt;child&gt;
- &lt;object class=&quot;GtkCheckButton&quot; id=&quot;keep_aspect&quot;&gt;
+ &lt;object class=&quot;GtkCheckButton&quot; id=&quot;PictureKeepRatio&quot;&gt;
&lt;property name=&quot;visible&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;can_focus&quot;&gt;True&lt;/property&gt;
&lt;property name=&quot;events&quot;&gt;GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK&lt;/property&gt;
@@ -4850,17 +4835,13 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<dict>
<key>Initialization</key>
<dict>
+ <key>anamorphic</key>
+ <true />
<key>audio_list</key>
<array>
</array>
- <key>crop_bottom</key>
- <integer>0</integer>
- <key>crop_left</key>
- <integer>0</integer>
- <key>crop_right</key>
- <integer>0</integer>
- <key>crop_top</key>
- <integer>0</integer>
+ <key>autoscale</key>
+ <false />
<key>end_chapter</key>
<integer>100</integer>
<key>folder</key>
@@ -4878,15 +4859,25 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>preset_type_normal</key>
<true />
<key>scale_height</key>
- <integer>480</integer>
+ <integer>0</integer>
<key>scale_width</key>
- <integer>720</integer>
+ <integer>0</integer>
<key>start_chapter</key>
<integer>1</integer>
<key>title</key>
<string>none</string>
+ <key>tweak_PictureDecomb</key>
+ <string></string>
+ <key>tweak_PictureDetelecine</key>
+ <string></string>
<key>volume_label</key>
<string>New Video</string>
+ <key>vquality_type_bitrate</key>
+ <false />
+ <key>vquality_type_constant</key>
+ <false />
+ <key>vquality_type_target</key>
+ <false />
<key>x264_8x8dct</key>
<false />
<key>x264_analyse</key>
@@ -4936,8 +4927,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<false />
<key>hbfd_feature</key>
<false />
- <key>linear_vquality</key>
- <false />
<key>nocheckvquality</key>
<false />
<key>noscale</key>
@@ -4951,1355 +4940,1569 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</dict>
<key>Presets</key>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>192</string>
+ <key>AudioEncoder</key>
+ <string>ac3</string>
+ <key>AudioMixdown</key>
+ <string>dpl2</string>
+ <key>AudioSamplerate</key>
+ <string>source</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
- <true />
- <key>autoscale</key>
+ <key>FileFormat</key>
+ <string>mp4</string>
+ <key>Folder</key>
<false />
- <key>chapter_markers</key>
+ <key>ModDimensions</key>
<true />
- <key>constant_rate_factor</key>
+ <key>Mp4HttpOptimize</key>
+ <false />
+ <key>Mp4LargeFile</key>
+ <false />
+ <key>Mp4iPodCompatible</key>
+ <false />
+ <key>PictureAutoCrop</key>
<true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
<integer>0</integer>
- <key>decomb</key>
+ <key>PictureDecomb</key>
<false />
- <key>deinterlace</key>
+ <key>PictureDeinterlace</key>
<string>none</string>
- <key>denoise</key>
+ <key>PictureDenoise</key>
<string>none</string>
- <key>detelecine</key>
+ <key>PictureDetelecine</key>
<true />
- <key>directqp</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
+ <true />
+ <key>PictureLeftCrop</key>
+ <integer>0</integer>
+ <key>PicturePAR</key>
+ <integer>2</integer>
+ <key>PictureRightCrop</key>
+ <integer>0</integer>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
+ <string></string>
+ <key>PresetName</key>
+ <string>Name Missing</string>
+ <key>SourceAudioLang</key>
+ <string>und</string>
+ <key>Subtitles</key>
+ <string>none</string>
+ <key>SubtitlesForced</key>
+ <true />
+ <key>Type</key>
+ <integer>1</integer>
+ <key>UsesMaxPictureSettings</key>
<false />
- <key>forced_subtitles</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>framerate</key>
+ <key>UsesPictureSettings</key>
+ <integer>2</integer>
+ <key>VideoAvgBitrate</key>
+ <integer>1800</integer>
+ <key>VideoEncoder</key>
+ <string>x264</string>
+ <key>VideoFramerate</key>
<string>source</string>
- <key>grayscale</key>
+ <key>VideoGrayScale</key>
<false />
- <key>http_optimize_mp4</key>
+ <key>VideoQualitySlider</key>
+ <real>0.59999999999999998</real>
+ <key>VideoQualityType</key>
+ <integer>2</integer>
+ <key>VideoTargetSize</key>
+ <integer>700</integer>
+ <key>VideoTurboTwoPass</key>
<false />
- <key>ipod_file</key>
+ <key>VideoTwoPass</key>
<false />
- <key>keep_aspect</key>
+ <key>constant_rate_factor</key>
<true />
- <key>large_mp4</key>
+ <key>directqp</key>
<false />
- <key>max_height</key>
- <integer>0</integer>
- <key>max_width</key>
- <integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>192</string>
- <key>audio_codec</key>
- <string>ac3</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>x264Option</key>
<string></string>
- <key>preset_name</key>
- <string></string>
- <key>preset_type</key>
- <integer>1</integer>
- <key>round_dimensions</key>
+ </dict>
+ <key>XlatPresets</key>
+ <dict>
+ <key>anamorphic</key>
<true />
- <key>source_audio_lang</key>
- <string>und</string>
- <key>subtitle_lang</key>
- <string>none</string>
- <key>turbo</key>
- <false />
- <key>tweak_decomb</key>
- <string></string>
- <key>tweak_detelecine</key>
- <string></string>
- <key>two_pass</key>
+ <key>autoscale</key>
<false />
- <key>video_bitrate</key>
- <integer>1800</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>64</integer>
- <key>video_target_size</key>
- <integer>700</integer>
<key>vquality_type_bitrate</key>
<false />
<key>vquality_type_constant</key>
<false />
<key>vquality_type_target</key>
<false />
- <key>x264_options</key>
- <string></string>
</dict>
</dict>
<key>standard-presets</key>
<array>
<dict>
- <key>preset_folder</key>
+ <key>ChildrenArray</key>
<array>
<dict>
- <key>Default</key>
- <false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
- <true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
- <integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
- <false />
- <key>keep_aspect</key>
- <false />
- <key>large_mp4</key>
- <true />
- <key>max_height</key>
- <integer>0</integer>
- <key>max_width</key>
- <integer>720</integer>
- <key>pref_audio_list</key>
+ <key>AudioList</key>
<array>
<dict>
- <key>audio_bitrate</key>
+ <key>AudioBitrate</key>
<string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
<string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
</dict>
<dict>
- <key>audio_bitrate</key>
+ <key>AudioBitrate</key>
<string>160</string>
- <key>audio_codec</key>
- <string>ac3</string>
- <key>audio_drc</key>
+ <key>AudioEncoder</key>
+ <string>AC3 Passthru</string>
+ <key>AudioMixdown</key>
+ <string>AC3 Passthru</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
<real>1</real>
- <key>audio_mix</key>
- <string>none</string>
- <key>audio_rate</key>
- <string>source</string>
+ <key>AudioTrackDescription</key>
+ <string></string>
</dict>
</array>
- <key>preset_description</key>
+ <key>ChapterMarkers</key>
+ <true />
+ <key>Default</key>
+ <false />
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>Folder</key>
+ <false />
+ <key>Mp4LargeFile</key>
+ <true />
+ <key>PictureAutoCrop</key>
+ <true />
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
+ <false />
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
+ <false />
+ <key>PictureLeftCrop</key>
+ <integer>0</integer>
+ <key>PicturePAR</key>
+ <integer>2</integer>
+ <key>PictureRightCrop</key>
+ <integer>0</integer>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>720</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s universally compatible, full resolution settings for all current Apple devices: iPod, iPhone, AppleTV, and Macs</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Universal</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
- <false />
- <key>video_bitrate</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>2500</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>59</integer>
- <key>video_target_size</key>
- <integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
<false />
- <key>vquality_type_constant</key>
- <true />
- <key>vquality_type_target</key>
+ <key>VideoQualitySlider</key>
+ <real>0.5899999737739563</real>
+ <key>VideoQualityType</key>
+ <integer>2</integer>
+ <key>VideoTargetSize</key>
+ <integer>700</integer>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>level=30:cabac=0:ref=3:mixed-refs=1:analyse=all:me=umh:no-fast-pskip=1:subme=8</string>
</dict>
<dict>
- <key>Default</key>
- <false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
- <true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
- <integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
- <false />
- <key>keep_aspect</key>
- <false />
- <key>large_mp4</key>
- <true />
- <key>max_height</key>
- <integer>0</integer>
- <key>max_width</key>
- <integer>960</integer>
- <key>pref_audio_list</key>
+ <key>AudioList</key>
<array>
<dict>
- <key>audio_bitrate</key>
+ <key>AudioBitrate</key>
<string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
<string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
</dict>
<dict>
- <key>audio_bitrate</key>
+ <key>AudioBitrate</key>
<string>160</string>
- <key>audio_codec</key>
- <string>ac3</string>
- <key>audio_drc</key>
+ <key>AudioEncoder</key>
+ <string>AC3 Passthru</string>
+ <key>AudioMixdown</key>
+ <string>AC3 Passthru</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
<real>1</real>
- <key>audio_mix</key>
- <string>none</string>
- <key>audio_rate</key>
- <string>source</string>
+ <key>AudioTrackDescription</key>
+ <string></string>
</dict>
</array>
- <key>preset_description</key>
+ <key>ChapterMarkers</key>
+ <true />
+ <key>Default</key>
+ <false />
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>Folder</key>
+ <false />
+ <key>Mp4LargeFile</key>
+ <true />
+ <key>PictureAutoCrop</key>
+ <true />
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
+ <false />
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
+ <false />
+ <key>PictureLeftCrop</key>
+ <integer>0</integer>
+ <key>PicturePAR</key>
+ <integer>2</integer>
+ <key>PictureRightCrop</key>
+ <integer>0</integer>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>960</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s settings for the AppleTV, including Dolby Digital 5.1 AC3 sound. Provides a good balance between quality and file size, and optimizes performance.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>AppleTV</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
- <false />
- <key>video_bitrate</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>2500</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>59</integer>
- <key>video_target_size</key>
- <integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
<false />
- <key>vquality_type_constant</key>
- <true />
- <key>vquality_type_target</key>
+ <key>VideoQualitySlider</key>
+ <real>0.5899999737739563</real>
+ <key>VideoQualityType</key>
+ <integer>2</integer>
+ <key>VideoTargetSize</key>
+ <integer>700</integer>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>level=30:cabac=0:ref=3:mixed-refs=1:bframes=6:weightb=1:direct=auto:no-fast-pskip=1:me=umh:subq=9:analyse=all</string>
</dict>
<dict>
- <key>preset_folder</key>
+ <key>ChildrenArray</key>
<array>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <false />
- <key>autocrop</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>Mp4iPodCompatible</key>
<true />
- <key>chapter_markers</key>
+ <key>PictureAutoCrop</key>
<true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>ipod_file</key>
- <true />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<true />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
+ <integer>0</integer>
+ <key>PicturePAR</key>
+ <integer>0</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
<integer>320</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>48</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s low resolution settings for the iPod. Optimized for great playback on the iPod screen, with smaller file size.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>iPod Classic &amp; iPod Nano</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <true />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
+ <key>UsesMaxPictureSettings</key>
<false />
- <key>video_bitrate</key>
- <integer>700</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
- <integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>vquality_type_constant</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
+ <integer>700</integer>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
<false />
- <key>vquality_type_target</key>
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
+ <integer>700</integer>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1</string>
</dict>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>128</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <false />
- <key>autocrop</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>Mp4iPodCompatible</key>
<true />
- <key>chapter_markers</key>
+ <key>PictureAutoCrop</key>
<true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>ipod_file</key>
- <true />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<true />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
+ <integer>0</integer>
+ <key>PicturePAR</key>
+ <integer>0</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
<integer>480</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>128</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>48</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s settings for the iPhone and iPod Touch.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>iPhone &amp; iPod Touch</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <true />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
+ <key>UsesMaxPictureSettings</key>
<false />
- <key>video_bitrate</key>
- <integer>960</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
- <integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>vquality_type_constant</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
+ <integer>960</integer>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
<false />
- <key>vquality_type_target</key>
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
+ <integer>700</integer>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:trellis=1</string>
</dict>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <false />
- <key>autocrop</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>Mp4iPodCompatible</key>
<true />
- <key>chapter_markers</key>
+ <key>PictureAutoCrop</key>
<true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>ipod_file</key>
- <true />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<true />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
+ <integer>0</integer>
+ <key>PicturePAR</key>
+ <integer>0</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
<integer>640</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>48</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s high resolution settings for older 5 and 5.5G iPods. Good video quality, great for viewing on a TV using your iPod</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>iPod Legacy</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <true />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
+ <key>UsesMaxPictureSettings</key>
<false />
- <key>video_bitrate</key>
- <integer>1500</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
- <integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>vquality_type_constant</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
+ <integer>1500</integer>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
<false />
- <key>vquality_type_target</key>
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
+ <integer>700</integer>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1</string>
</dict>
</array>
- <key>preset_name</key>
+ <key>Folder</key>
+ <true />
+ <key>PresetName</key>
<string>iPod &amp; iPhone</string>
- <key>preset_type</key>
- <integer>2</integer>
+ <key>Type</key>
+ <integer>0</integer>
</dict>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
- <true />
- <key>autoscale</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s high profile settings for use with QuickTime. It can be slow, so use it when the Normal preset doesn&apos;t look good enough.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>QuickTime</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>turbo</key>
+ <key>UsesMaxPictureSettings</key>
<true />
- <key>two_pass</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>video_bitrate</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>1800</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoTurboTwoPass</key>
<true />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
- <false />
- <key>x264_options</key>
+ <key>VideoTwoPass</key>
+ <true />
+ <key>x264Option</key>
<string>ref=3:mixed-refs:bframes=3:weightb:direct=auto:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip=1:psy-rd=1,1</string>
</dict>
</array>
- <key>preset_name</key>
+ <key>Folder</key>
+ <true />
+ <key>PresetName</key>
<string>Apple</string>
- <key>preset_type</key>
- <integer>2</integer>
+ <key>Type</key>
+ <integer>0</integer>
</dict>
<dict>
- <key>preset_folder</key>
+ <key>ChildrenArray</key>
<array>
<dict>
- <key>Default</key>
- <true />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
<true />
- <key>autoscale</key>
+ <key>Default</key>
<true />
- <key>chapter_markers</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s normal, default settings.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Normal</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>turbo</key>
+ <key>UsesMaxPictureSettings</key>
<true />
- <key>two_pass</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>video_bitrate</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>1500</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoTurboTwoPass</key>
<true />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
- <false />
- <key>x264_options</key>
+ <key>VideoTwoPass</key>
+ <true />
+ <key>x264Option</key>
<string>ref=2:bframes=2:me=umh</string>
</dict>
<dict>
- <key>Default</key>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
<false />
- <key>anamorphic</key>
+ <key>Default</key>
<false />
- <key>autocrop</key>
- <true />
- <key>autoscale</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>chapter_markers</key>
- <false />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<true />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureRightCrop</key>
+ <integer>0</integer>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s traditional, faster, lower-quality settings.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Classic</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
+ <key>UsesMaxPictureSettings</key>
<true />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
- <false />
- <key>video_bitrate</key>
- <integer>1000</integer>
- <key>video_codec</key>
- <string>ffmpeg</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
- <integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>vquality_type_constant</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
+ <integer>1000</integer>
+ <key>VideoEncoder</key>
+ <string>MPEG-4 (FFmpeg)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
<false />
- <key>vquality_type_target</key>
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
+ <integer>700</integer>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string></string>
</dict>
</array>
- <key>preset_name</key>
+ <key>Folder</key>
+ <true />
+ <key>PresetName</key>
<string>Basic</string>
- <key>preset_type</key>
- <integer>2</integer>
+ <key>Type</key>
+ <integer>0</integer>
</dict>
<dict>
- <key>preset_folder</key>
+ <key>ChildrenArray</key>
<array>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
+ <key>FileFormat</key>
+ <string>MKV file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>autoscale</key>
- <true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mkv</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
<integer>0</integer>
- <key>decomb</key>
+ <key>PictureDecomb</key>
<true />
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<true />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
- <false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s settings for cartoons, anime, and CGI.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Animation</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>turbo</key>
+ <key>UsesMaxPictureSettings</key>
<true />
- <key>two_pass</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>video_bitrate</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>1000</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoTurboTwoPass</key>
<true />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
- <false />
- <key>x264_options</key>
+ <key>VideoTwoPass</key>
+ <true />
+ <key>x264Option</key>
<string>ref=5:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me=umh:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip:filter=2,2:psy-rd=1,1:subme=9</string>
</dict>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AC3 Passthru</string>
+ <key>AudioMixdown</key>
+ <string>AC3 Passthru</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
+ <key>FileFormat</key>
+ <string>MKV file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>autocrop</key>
- <true />
- <key>autoscale</key>
- <true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mkv</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>ac3</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>none</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s preset for consistently excellent quality in one pass, with the downside of entirely unpredictable file sizes and bitrates.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Constant Quality Rate</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>turbo</key>
- <false />
- <key>two_pass</key>
- <false />
- <key>video_bitrate</key>
+ <key>UsesMaxPictureSettings</key>
+ <true />
+ <key>UsesPictureFilters</key>
+ <true />
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>2000</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>60</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.60000002384185791</real>
+ <key>VideoQualityType</key>
+ <integer>2</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoTurboTwoPass</key>
<false />
- <key>vquality_type_constant</key>
- <true />
- <key>vquality_type_target</key>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>ref=3:mixed-refs:bframes=3:b-pyramid:weightb:filter=-2,-1:trellis=1:analyse=all:8x8dct:me=umh:subme=9:psy-rd=1,1</string>
</dict>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AC3 Passthru</string>
+ <key>AudioMixdown</key>
+ <string>AC3 Passthru</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
+ <key>FileFormat</key>
+ <string>MKV file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>autoscale</key>
- <true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mkv</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>ac3</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>none</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s preset for feature films.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Film</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>turbo</key>
+ <key>UsesMaxPictureSettings</key>
<true />
- <key>two_pass</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>video_bitrate</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>1800</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoTurboTwoPass</key>
<true />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
- <false />
- <key>x264_options</key>
+ <key>VideoTwoPass</key>
+ <true />
+ <key>x264Option</key>
<string>ref=3:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me=umh:subme=9:analyse=all:8x8dct:trellis=1:no-fast-pskip:psy-rd=1,1</string>
</dict>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
- <true />
- <key>autoscale</key>
+ <key>FileFormat</key>
+ <string>MKV file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mkv</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
<integer>0</integer>
- <key>decomb</key>
+ <key>PictureDecomb</key>
<true />
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<true />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
- <false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s settings for video from television.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Television</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>turbo</key>
+ <key>UsesMaxPictureSettings</key>
<true />
- <key>two_pass</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>video_bitrate</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>1300</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoTurboTwoPass</key>
<true />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
- <false />
- <key>x264_options</key>
+ <key>VideoTwoPass</key>
+ <true />
+ <key>x264Option</key>
<string>ref=3:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me=umh:subme=9:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip=1:psy-rd=1,1</string>
</dict>
</array>
- <key>preset_name</key>
+ <key>Folder</key>
+ <true />
+ <key>PresetName</key>
<string>High Profile</string>
- <key>preset_type</key>
- <integer>2</integer>
+ <key>Type</key>
+ <integer>0</integer>
</dict>
<dict>
- <key>preset_folder</key>
+ <key>ChildrenArray</key>
<array>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>128</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <false />
- <key>autocrop</key>
- <true />
- <key>chapter_markers</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>keep_aspect</key>
- <true />
- <key>max_height</key>
+ <key>PictureHeight</key>
<integer>208</integer>
- <key>max_width</key>
+ <key>PictureKeepRatio</key>
+ <true />
+ <key>PictureLeftCrop</key>
+ <integer>0</integer>
+ <key>PicturePAR</key>
+ <integer>0</integer>
+ <key>PictureRightCrop</key>
+ <integer>0</integer>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
<integer>368</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>128</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>48</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s settings for the Sony PlayStation Portable.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>PSP</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <true />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
+ <key>UsesMaxPictureSettings</key>
<false />
- <key>video_bitrate</key>
- <integer>1024</integer>
- <key>video_codec</key>
- <string>ffmpeg</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
- <integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>vquality_type_constant</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
+ <integer>1024</integer>
+ <key>VideoEncoder</key>
+ <string>MPEG-4 (FFmpeg)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
<false />
- <key>vquality_type_target</key>
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
+ <integer>700</integer>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string></string>
</dict>
<dict>
- <key>Default</key>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
<false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
+ <key>Default</key>
<false />
- <key>autoscale</key>
- <true />
- <key>chapter_markers</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>PictureAutoCrop</key>
<false />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>48</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s settings for the Sony PlayStation 3.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>PS3</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
- <false />
- <key>video_bitrate</key>
- <integer>2500</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
- <integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>UsesMaxPictureSettings</key>
+ <true />
+ <key>UsesPictureFilters</key>
<true />
- <key>vquality_type_constant</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
+ <integer>2500</integer>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
<false />
- <key>vquality_type_target</key>
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
+ <integer>700</integer>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>level=41:me=umh</string>
</dict>
<dict>
- <key>Default</key>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
<false />
- <key>anamorphic</key>
- <true />
- <key>autoscale</key>
- <true />
- <key>chapter_markers</key>
+ <key>Default</key>
<false />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>48</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s settings for the Microsoft Xbox 360.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Xbox 360</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
- <false />
- <key>video_bitrate</key>
- <integer>2000</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
- <integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>UsesMaxPictureSettings</key>
+ <true />
+ <key>UsesPictureFilters</key>
<true />
- <key>vquality_type_constant</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
+ <integer>2000</integer>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
<false />
- <key>vquality_type_target</key>
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
+ <integer>700</integer>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>level=40:ref=2:mixed-refs:bframes=3:weightb:subme=7:direct=auto:b-pyramid:me=umh:analyse=all:no-fast-pskip:filter=-2,-1</string>
</dict>
</array>
- <key>preset_name</key>
+ <key>Folder</key>
+ <true />
+ <key>PresetName</key>
<string>Gaming Consoles</string>
- <key>preset_type</key>
- <integer>2</integer>
+ <key>Type</key>
+ <integer>0</integer>
</dict>
</array>
<key>widget-deps</key>
<dict>
- <key>anamorphic</key>
+ <key>AudioEncoder</key>
<array>
- <string>keep_aspect</string>
- <string>scale_height</string>
+ <string>AudioBitrate</string>
+ <string>AudioSamplerate</string>
+ <string>AudioMixdown</string>
+ <string>AudioTrackDRCSlider</string>
</array>
- <key>audio_codec</key>
+ <key>ChapterMarkers</key>
<array>
- <string>audio_bitrate</string>
- <string>audio_rate</string>
- <string>audio_mix</string>
- <string>audio_drc</string>
+ <string>chapters_list</string>
</array>
- <key>autocrop</key>
+ <key>FileFormat</key>
<array>
- <string>crop_top</string>
- <string>crop_bottom</string>
- <string>crop_left</string>
- <string>crop_right</string>
+ <string>Mp4LargeFile</string>
+ <string>Mp4HttpOptimize</string>
+ <string>Mp4iPodCompatible</string>
</array>
- <key>autoscale</key>
+ <key>PictureAutoCrop</key>
+ <array>
+ <string>PictureTopCrop</string>
+ <string>PictureBottomCrop</string>
+ <string>PictureLeftCrop</string>
+ <string>PictureRightCrop</string>
+ </array>
+ <key>PictureDecomb</key>
+ <array>
+ <string>PictureDeinterlace</string>
+ <string>tweak_PictureDeinterlace</string>
+ </array>
+ <key>PictureKeepRatio</key>
<array>
- <string>scale_width</string>
<string>scale_height</string>
</array>
- <key>chapter_markers</key>
+ <key>VideoEncoder</key>
<array>
- <string>chapters_list</string>
+ <string>x264_tab</string>
+ <string>x264_tab_label</string>
+ <string>Mp4iPodCompatible</string>
+ <string>directqp</string>
</array>
- <key>container</key>
+ <key>VideoTwoPass</key>
<array>
- <string>large_mp4</string>
- <string>http_optimize_mp4</string>
- <string>ipod_file</string>
+ <string>VideoTurboTwoPass</string>
</array>
- <key>decomb</key>
+ <key>anamorphic</key>
<array>
- <string>deinterlace</string>
- <string>tweak_deinterlace</string>
+ <string>PictureKeepRatio</string>
+ <string>scale_height</string>
</array>
- <key>keep_aspect</key>
+ <key>autoscale</key>
<array>
+ <string>scale_width</string>
<string>scale_height</string>
</array>
<key>title</key>
@@ -6317,34 +6520,24 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<string>start_chapter</string>
<string>end_chapter</string>
</array>
- <key>two_pass</key>
- <array>
- <string>turbo</string>
- </array>
<key>use_source_name</key>
<array>
<string>chapters_in_destination</string>
</array>
- <key>video_codec</key>
- <array>
- <string>x264_tab</string>
- <string>x264_tab_label</string>
- <string>ipod_file</string>
- </array>
<key>vquality_type_bitrate</key>
<array>
- <string>video_bitrate</string>
+ <string>VideoAvgBitrate</string>
</array>
<key>vquality_type_constant</key>
<array>
- <string>video_quality</string>
+ <string>VideoQualitySlider</string>
<string>constant_rate_factor</string>
- <string>two_pass</string>
- <string>turbo</string>
+ <string>VideoTwoPass</string>
+ <string>VideoTurboTwoPass</string>
</array>
<key>vquality_type_target</key>
<array>
- <string>video_target_size</string>
+ <string>VideoTargetSize</string>
</array>
<key>x264_bframes</key>
<array>
@@ -6367,119 +6560,169 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</dict>
<key>widget-reverse-deps</key>
<dict>
- <key>audio_bitrate</key>
+ <key>AudioBitrate</key>
<array>
<array>
- <string>audio_codec</string>
+ <string>AudioEncoder</string>
<string>ac3</string>
<true />
</array>
</array>
- <key>audio_drc</key>
+ <key>AudioMixdown</key>
<array>
<array>
- <string>audio_codec</string>
+ <string>AudioEncoder</string>
<string>ac3</string>
<true />
</array>
</array>
- <key>audio_mix</key>
+ <key>AudioSamplerate</key>
<array>
<array>
- <string>audio_codec</string>
+ <string>AudioEncoder</string>
<string>ac3</string>
<true />
</array>
</array>
- <key>audio_rate</key>
+ <key>AudioTrackDRCSlider</key>
<array>
<array>
- <string>audio_codec</string>
+ <string>AudioEncoder</string>
<string>ac3</string>
<true />
</array>
</array>
- <key>chapters_in_destination</key>
+ <key>Mp4HttpOptimize</key>
<array>
<array>
- <string>use_source_name</string>
- <string>TRUE</string>
+ <string>FileFormat</string>
+ <string>mp4|m4v</string>
<false />
</array>
</array>
- <key>chapters_label</key>
+ <key>Mp4LargeFile</key>
<array>
<array>
- <string>title</string>
- <string>none</string>
- <true />
+ <string>FileFormat</string>
+ <string>mp4|m4v</string>
+ <false />
</array>
</array>
- <key>chapters_list</key>
+ <key>Mp4iPodCompatible</key>
<array>
<array>
- <string>chapter_markers</string>
- <string>TRUE</string>
+ <string>FileFormat</string>
+ <string>mp4|m4v</string>
+ <false />
+ </array>
+ <array>
+ <string>VideoEncoder</string>
+ <string>x264</string>
<false />
</array>
</array>
- <key>chapters_tab</key>
+ <key>PictureBottomCrop</key>
<array>
<array>
- <string>title</string>
- <string>none</string>
- <true />
+ <string>PictureAutoCrop</string>
+ <string>FALSE</string>
+ <false />
</array>
</array>
- <key>constant_rate_factor</key>
+ <key>PictureDeinterlace</key>
<array>
<array>
- <string>vquality_type_constant</string>
+ <string>PictureDecomb</string>
<string>TRUE</string>
- <false />
+ <true />
</array>
</array>
- <key>crop_bottom</key>
+ <key>PictureKeepRatio</key>
<array>
<array>
- <string>autocrop</string>
+ <string>anamorphic</string>
<string>FALSE</string>
<false />
</array>
</array>
- <key>crop_left</key>
+ <key>PictureLeftCrop</key>
<array>
<array>
- <string>autocrop</string>
+ <string>PictureAutoCrop</string>
<string>FALSE</string>
<false />
</array>
</array>
- <key>crop_right</key>
+ <key>PictureRightCrop</key>
<array>
<array>
- <string>autocrop</string>
+ <string>PictureAutoCrop</string>
<string>FALSE</string>
<false />
</array>
</array>
- <key>crop_top</key>
+ <key>PictureTopCrop</key>
<array>
<array>
- <string>autocrop</string>
+ <string>PictureAutoCrop</string>
<string>FALSE</string>
<false />
</array>
</array>
- <key>deinterlace</key>
+ <key>VideoAvgBitrate</key>
+ <array>
+ <array>
+ <string>vquality_type_bitrate</string>
+ <string>TRUE</string>
+ <false />
+ </array>
+ </array>
+ <key>VideoQualitySlider</key>
+ <array>
+ <array>
+ <string>vquality_type_constant</string>
+ <string>TRUE</string>
+ <false />
+ </array>
+ </array>
+ <key>VideoTargetSize</key>
+ <array>
+ <array>
+ <string>vquality_type_target</string>
+ <string>TRUE</string>
+ <false />
+ </array>
+ </array>
+ <key>VideoTurboTwoPass</key>
<array>
<array>
- <string>decomb</string>
+ <string>vquality_type_constant</string>
<string>TRUE</string>
<true />
</array>
+ <array>
+ <string>VideoTwoPass</string>
+ <string>TRUE</string>
+ <false />
+ </array>
</array>
- <key>end_chapter</key>
+ <key>VideoTwoPass</key>
+ <array>
+ <array>
+ <string>vquality_type_constant</string>
+ <string>TRUE</string>
+ <true />
+ </array>
+ </array>
+ <key>chapters_in_destination</key>
+ <array>
+ <array>
+ <string>use_source_name</string>
+ <string>TRUE</string>
+ <false />
+ </array>
+ </array>
+ <key>chapters_label</key>
<array>
<array>
<string>title</string>
@@ -6487,41 +6730,44 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<true />
</array>
</array>
- <key>http_optimize_mp4</key>
+ <key>chapters_list</key>
<array>
<array>
- <string>container</string>
- <string>mp4|m4v</string>
+ <string>ChapterMarkers</string>
+ <string>TRUE</string>
<false />
</array>
</array>
- <key>ipod_file</key>
+ <key>chapters_tab</key>
<array>
<array>
- <string>container</string>
- <string>mp4|m4v</string>
- <false />
+ <string>title</string>
+ <string>none</string>
+ <true />
</array>
+ </array>
+ <key>constant_rate_factor</key>
+ <array>
<array>
- <string>video_codec</string>
- <string>x264</string>
+ <string>vquality_type_constant</string>
+ <string>TRUE</string>
<false />
</array>
</array>
- <key>keep_aspect</key>
+ <key>directqp</key>
<array>
<array>
- <string>anamorphic</string>
- <string>FALSE</string>
+ <string>VideoEncoder</string>
+ <string>x264|ffmpeg</string>
<false />
</array>
</array>
- <key>large_mp4</key>
+ <key>end_chapter</key>
<array>
<array>
- <string>container</string>
- <string>mp4|m4v</string>
- <false />
+ <string>title</string>
+ <string>none</string>
+ <true />
</array>
</array>
<key>picture_label</key>
@@ -6585,7 +6831,7 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<false />
</array>
<array>
- <string>keep_aspect</string>
+ <string>PictureKeepRatio</string>
<string>FALSE</string>
<false />
</array>
@@ -6622,58 +6868,13 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<true />
</array>
</array>
- <key>turbo</key>
+ <key>tweak_PictureDeinterlace</key>
<array>
<array>
- <string>vquality_type_constant</string>
+ <string>PictureDecomb</string>
<string>TRUE</string>
<true />
</array>
- <array>
- <string>two_pass</string>
- <string>TRUE</string>
- <false />
- </array>
- </array>
- <key>tweak_deinterlace</key>
- <array>
- <array>
- <string>decomb</string>
- <string>TRUE</string>
- <true />
- </array>
- </array>
- <key>two_pass</key>
- <array>
- <array>
- <string>vquality_type_constant</string>
- <string>TRUE</string>
- <true />
- </array>
- </array>
- <key>video_bitrate</key>
- <array>
- <array>
- <string>vquality_type_bitrate</string>
- <string>TRUE</string>
- <false />
- </array>
- </array>
- <key>video_quality</key>
- <array>
- <array>
- <string>vquality_type_constant</string>
- <string>TRUE</string>
- <false />
- </array>
- </array>
- <key>video_target_size</key>
- <array>
- <array>
- <string>vquality_type_target</string>
- <string>TRUE</string>
- <false />
- </array>
</array>
<key>x264_bpyramid</key>
<array>
@@ -6710,7 +6911,7 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_tab</key>
<array>
<array>
- <string>video_codec</string>
+ <string>VideoEncoder</string>
<string>x264</string>
<false />
</array>
@@ -6718,7 +6919,7 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_tab_label</key>
<array>
<array>
- <string>video_codec</string>
+ <string>VideoEncoder</string>
<string>x264</string>
<false />
</array>
diff --git a/gtk/src/settings.c b/gtk/src/settings.c
index 4cb797fe1..0b5c90283 100644
--- a/gtk/src/settings.c
+++ b/gtk/src/settings.c
@@ -597,76 +597,3 @@ ghb_ui_update(signal_user_data_t *ud, const gchar *name, const GValue *value)
return 0;
}
-gint
-ghb_pref_acount(GValue *settings)
-{
- GValue *acodec;
- acodec = ghb_settings_get_value(settings, "pref_audio_codec");
- return ghb_array_len(acodec);
-}
-
-gint
-ghb_pref_acodec(GValue *settings, gint index)
-{
- GValue *acodec;
- gint count;
-
- acodec = ghb_settings_get_value(settings, "pref_audio_codec");
- count = ghb_array_len(acodec);
- if (index >= count)
- return 0;
- return ghb_value_int(ghb_array_get_nth(acodec, index));
-}
-
-gint
-ghb_pref_bitrate(GValue *settings, gint index)
-{
- GValue *bitrate;
- gint count;
-
- bitrate = ghb_settings_get_value(settings, "pref_audio_bitrate");
- count = ghb_array_len(bitrate);
- if (index >= count)
- return 0;
- return ghb_value_int(ghb_array_get_nth(bitrate, index));
-}
-
-gint
-ghb_pref_rate(GValue *settings, gint index)
-{
- GValue *rate;
- gint count;
-
- rate = ghb_settings_get_value(settings, "pref_audio_rate");
- count = ghb_array_len(rate);
- if (index >= count)
- return 0;
- return ghb_value_int(ghb_array_get_nth(rate, index));
-}
-
-gint
-ghb_pref_mix(GValue *settings, gint index)
-{
- GValue *mix;
- gint count;
-
- mix = ghb_settings_get_value(settings, "pref_audio_mix");
- count = ghb_array_len(mix);
- if (index >= count)
- return 0;
- return ghb_value_int(ghb_array_get_nth(mix, index));
-}
-
-gdouble
-ghb_pref_drc(GValue *settings, gint index)
-{
- GValue *drc;
- gint count;
-
- drc = ghb_settings_get_value(settings, "pref_audio_drc");
- count = ghb_array_len(drc);
- if (index >= count)
- return 0;
- return ghb_value_double(ghb_array_get_nth(drc, index));
-}
-
diff --git a/gtk/src/settings.h b/gtk/src/settings.h
index e328ba678..b78879939 100644
--- a/gtk/src/settings.h
+++ b/gtk/src/settings.h
@@ -91,12 +91,4 @@ void ghb_widget_to_setting(GValue *settings, GtkWidget *widget);
int ghb_ui_update(
signal_user_data_t *ud, const gchar *name, const GValue *value);
-
-gint ghb_pref_acount(GValue *settings);
-gint ghb_pref_acodec(GValue *settings, gint index);
-gint ghb_pref_bitrate(GValue *settings, gint index);
-gint ghb_pref_rate(GValue *settings, gint index);
-gint ghb_pref_mix(GValue *settings, gint index);
-gdouble ghb_pref_drc(GValue *settings, gint index);
-
#endif // _SETTINGS_H_
diff --git a/gtk/src/standard_presets.xml b/gtk/src/standard_presets.xml
index 3238466d0..94716c749 100644
--- a/gtk/src/standard_presets.xml
+++ b/gtk/src/standard_presets.xml
@@ -3,1210 +3,1390 @@
<plist version="1.0">
<array>
<dict>
- <key>preset_folder</key>
+ <key>ChildrenArray</key>
<array>
<dict>
- <key>Default</key>
- <false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
- <true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
- <integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
- <false />
- <key>keep_aspect</key>
- <false />
- <key>large_mp4</key>
- <true />
- <key>max_height</key>
- <integer>0</integer>
- <key>max_width</key>
- <integer>720</integer>
- <key>pref_audio_list</key>
+ <key>AudioList</key>
<array>
<dict>
- <key>audio_bitrate</key>
+ <key>AudioBitrate</key>
<string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
<string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
</dict>
<dict>
- <key>audio_bitrate</key>
+ <key>AudioBitrate</key>
<string>160</string>
- <key>audio_codec</key>
- <string>ac3</string>
- <key>audio_drc</key>
+ <key>AudioEncoder</key>
+ <string>AC3 Passthru</string>
+ <key>AudioMixdown</key>
+ <string>AC3 Passthru</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
<real>1</real>
- <key>audio_mix</key>
- <string>none</string>
- <key>audio_rate</key>
- <string>source</string>
+ <key>AudioTrackDescription</key>
+ <string></string>
</dict>
</array>
- <key>preset_description</key>
+ <key>ChapterMarkers</key>
+ <true />
+ <key>Default</key>
+ <false />
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>Folder</key>
+ <false />
+ <key>Mp4LargeFile</key>
+ <true />
+ <key>PictureAutoCrop</key>
+ <true />
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
+ <false />
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
+ <false />
+ <key>PictureLeftCrop</key>
+ <integer>0</integer>
+ <key>PicturePAR</key>
+ <integer>2</integer>
+ <key>PictureRightCrop</key>
+ <integer>0</integer>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>720</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s universally compatible, full resolution settings for all current Apple devices: iPod, iPhone, AppleTV, and Macs</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Universal</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
- <false />
- <key>video_bitrate</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>2500</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>59</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.5899999737739563</real>
+ <key>VideoQualityType</key>
+ <integer>2</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoTwoPass</key>
<false />
- <key>vquality_type_constant</key>
- <true />
- <key>vquality_type_target</key>
- <false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>level=30:cabac=0:ref=3:mixed-refs=1:analyse=all:me=umh:no-fast-pskip=1:subme=8</string>
</dict>
<dict>
- <key>Default</key>
- <false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
- <true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
- <integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
- <false />
- <key>keep_aspect</key>
- <false />
- <key>large_mp4</key>
- <true />
- <key>max_height</key>
- <integer>0</integer>
- <key>max_width</key>
- <integer>960</integer>
- <key>pref_audio_list</key>
+ <key>AudioList</key>
<array>
<dict>
- <key>audio_bitrate</key>
+ <key>AudioBitrate</key>
<string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
<string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
</dict>
<dict>
- <key>audio_bitrate</key>
+ <key>AudioBitrate</key>
<string>160</string>
- <key>audio_codec</key>
- <string>ac3</string>
- <key>audio_drc</key>
+ <key>AudioEncoder</key>
+ <string>AC3 Passthru</string>
+ <key>AudioMixdown</key>
+ <string>AC3 Passthru</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
<real>1</real>
- <key>audio_mix</key>
- <string>none</string>
- <key>audio_rate</key>
- <string>source</string>
+ <key>AudioTrackDescription</key>
+ <string></string>
</dict>
</array>
- <key>preset_description</key>
+ <key>ChapterMarkers</key>
+ <true />
+ <key>Default</key>
+ <false />
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>Folder</key>
+ <false />
+ <key>Mp4LargeFile</key>
+ <true />
+ <key>PictureAutoCrop</key>
+ <true />
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
+ <false />
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
+ <false />
+ <key>PictureLeftCrop</key>
+ <integer>0</integer>
+ <key>PicturePAR</key>
+ <integer>2</integer>
+ <key>PictureRightCrop</key>
+ <integer>0</integer>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>960</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s settings for the AppleTV, including Dolby Digital 5.1 AC3 sound. Provides a good balance between quality and file size, and optimizes performance.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>AppleTV</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
- <false />
- <key>video_bitrate</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>2500</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>59</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.5899999737739563</real>
+ <key>VideoQualityType</key>
+ <integer>2</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoTwoPass</key>
<false />
- <key>vquality_type_constant</key>
- <true />
- <key>vquality_type_target</key>
- <false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>level=30:cabac=0:ref=3:mixed-refs=1:bframes=6:weightb=1:direct=auto:no-fast-pskip=1:me=umh:subq=9:analyse=all</string>
</dict>
<dict>
- <key>preset_folder</key>
+ <key>ChildrenArray</key>
<array>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <false />
- <key>autocrop</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>Mp4iPodCompatible</key>
<true />
- <key>chapter_markers</key>
+ <key>PictureAutoCrop</key>
<true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>ipod_file</key>
- <true />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<true />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
+ <integer>0</integer>
+ <key>PicturePAR</key>
+ <integer>0</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
<integer>320</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>48</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s low resolution settings for the iPod. Optimized for great playback on the iPod screen, with smaller file size.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>iPod Classic &amp; iPod Nano</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <true />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
+ <key>UsesMaxPictureSettings</key>
<false />
- <key>video_bitrate</key>
- <integer>700</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
- <integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>vquality_type_constant</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
+ <integer>700</integer>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
<false />
- <key>vquality_type_target</key>
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
+ <integer>700</integer>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1</string>
</dict>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>128</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <false />
- <key>autocrop</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>Mp4iPodCompatible</key>
<true />
- <key>chapter_markers</key>
+ <key>PictureAutoCrop</key>
<true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>ipod_file</key>
- <true />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<true />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>0</integer>
+ <key>PictureRightCrop</key>
+ <integer>0</integer>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
<integer>480</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>128</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>48</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s settings for the iPhone and iPod Touch.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>iPhone &amp; iPod Touch</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <true />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
+ <key>UsesMaxPictureSettings</key>
<false />
- <key>video_bitrate</key>
- <integer>960</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
- <integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>vquality_type_constant</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
+ <integer>960</integer>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
<false />
- <key>vquality_type_target</key>
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
+ <integer>700</integer>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:trellis=1</string>
</dict>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <false />
- <key>autocrop</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>Mp4iPodCompatible</key>
<true />
- <key>chapter_markers</key>
+ <key>PictureAutoCrop</key>
<true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>ipod_file</key>
- <true />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<true />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
+ <integer>0</integer>
+ <key>PicturePAR</key>
+ <integer>0</integer>
+ <key>PictureRightCrop</key>
+ <integer>0</integer>
+ <key>PictureTopCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PictureWidth</key>
<integer>640</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>48</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s high resolution settings for older 5 and 5.5G iPods. Good video quality, great for viewing on a TV using your iPod</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>iPod Legacy</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <true />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
+ <key>UsesMaxPictureSettings</key>
<false />
- <key>video_bitrate</key>
- <integer>1500</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
- <integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>vquality_type_constant</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
+ <integer>1500</integer>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
<false />
- <key>vquality_type_target</key>
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
+ <integer>700</integer>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1</string>
</dict>
</array>
- <key>preset_name</key>
+ <key>Folder</key>
+ <true />
+ <key>PresetName</key>
<string>iPod &amp; iPhone</string>
- <key>preset_type</key>
- <integer>2</integer>
+ <key>Type</key>
+ <integer>0</integer>
</dict>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>autoscale</key>
- <true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
- <integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s high profile settings for use with QuickTime. It can be slow, so use it when the Normal preset doesn&apos;t look good enough.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>QuickTime</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>turbo</key>
+ <key>UsesMaxPictureSettings</key>
<true />
- <key>two_pass</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>video_bitrate</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>1800</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoTurboTwoPass</key>
<true />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
- <false />
- <key>x264_options</key>
+ <key>VideoTwoPass</key>
+ <true />
+ <key>x264Option</key>
<string>ref=3:mixed-refs:bframes=3:weightb:direct=auto:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip=1:psy-rd=1,1</string>
</dict>
</array>
- <key>preset_name</key>
+ <key>Folder</key>
+ <true />
+ <key>PresetName</key>
<string>Apple</string>
- <key>preset_type</key>
- <integer>2</integer>
+ <key>Type</key>
+ <integer>0</integer>
</dict>
<dict>
- <key>preset_folder</key>
+ <key>ChildrenArray</key>
<array>
<dict>
- <key>Default</key>
- <true />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
<true />
- <key>autoscale</key>
+ <key>Default</key>
<true />
- <key>chapter_markers</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
- <integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s normal, default settings.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Normal</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>turbo</key>
+ <key>UsesMaxPictureSettings</key>
<true />
- <key>two_pass</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>video_bitrate</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>1500</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoTurboTwoPass</key>
<true />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
- <false />
- <key>x264_options</key>
+ <key>VideoTwoPass</key>
+ <true />
+ <key>x264Option</key>
<string>ref=2:bframes=2:me=umh</string>
</dict>
<dict>
- <key>Default</key>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
<false />
- <key>anamorphic</key>
+ <key>Default</key>
<false />
- <key>autocrop</key>
- <true />
- <key>autoscale</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>chapter_markers</key>
- <false />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
- <integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<true />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureRightCrop</key>
+ <integer>0</integer>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s traditional, faster, lower-quality settings.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Classic</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
+ <key>UsesMaxPictureSettings</key>
<true />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
- <false />
- <key>video_bitrate</key>
+ <key>UsesPictureFilters</key>
+ <true />
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>1000</integer>
- <key>video_codec</key>
- <string>ffmpeg</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>MPEG-4 (FFmpeg)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
- <true />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string></string>
</dict>
</array>
- <key>preset_name</key>
+ <key>Folder</key>
+ <true />
+ <key>PresetName</key>
<string>Basic</string>
- <key>preset_type</key>
- <integer>2</integer>
+ <key>Type</key>
+ <integer>0</integer>
</dict>
<dict>
- <key>preset_folder</key>
+ <key>ChildrenArray</key>
<array>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
- <true />
- <key>autoscale</key>
+ <key>FileFormat</key>
+ <string>MKV file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mkv</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
<integer>0</integer>
- <key>decomb</key>
+ <key>PictureDecomb</key>
<true />
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<true />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
- <false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s settings for cartoons, anime, and CGI.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Animation</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>turbo</key>
+ <key>UsesMaxPictureSettings</key>
<true />
- <key>two_pass</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>video_bitrate</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>1000</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoTurboTwoPass</key>
<true />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
- <false />
- <key>x264_options</key>
+ <key>VideoTwoPass</key>
+ <true />
+ <key>x264Option</key>
<string>ref=5:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me=umh:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip:filter=2,2:psy-rd=1,1:subme=9</string>
</dict>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AC3 Passthru</string>
+ <key>AudioMixdown</key>
+ <string>AC3 Passthru</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
+ <key>FileFormat</key>
+ <string>MKV file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>autoscale</key>
- <true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mkv</string>
- <key>deblock</key>
- <integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>ac3</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>none</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s preset for consistently excellent quality in one pass, with the downside of entirely unpredictable file sizes and bitrates.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Constant Quality Rate</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>turbo</key>
- <false />
- <key>two_pass</key>
- <false />
- <key>video_bitrate</key>
+ <key>UsesMaxPictureSettings</key>
+ <true />
+ <key>UsesPictureFilters</key>
+ <true />
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>2000</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>60</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.60000002384185791</real>
+ <key>VideoQualityType</key>
+ <integer>2</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoTurboTwoPass</key>
<false />
- <key>vquality_type_constant</key>
- <true />
- <key>vquality_type_target</key>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>ref=3:mixed-refs:bframes=3:b-pyramid:weightb:filter=-2,-1:trellis=1:analyse=all:8x8dct:me=umh:subme=9:psy-rd=1,1</string>
</dict>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AC3 Passthru</string>
+ <key>AudioMixdown</key>
+ <string>AC3 Passthru</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
- <true />
- <key>autoscale</key>
+ <key>FileFormat</key>
+ <string>MKV file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mkv</string>
- <key>deblock</key>
- <integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>ac3</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>none</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s preset for feature films.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Film</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>turbo</key>
+ <key>UsesMaxPictureSettings</key>
<true />
- <key>two_pass</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>video_bitrate</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>1800</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoTurboTwoPass</key>
<true />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
- <false />
- <key>x264_options</key>
+ <key>VideoTwoPass</key>
+ <true />
+ <key>x264Option</key>
<string>ref=3:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me=umh:subme=9:analyse=all:8x8dct:trellis=1:no-fast-pskip:psy-rd=1,1</string>
</dict>
<dict>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>Auto</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
+ <true />
<key>Default</key>
<false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
- <true />
- <key>autoscale</key>
+ <key>FileFormat</key>
+ <string>MKV file</string>
+ <key>PictureAutoCrop</key>
<true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mkv</string>
- <key>deblock</key>
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
<integer>0</integer>
- <key>decomb</key>
+ <key>PictureDecomb</key>
<true />
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<true />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
- <false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>source</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s settings for video from television.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>Television</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>turbo</key>
+ <key>UsesMaxPictureSettings</key>
<true />
- <key>two_pass</key>
+ <key>UsesPictureFilters</key>
<true />
- <key>video_bitrate</key>
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>1300</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
+ <key>VideoTurboTwoPass</key>
<true />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
- <false />
- <key>x264_options</key>
+ <key>VideoTwoPass</key>
+ <true />
+ <key>x264Option</key>
<string>ref=3:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me=umh:subme=9:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip=1:psy-rd=1,1</string>
</dict>
</array>
- <key>preset_name</key>
+ <key>Folder</key>
+ <true />
+ <key>PresetName</key>
<string>High Profile</string>
- <key>preset_type</key>
- <integer>2</integer>
+ <key>Type</key>
+ <integer>0</integer>
</dict>
<dict>
- <key>preset_folder</key>
+ <key>ChildrenArray</key>
<array>
<dict>
- <key>Default</key>
- <false />
- <key>anamorphic</key>
- <false />
- <key>autocrop</key>
- <true />
- <key>chapter_markers</key>
- <true />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
- <integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
- <false />
- <key>keep_aspect</key>
- <true />
- <key>max_height</key>
- <integer>208</integer>
- <key>max_width</key>
- <integer>368</integer>
- <key>pref_audio_list</key>
+ <key>AudioList</key>
<array>
<dict>
- <key>audio_bitrate</key>
+ <key>AudioBitrate</key>
<string>128</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
<string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
</dict>
</array>
- <key>preset_description</key>
+ <key>ChapterMarkers</key>
+ <true />
+ <key>Default</key>
+ <false />
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>PictureAutoCrop</key>
+ <true />
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
+ <false />
+ <key>PictureHeight</key>
+ <integer>208</integer>
+ <key>PictureKeepRatio</key>
+ <true />
+ <key>PictureLeftCrop</key>
+ <integer>0</integer>
+ <key>PicturePAR</key>
+ <integer>0</integer>
+ <key>PictureRightCrop</key>
+ <integer>0</integer>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>368</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s settings for the Sony PlayStation Portable.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>PSP</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <true />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
+ <key>UsesMaxPictureSettings</key>
<false />
- <key>video_bitrate</key>
+ <key>UsesPictureFilters</key>
+ <true />
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>1024</integer>
- <key>video_codec</key>
- <string>ffmpeg</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>MPEG-4 (FFmpeg)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
- <true />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string></string>
</dict>
<dict>
- <key>Default</key>
- <false />
- <key>anamorphic</key>
- <true />
- <key>autocrop</key>
+ <key>AudioList</key>
+ <array>
+ <dict>
+ <key>AudioBitrate</key>
+ <string>160</string>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
+ <string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
+ </dict>
+ </array>
+ <key>ChapterMarkers</key>
<false />
- <key>autoscale</key>
- <true />
- <key>chapter_markers</key>
+ <key>Default</key>
<false />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
- <integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>PictureAutoCrop</key>
<false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
+ <key>PictureBottomCrop</key>
+ <integer>0</integer>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>keep_aspect</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>max_height</key>
+ <key>PictureLeftCrop</key>
<integer>0</integer>
- <key>max_width</key>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
<integer>0</integer>
- <key>pref_audio_list</key>
- <array>
- <dict>
- <key>audio_bitrate</key>
- <string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
- <string>48</string>
- </dict>
- </array>
- <key>preset_description</key>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
<string>HandBrake&apos;s settings for the Sony PlayStation 3.</string>
- <key>preset_name</key>
+ <key>PresetName</key>
<string>PS3</string>
- <key>preset_type</key>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
<integer>0</integer>
- <key>round_dimensions</key>
- <false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
- <false />
- <key>video_bitrate</key>
+ <key>UsesMaxPictureSettings</key>
+ <true />
+ <key>UsesPictureFilters</key>
+ <true />
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>2500</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
- <true />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>level=41:me=umh</string>
</dict>
<dict>
- <key>Default</key>
- <false />
- <key>anamorphic</key>
- <true />
- <key>autoscale</key>
- <true />
- <key>chapter_markers</key>
- <false />
- <key>container</key>
- <string>mp4</string>
- <key>deblock</key>
- <integer>0</integer>
- <key>deinterlace</key>
- <string>none</string>
- <key>denoise</key>
- <string>none</string>
- <key>detelecine</key>
- <false />
- <key>framerate</key>
- <string>source</string>
- <key>grayscale</key>
- <false />
- <key>keep_aspect</key>
- <false />
- <key>max_height</key>
- <integer>0</integer>
- <key>max_width</key>
- <integer>0</integer>
- <key>pref_audio_list</key>
+ <key>AudioList</key>
<array>
<dict>
- <key>audio_bitrate</key>
+ <key>AudioBitrate</key>
<string>160</string>
- <key>audio_codec</key>
- <string>faac</string>
- <key>audio_drc</key>
- <real>1</real>
- <key>audio_mix</key>
- <string>dpl2</string>
- <key>audio_rate</key>
+ <key>AudioEncoder</key>
+ <string>AAC (faac)</string>
+ <key>AudioMixdown</key>
+ <string>Dolby Pro Logic II</string>
+ <key>AudioSamplerate</key>
<string>48</string>
+ <key>AudioTrack</key>
+ <integer>1</integer>
+ <key>AudioTrackDRCSlider</key>
+ <real>1</real>
+ <key>AudioTrackDescription</key>
+ <string></string>
</dict>
</array>
- <key>preset_description</key>
- <string>HandBrake&apos;s settings for the Microsoft Xbox 360.</string>
- <key>preset_name</key>
- <string>Xbox 360</string>
- <key>preset_type</key>
+ <key>ChapterMarkers</key>
+ <false />
+ <key>Default</key>
+ <false />
+ <key>FileFormat</key>
+ <string>MP4 file</string>
+ <key>PictureBottomCrop</key>
<integer>0</integer>
- <key>round_dimensions</key>
+ <key>PictureDeblock</key>
+ <integer>0</integer>
+ <key>PictureDeinterlace</key>
+ <string>0</string>
+ <key>PictureDenoise</key>
+ <string>0</string>
+ <key>PictureDetelecine</key>
<false />
- <key>subtitle_lang</key>
- <string>none</string>
- <key>two_pass</key>
+ <key>PictureHeight</key>
+ <integer>0</integer>
+ <key>PictureKeepRatio</key>
<false />
- <key>video_bitrate</key>
+ <key>PictureLeftCrop</key>
+ <integer>0</integer>
+ <key>PicturePAR</key>
+ <integer>1</integer>
+ <key>PictureRightCrop</key>
+ <integer>0</integer>
+ <key>PictureTopCrop</key>
+ <integer>0</integer>
+ <key>PictureWidth</key>
+ <integer>0</integer>
+ <key>PresetDescription</key>
+ <string>HandBrake&apos;s settings for the Microsoft Xbox 360.</string>
+ <key>PresetName</key>
+ <string>Xbox 360</string>
+ <key>Subtitles</key>
+ <string>None</string>
+ <key>Type</key>
+ <integer>0</integer>
+ <key>UsesMaxPictureSettings</key>
+ <true />
+ <key>UsesPictureFilters</key>
+ <true />
+ <key>UsesPictureSettings</key>
+ <integer>1</integer>
+ <key>VideoAvgBitrate</key>
<integer>2000</integer>
- <key>video_codec</key>
- <string>x264</string>
- <key>video_quality</key>
- <integer>65</integer>
- <key>video_target_size</key>
+ <key>VideoEncoder</key>
+ <string>H.264 (x264)</string>
+ <key>VideoFramerate</key>
+ <string>Same as source</string>
+ <key>VideoGrayScale</key>
+ <false />
+ <key>VideoQualitySlider</key>
+ <real>0.64709997177124023</real>
+ <key>VideoQualityType</key>
+ <integer>1</integer>
+ <key>VideoTargetSize</key>
<integer>700</integer>
- <key>vquality_type_bitrate</key>
- <true />
- <key>vquality_type_constant</key>
- <false />
- <key>vquality_type_target</key>
+ <key>VideoTwoPass</key>
<false />
- <key>x264_options</key>
+ <key>x264Option</key>
<string>level=40:ref=2:mixed-refs:bframes=3:weightb:subme=7:direct=auto:b-pyramid:me=umh:analyse=all:no-fast-pskip:filter=-2,-1</string>
</dict>
</array>
- <key>preset_name</key>
+ <key>Folder</key>
+ <true />
+ <key>PresetName</key>
<string>Gaming Consoles</string>
- <key>preset_type</key>
- <integer>2</integer>
+ <key>Type</key>
+ <integer>0</integer>
</dict>
</array>
</plist>
diff --git a/gtk/src/values.c b/gtk/src/values.c
index 4124b0a26..d8dd74330 100644
--- a/gtk/src/values.c
+++ b/gtk/src/values.c
@@ -683,16 +683,23 @@ ghb_array_len(const GValue *gval)
static void
xform_string_int(const GValue *sval, GValue *ival)
{
+ gchar *end;
+
const gchar *str = g_value_get_string(sval);
- gint val = g_strtod(str, NULL);
+ gint val = g_strtod(str, &end);
+ if (*end)
+ val = ~0>>1;
g_value_set_int(ival, val);
}
static void
xform_string_int64(const GValue *sval, GValue *ival)
{
+ gchar *end;
const gchar *str = g_value_get_string(sval);
- gint64 val = g_strtod(str, NULL);
+ gint64 val = g_strtod(str, &end);
+ if (*end)
+ val = ~0L>>1;
g_value_set_int64(ival, val);
}
diff --git a/gtk/src/widget_deps b/gtk/src/widget_deps
index c7150471f..eb9ef27d2 100644
--- a/gtk/src/widget_deps
+++ b/gtk/src/widget_deps
@@ -2,47 +2,58 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
- <key>anamorphic</key>
+ <key>AudioEncoder</key>
<array>
- <string>keep_aspect</string>
- <string>scale_height</string>
+ <string>AudioBitrate</string>
+ <string>AudioSamplerate</string>
+ <string>AudioMixdown</string>
+ <string>AudioTrackDRCSlider</string>
</array>
- <key>audio_codec</key>
+ <key>ChapterMarkers</key>
<array>
- <string>audio_bitrate</string>
- <string>audio_rate</string>
- <string>audio_mix</string>
- <string>audio_drc</string>
+ <string>chapters_list</string>
</array>
- <key>autocrop</key>
+ <key>FileFormat</key>
<array>
- <string>crop_top</string>
- <string>crop_bottom</string>
- <string>crop_left</string>
- <string>crop_right</string>
+ <string>Mp4LargeFile</string>
+ <string>Mp4HttpOptimize</string>
+ <string>Mp4iPodCompatible</string>
</array>
- <key>autoscale</key>
+ <key>PictureAutoCrop</key>
+ <array>
+ <string>PictureTopCrop</string>
+ <string>PictureBottomCrop</string>
+ <string>PictureLeftCrop</string>
+ <string>PictureRightCrop</string>
+ </array>
+ <key>PictureDecomb</key>
+ <array>
+ <string>PictureDeinterlace</string>
+ <string>tweak_PictureDeinterlace</string>
+ </array>
+ <key>PictureKeepRatio</key>
<array>
- <string>scale_width</string>
<string>scale_height</string>
</array>
- <key>chapter_markers</key>
+ <key>VideoEncoder</key>
<array>
- <string>chapters_list</string>
+ <string>x264_tab</string>
+ <string>x264_tab_label</string>
+ <string>Mp4iPodCompatible</string>
+ <string>directqp</string>
</array>
- <key>container</key>
+ <key>VideoTwoPass</key>
<array>
- <string>large_mp4</string>
- <string>http_optimize_mp4</string>
- <string>ipod_file</string>
+ <string>VideoTurboTwoPass</string>
</array>
- <key>decomb</key>
+ <key>anamorphic</key>
<array>
- <string>deinterlace</string>
- <string>tweak_deinterlace</string>
+ <string>PictureKeepRatio</string>
+ <string>scale_height</string>
</array>
- <key>keep_aspect</key>
+ <key>autoscale</key>
<array>
+ <string>scale_width</string>
<string>scale_height</string>
</array>
<key>title</key>
@@ -60,34 +71,24 @@
<string>start_chapter</string>
<string>end_chapter</string>
</array>
- <key>two_pass</key>
- <array>
- <string>turbo</string>
- </array>
<key>use_source_name</key>
<array>
<string>chapters_in_destination</string>
</array>
- <key>video_codec</key>
- <array>
- <string>x264_tab</string>
- <string>x264_tab_label</string>
- <string>ipod_file</string>
- </array>
<key>vquality_type_bitrate</key>
<array>
- <string>video_bitrate</string>
+ <string>VideoAvgBitrate</string>
</array>
<key>vquality_type_constant</key>
<array>
- <string>video_quality</string>
+ <string>VideoQualitySlider</string>
<string>constant_rate_factor</string>
- <string>two_pass</string>
- <string>turbo</string>
+ <string>VideoTwoPass</string>
+ <string>VideoTurboTwoPass</string>
</array>
<key>vquality_type_target</key>
<array>
- <string>video_target_size</string>
+ <string>VideoTargetSize</string>
</array>
<key>x264_bframes</key>
<array>
diff --git a/gtk/src/widget_reverse_deps b/gtk/src/widget_reverse_deps
index bae2d8e02..fa9c804c4 100644
--- a/gtk/src/widget_reverse_deps
+++ b/gtk/src/widget_reverse_deps
@@ -2,119 +2,169 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
- <key>audio_bitrate</key>
+ <key>AudioBitrate</key>
<array>
<array>
- <string>audio_codec</string>
+ <string>AudioEncoder</string>
<string>ac3</string>
<true />
</array>
</array>
- <key>audio_drc</key>
+ <key>AudioMixdown</key>
<array>
<array>
- <string>audio_codec</string>
+ <string>AudioEncoder</string>
<string>ac3</string>
<true />
</array>
</array>
- <key>audio_mix</key>
+ <key>AudioSamplerate</key>
<array>
<array>
- <string>audio_codec</string>
+ <string>AudioEncoder</string>
<string>ac3</string>
<true />
</array>
</array>
- <key>audio_rate</key>
+ <key>AudioTrackDRCSlider</key>
<array>
<array>
- <string>audio_codec</string>
+ <string>AudioEncoder</string>
<string>ac3</string>
<true />
</array>
</array>
- <key>chapters_in_destination</key>
+ <key>Mp4HttpOptimize</key>
<array>
<array>
- <string>use_source_name</string>
- <string>TRUE</string>
+ <string>FileFormat</string>
+ <string>mp4|m4v</string>
<false />
</array>
</array>
- <key>chapters_label</key>
+ <key>Mp4LargeFile</key>
<array>
<array>
- <string>title</string>
- <string>none</string>
- <true />
+ <string>FileFormat</string>
+ <string>mp4|m4v</string>
+ <false />
</array>
</array>
- <key>chapters_list</key>
+ <key>Mp4iPodCompatible</key>
<array>
<array>
- <string>chapter_markers</string>
- <string>TRUE</string>
+ <string>FileFormat</string>
+ <string>mp4|m4v</string>
+ <false />
+ </array>
+ <array>
+ <string>VideoEncoder</string>
+ <string>x264</string>
<false />
</array>
</array>
- <key>chapters_tab</key>
+ <key>PictureBottomCrop</key>
<array>
<array>
- <string>title</string>
- <string>none</string>
- <true />
+ <string>PictureAutoCrop</string>
+ <string>FALSE</string>
+ <false />
</array>
</array>
- <key>constant_rate_factor</key>
+ <key>PictureDeinterlace</key>
<array>
<array>
- <string>vquality_type_constant</string>
+ <string>PictureDecomb</string>
<string>TRUE</string>
- <false />
+ <true />
</array>
</array>
- <key>crop_bottom</key>
+ <key>PictureKeepRatio</key>
<array>
<array>
- <string>autocrop</string>
+ <string>anamorphic</string>
<string>FALSE</string>
<false />
</array>
</array>
- <key>crop_left</key>
+ <key>PictureLeftCrop</key>
<array>
<array>
- <string>autocrop</string>
+ <string>PictureAutoCrop</string>
<string>FALSE</string>
<false />
</array>
</array>
- <key>crop_right</key>
+ <key>PictureRightCrop</key>
<array>
<array>
- <string>autocrop</string>
+ <string>PictureAutoCrop</string>
<string>FALSE</string>
<false />
</array>
</array>
- <key>crop_top</key>
+ <key>PictureTopCrop</key>
<array>
<array>
- <string>autocrop</string>
+ <string>PictureAutoCrop</string>
<string>FALSE</string>
<false />
</array>
</array>
- <key>deinterlace</key>
+ <key>VideoAvgBitrate</key>
<array>
<array>
- <string>decomb</string>
+ <string>vquality_type_bitrate</string>
+ <string>TRUE</string>
+ <false />
+ </array>
+ </array>
+ <key>VideoQualitySlider</key>
+ <array>
+ <array>
+ <string>vquality_type_constant</string>
+ <string>TRUE</string>
+ <false />
+ </array>
+ </array>
+ <key>VideoTargetSize</key>
+ <array>
+ <array>
+ <string>vquality_type_target</string>
+ <string>TRUE</string>
+ <false />
+ </array>
+ </array>
+ <key>VideoTurboTwoPass</key>
+ <array>
+ <array>
+ <string>vquality_type_constant</string>
<string>TRUE</string>
<true />
</array>
+ <array>
+ <string>VideoTwoPass</string>
+ <string>TRUE</string>
+ <false />
+ </array>
</array>
- <key>end_chapter</key>
+ <key>VideoTwoPass</key>
+ <array>
+ <array>
+ <string>vquality_type_constant</string>
+ <string>TRUE</string>
+ <true />
+ </array>
+ </array>
+ <key>chapters_in_destination</key>
+ <array>
+ <array>
+ <string>use_source_name</string>
+ <string>TRUE</string>
+ <false />
+ </array>
+ </array>
+ <key>chapters_label</key>
<array>
<array>
<string>title</string>
@@ -122,41 +172,44 @@
<true />
</array>
</array>
- <key>http_optimize_mp4</key>
+ <key>chapters_list</key>
<array>
<array>
- <string>container</string>
- <string>mp4|m4v</string>
+ <string>ChapterMarkers</string>
+ <string>TRUE</string>
<false />
</array>
</array>
- <key>ipod_file</key>
+ <key>chapters_tab</key>
<array>
<array>
- <string>container</string>
- <string>mp4|m4v</string>
- <false />
+ <string>title</string>
+ <string>none</string>
+ <true />
</array>
+ </array>
+ <key>constant_rate_factor</key>
+ <array>
<array>
- <string>video_codec</string>
- <string>x264</string>
+ <string>vquality_type_constant</string>
+ <string>TRUE</string>
<false />
</array>
</array>
- <key>keep_aspect</key>
+ <key>directqp</key>
<array>
<array>
- <string>anamorphic</string>
- <string>FALSE</string>
+ <string>VideoEncoder</string>
+ <string>x264|ffmpeg</string>
<false />
</array>
</array>
- <key>large_mp4</key>
+ <key>end_chapter</key>
<array>
<array>
- <string>container</string>
- <string>mp4|m4v</string>
- <false />
+ <string>title</string>
+ <string>none</string>
+ <true />
</array>
</array>
<key>picture_label</key>
@@ -220,7 +273,7 @@
<false />
</array>
<array>
- <string>keep_aspect</string>
+ <string>PictureKeepRatio</string>
<string>FALSE</string>
<false />
</array>
@@ -257,59 +310,14 @@
<true />
</array>
</array>
- <key>turbo</key>
- <array>
- <array>
- <string>vquality_type_constant</string>
- <string>TRUE</string>
- <true />
- </array>
- <array>
- <string>two_pass</string>
- <string>TRUE</string>
- <false />
- </array>
- </array>
- <key>tweak_deinterlace</key>
+ <key>tweak_PictureDeinterlace</key>
<array>
<array>
- <string>decomb</string>
+ <string>PictureDecomb</string>
<string>TRUE</string>
<true />
</array>
</array>
- <key>two_pass</key>
- <array>
- <array>
- <string>vquality_type_constant</string>
- <string>TRUE</string>
- <true />
- </array>
- </array>
- <key>video_bitrate</key>
- <array>
- <array>
- <string>vquality_type_bitrate</string>
- <string>TRUE</string>
- <false />
- </array>
- </array>
- <key>video_quality</key>
- <array>
- <array>
- <string>vquality_type_constant</string>
- <string>TRUE</string>
- <false />
- </array>
- </array>
- <key>video_target_size</key>
- <array>
- <array>
- <string>vquality_type_target</string>
- <string>TRUE</string>
- <false />
- </array>
- </array>
<key>x264_bpyramid</key>
<array>
<array>
@@ -345,7 +353,7 @@
<key>x264_tab</key>
<array>
<array>
- <string>video_codec</string>
+ <string>VideoEncoder</string>
<string>x264</string>
<false />
</array>
@@ -353,7 +361,7 @@
<key>x264_tab_label</key>
<array>
<array>
- <string>video_codec</string>
+ <string>VideoEncoder</string>
<string>x264</string>
<false />
</array>
diff --git a/gtk/src/x264handler.c b/gtk/src/x264handler.c
index 1ff2c414c..154defbbb 100644
--- a/gtk/src/x264handler.c
+++ b/gtk/src/x264handler.c
@@ -48,9 +48,9 @@ x264_entry_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
GtkWidget *textview;
gchar *options;
- textview = GTK_WIDGET(GHB_WIDGET(ud->builder, "x264_options"));
+ textview = GTK_WIDGET(GHB_WIDGET(ud->builder, "x264Option"));
ghb_widget_to_setting(ud->settings, textview);
- options = ghb_settings_get_string(ud->settings, "x264_options");
+ options = ghb_settings_get_string(ud->settings, "x264Option");
ignore_options_update = TRUE;
ghb_x264_parse_options(ud, options);
if (!GTK_WIDGET_HAS_FOCUS(textview))
@@ -58,7 +58,7 @@ x264_entry_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
gchar *sopts;
sopts = sanitize_x264opts(ud, options);
- ghb_ui_update(ud, "x264_options", ghb_string_value(sopts));
+ ghb_ui_update(ud, "x264Option", ghb_string_value(sopts));
ghb_x264_parse_options(ud, sopts);
g_free(sopts);
}
@@ -74,12 +74,12 @@ x264_focus_out_cb(GtkWidget *widget, GdkEventFocus *event,
gchar *options, *sopts;
ghb_widget_to_setting(ud->settings, widget);
- options = ghb_settings_get_string(ud->settings, "x264_options");
+ options = ghb_settings_get_string(ud->settings, "x264Option");
sopts = sanitize_x264opts(ud, options);
ignore_options_update = TRUE;
if (sopts != NULL)
{
- ghb_ui_update(ud, "x264_options", ghb_string_value(sopts));
+ ghb_ui_update(ud, "x264Option", ghb_string_value(sopts));
ghb_x264_parse_options(ud, sopts);
}
g_free(options);
@@ -415,7 +415,7 @@ x264_opt_update(signal_user_data_t *ud, GtkWidget *widget)
gint ii;
gboolean foundit = FALSE;
- options = ghb_settings_get_string(ud->settings, "x264_options");
+ options = ghb_settings_get_string(ud->settings, "x264Option");
if (options)
{
split = g_strsplit(options, ":", -1);
@@ -505,7 +505,7 @@ x264_opt_update(signal_user_data_t *ud, GtkWidget *widget)
if (len > 0) result[len - 1] = 0;
gchar *sopts;
sopts = sanitize_x264opts(ud, result);
- ghb_ui_update(ud, "x264_options", ghb_string_value(sopts));
+ ghb_ui_update(ud, "x264Option", ghb_string_value(sopts));
ghb_x264_parse_options(ud, sopts);
g_free(sopts);
g_free(result);