]> granicus.if.org Git - handbrake/commitdiff
LinGui: nested presets
authorjstebbins <jstebbins.hb@gmail.com>
Wed, 15 Oct 2008 18:39:45 +0000 (18:39 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Wed, 15 Oct 2008 18:39:45 +0000 (18:39 +0000)
new nested builtins.
user can create custom folders and drag n drop custom presets.
updated mac to linux presets plist translation tool to handle new format

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1835 b64f7644-9d1e-0410-96f1-a4d463321fa5

16 files changed:
gtk/src/Makefile.am
gtk/src/audiohandler.c
gtk/src/callbacks.c
gtk/src/hb-backend.c
gtk/src/internal_defaults.xml
gtk/src/main.c
gtk/src/preset_xlat.c
gtk/src/presets.c
gtk/src/presets.h
gtk/src/queuehandler.c
gtk/src/resource_data.h
gtk/src/resources.plist
gtk/src/settings.c
gtk/src/standard_presets.xml
gtk/src/values.c
gtk/src/values.h

index 7d4d1d3ba53ef1654a43720458de080bc33e73d6..41881d090785d5549c63cb1da45267f5e87dd059 100644 (file)
@@ -73,7 +73,7 @@ AM_CFLAGS =\
         -g
 
 bin_PROGRAMS = ghb 
-noinst_PROGRAMS = makewidgetdeps quotestring create_resources
+noinst_PROGRAMS = makewidgetdeps quotestring create_resources preset_xlat
 
 BUILT_SOURCES = HandBrakeCLI
 
@@ -145,8 +145,19 @@ create_resources_SOURCES = \
 
 create_resources_LDADD = $(GHBTOOLS_LIBS)
 
+preset_xlat_SOURCES = \
+       preset_xlat.c \
+       plist.c \
+       plist.h \
+       values.c \
+       values.h
+
+preset_xlat_LDADD = $(GHBTOOLS_LIBS)
+
 quotestring_SOURCES = quotestring.c
 
+dumbell: preset_xlat
+
 resources.c: resource_data.h
 
 resource_data.h: quotestring resources.plist
index 82d0f6000016b23cdee3a51e824ef5695545ed35..6c29a874fb082c5f489550cd1c9f10c5a9feba44 100644 (file)
@@ -25,17 +25,24 @@ ghb_adjust_audio_rate_combos(signal_user_data_t *ud)
        gint titleindex, audioindex, acodec, mix;
        ghb_audio_info_t ainfo;
        GtkWidget *widget;
+       GValue *gval;
        
        g_debug("ghb_adjust_audio_rate_combos ()");
        titleindex = ghb_settings_combo_int(ud->settings, "title");
 
        widget = GHB_WIDGET(ud->builder, "audio_track");
-       audioindex = ghb_lookup_combo_int("audio_track", ghb_widget_value(widget));
+       gval = ghb_widget_value(widget);
+       audioindex = ghb_lookup_combo_int("audio_track", gval);
+       ghb_value_free(gval);
 
        widget = GHB_WIDGET(ud->builder, "audio_codec");
-       acodec = ghb_lookup_combo_int("audio_codec", ghb_widget_value(widget));
+       gval = ghb_widget_value(widget);
+       acodec = ghb_lookup_combo_int("audio_codec", gval);
+       ghb_value_free(gval);
        widget = GHB_WIDGET(ud->builder, "audio_mix");
-       mix = ghb_lookup_combo_int("audio_mix", ghb_widget_value(widget));
+       gval = ghb_widget_value(widget);
+       mix = ghb_lookup_combo_int("audio_mix", gval);
+       ghb_value_free(gval);
 
        if (ghb_audio_is_passthru (acodec))
        {
@@ -61,7 +68,9 @@ ghb_adjust_audio_rate_combos(signal_user_data_t *ud)
                gint br;
 
                widget = GHB_WIDGET(ud->builder, "audio_bitrate");
-               br = ghb_lookup_combo_int("audio_bitrate", ghb_widget_value(widget));
+               gval = ghb_widget_value(widget);
+               br = ghb_lookup_combo_int("audio_bitrate", gval);
+               ghb_value_free(gval);
                if (br > 160)
                        ghb_ui_update(ud, "audio_bitrate", ghb_int64_value(160));
                ghb_set_default_bitrate_opts (ud->builder, 160);
@@ -275,10 +284,12 @@ audio_codec_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
 {
        static gint prev_acodec = 0;
        gint acodec_code, mix_code;
-       GValue *asettings;
+       GValue *asettings, *gval;
        
        g_debug("audio_codec_changed_cb ()");
-       acodec_code = ghb_lookup_combo_int("audio_codec", ghb_widget_value(widget));
+       gval = ghb_widget_value(widget);
+       acodec_code = ghb_lookup_combo_int("audio_codec", gval);
+       ghb_value_free(gval);
        if (ghb_audio_is_passthru (prev_acodec) && 
                !ghb_audio_is_passthru (acodec_code))
        {
index e634e0a28adb4e676e293659f1cafe5ca4c3e7f5..516f33aab4d8a2c60ac85ce1ef9370cf053d14d0 100644 (file)
@@ -976,6 +976,13 @@ show_title_info(signal_user_data_t *ud, ghb_title_info_t *tinfo)
                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));
+       }
        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);
@@ -1038,8 +1045,7 @@ title_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
 {
        ghb_title_info_t tinfo;
        gint titleindex;
-       gchar *preset;
-       gchar *folder;
+       GValue *preset;
        
        g_debug("title_changed_cb ()");
        ghb_widget_to_setting(ud->settings, widget);
@@ -1049,11 +1055,8 @@ title_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
        ghb_update_ui_combo_box (ud->builder, "audio_track", titleindex, FALSE);
        ghb_update_ui_combo_box (ud->builder, "subtitle_lang", titleindex, FALSE);
 
-       preset = ghb_settings_get_string (ud->settings, "preset");
-       folder = ghb_settings_get_string (ud->settings, "folder");
-       ghb_update_from_preset(ud, folder, preset, "subtitle_lang");
-       g_free(preset);
-       g_free(folder);
+       preset = ghb_settings_get_value (ud->settings, "preset");
+       ghb_update_from_preset(ud, preset, "subtitle_lang");
        if (ghb_get_title_info (&tinfo, titleindex))
        {
                show_title_info(ud, &tinfo);
index 9eea5a60bd60f97629531c96d907d08c84fddebf..e82473e90157ca4467278becac4e0e327e9a4c28 100644 (file)
@@ -919,14 +919,21 @@ ghb_grey_combo_options(GtkBuilder *builder)
        gint container, track, titleindex, acodec;
        gboolean httpopt;
     hb_audio_config_t *audio = NULL;
+       GValue *gval;
        
        widget = GHB_WIDGET (builder, "title");
-       titleindex = ghb_lookup_combo_int("title", ghb_widget_value(widget));
+       gval = ghb_widget_value(widget);
+       titleindex = ghb_lookup_combo_int("title", gval);
+       ghb_value_free(gval);
        widget = GHB_WIDGET (builder, "audio_track");
-       track = ghb_lookup_combo_int("audio_track", ghb_widget_value(widget));
+       gval = ghb_widget_value(widget);
+       track = ghb_lookup_combo_int("audio_track", gval);
+       ghb_value_free(gval);
        audio = get_hb_audio(titleindex, track);
        widget = GHB_WIDGET (builder, "container");
-       container = ghb_lookup_combo_int("container", ghb_widget_value(widget));
+       gval = ghb_widget_value(widget);
+       container = ghb_lookup_combo_int("container", gval);
+       ghb_value_free(gval);
        widget = GHB_WIDGET (builder, "http_optimize_mp4");
        httpopt = ghb_widget_boolean(widget);
 
@@ -954,7 +961,9 @@ ghb_grey_combo_options(GtkBuilder *builder)
        grey_combo_box_item(builder, "video_codec", HB_VCODEC_THEORA, FALSE);
 
        widget = GHB_WIDGET (builder, "audio_codec");
-       acodec = ghb_lookup_combo_int("audio_codec", ghb_widget_value(widget));
+       gval = ghb_widget_value(widget);
+       acodec = ghb_lookup_combo_int("audio_codec", gval);
+       ghb_value_free(gval);
        if (acodec != HB_ACODEC_AC3)
        {
                grey_combo_box_item(builder, "audio_mix", 0, TRUE);
index 38593e7f7996173d9abd0ddb62a772f6f748fd04..bd5ea7441fd94a802f8c0333ceb5841ec34594a5 100644 (file)
                <key>folder</key>
                <string></string>
                <key>preset</key>
-               <string>Normal</string>
+               <array>
+                       <string>Normal</string>
+               </array>
+               <key>preset_selection</key>
+               <array>
+                       <string>Normal</string>
+               </array>
                <key>preset_type_folder</key>
                <false />
                <key>preset_type_normal</key>
                <false />
                <key>chapters_in_destination</key>
                <false />
-               <key>default_folder</key>
-               <string></string>
-               <key>default_preset</key>
-               <string>Normal</string>
                <key>default_source</key>
                <string>/dev/dvd</string>
                <key>destination_dir</key>
                <key>autocrop</key>
                <true />
                <key>autoscale</key>
-               <true />
+               <false />
                <key>chapter_markers</key>
                <true />
                <key>constant_rate_factor</key>
                <key>container</key>
                <string>mp4</string>
                <key>deblock</key>
-               <real>0</real>
+               <integer>0</integer>
                <key>decomb</key>
-               <true />
+               <false />
+               <key>Default</key>
+               <false />
                <key>deinterlace</key>
                <string>none</string>
                <key>denoise</key>
                </array>
                <key>preset_description</key>
                <string></string>
+               <key>preset_name</key>
+               <string></string>
                <key>preset_type</key>
                <integer>1</integer>
                <key>round_dimensions</key>
index 705bc228140453918b86e17e3fc5af743ca90bb4..d20de0e52531e61ae4e764f6b31f9cb7d3b14d30 100644 (file)
@@ -486,8 +486,7 @@ main (int argc, char *argv[])
 {
        GtkWidget *window;
        signal_user_data_t *ud;
-       gchar *preset;
-       gchar *folder;
+       GValue *preset;
        GError *error = NULL;
        GOptionContext *context;
 
@@ -589,19 +588,20 @@ main (int argc, char *argv[])
        ghb_x264_parse_options(ud, "");
 
        // Populate the presets tree view
-       ghb_presets_list_init(ud, NULL, NULL, NULL);
+       ghb_presets_list_init(ud, NULL, 0);
        // Get the first preset name
        if (arg_preset != NULL)
        {
-               ghb_select_preset(ud->builder, NULL, arg_preset);
+               preset = ghb_parse_preset_path(arg_preset);
+               if (preset)
+               {
+                       ghb_select_preset(ud->builder, preset);
+                       ghb_value_free(preset);
+               }
        }
        else
        {
-               preset = ghb_settings_get_string (ud->settings, "default_preset");
-               folder = ghb_settings_get_string (ud->settings, "default_folder");
-               ghb_select_preset(ud->builder, folder, preset);
-               g_free(preset);
-               g_free(folder);
+               ghb_select_default_preset(ud->builder);
        }
 
        // Grey out widgets that are dependent on a disabled feature
index c3cd8b993106f8082c9ee1d53a09c95105c3d57a..b19d009bc5a9e2863d600c35d306060a8ad55abe 100644 (file)
 #include <stdio.h>
-#include <stdlib.h>
+#include <string.h>
 #include <glib.h>
-#include <fcntl.h>
+#include <glib/gstdio.h>
+#include "plist.h"
+#include "values.h"
 
-#define BUF_SIZ        (128*1024)
-#define IS_TAG(a,b)    (strcmp((a),(b)) == 0)
-#define IS_KEY(a,b)    (strcmp((a),(b)) == 0)
-#define IS_VAL(a,b)    (strcmp((a),(b)) == 0)
+static GValue *defaults;
 
-enum
+typedef struct
 {
-       NONE,
-       START,
-       ARRAY,
-       DICT,
-       KEY,
-       INT,
-       STR,
-       REAL,
-};
+       gchar *mac_val;
+       gchar *lin_val;
+} value_map_t;
 
-typedef struct
+static value_map_t vcodec_xlat[] =
 {
-       gint state;
-       gchar *preset;
-       gchar *key;
-       gchar *value;
-       GHashTable *settings;
-       GHashTable *xlat_key;
-       GHashTable *xlat_value;
-} parse_data_t;
+       {"MPEG-4 (FFmpeg)", "ffmpeg"},
+       {"MPEG-4 (XviD)", "xvid"},
+       {"H.264 (x264)", "x264"},
+       {"VP3 (Theora)", "theora"},
+       {NULL,NULL}
+};
 
-static void
-start_element(
-       GMarkupParseContext *ctx, 
-       const gchar *name, 
-       const gchar **attr_names,
-       const gchar **attr_values,
-       gpointer ud,
-       GError **error)
+static value_map_t acodec_xlat[] =
 {
-       parse_data_t *pd = (parse_data_t*)ud;
+       {"AAC (faac)", "faac"},
+       {"AC3 Passthru", "ac3"},
+       {"MP3 (lame)", "lame"},
+       {"Vorbis (vorbis)", "vorbis"},
+       {NULL,NULL}
+};
 
-       if (IS_TAG(name, "array"))
-       {
-               pd->state = ARRAY;
-       }
-       else if (IS_TAG(name, "dict"))
-       {
-               g_hash_table_remove_all(pd->settings);
-               pd->state = DICT;
-       }
-       else if (IS_TAG(name, "key"))
-       {
-               pd->state = KEY;
-       }
-       else if (IS_TAG(name, "string"))
-       {
-               pd->state = STR;
-       }
-       else if (IS_TAG(name, "integer"))
-       {
-               pd->state = INT;
-       }
-       else if (IS_TAG(name, "real"))
-       {
-               pd->state = REAL;
-       }
-       else
-       {
-               g_debug("start unrecognized (%s)", name);
-       }
-}
+static value_map_t subtitle_xlat[] =
+{ 
+       { "None", "none" },
+       { "Auto", "auto" },
+       { "Any", "und" },
+       { "Afar", "aar" },
+       { "Abkhazian", "abk" },
+       { "Afrikaans", "afr" },
+       { "Akan", "aka" },
+       { "Albanian", "sqi" },
+       { "Amharic", "amh" },
+       { "Arabic", "ara" },
+       { "Aragonese", "arg" },
+       { "Armenian", "hye" },
+       { "Assamese", "asm" },
+       { "Avaric", "ava" },
+       { "Avestan", "ave" },
+       { "Aymara", "aym" },
+       { "Azerbaijani", "aze" },
+       { "Bashkir", "bak" },
+       { "Bambara", "bam" },
+       { "Basque", "eus" },
+       { "Belarusian", "bel" },
+       { "Bengali", "ben" },
+       { "Bihari", "bih" },
+       { "Bislama", "bis" },
+       { "Bosnian", "bos" },
+       { "Breton", "bre" },
+       { "Bulgarian", "bul" },
+       { "Burmese", "mya" },
+       { "Catalan", "cat" },
+       { "Chamorro", "cha" },
+       { "Chechen", "che" },
+       { "Chinese", "zho" },
+       { "Church Slavic", "chu" },
+       { "Chuvash", "chv" },
+       { "Cornish", "cor" },
+       { "Corsican", "cos" },
+       { "Cree", "cre" },
+       { "Czech", "ces" },
+       { "Danish", "dan" },
+       { "Divehi", "div" },
+       { "Dutch", "nld" },
+       { "Dzongkha", "dzo" },
+       { "English", "eng" },
+       { "Esperanto", "epo" },
+       { "Estonian", "est" },
+       { "Ewe", "ewe" },
+       { "Faroese", "fao" },
+       { "Fijian", "fij" },
+       { "Finnish", "fin" },
+       { "French", "fra" },
+       { "Western Frisian", "fry" },
+       { "Fulah", "ful" },
+       { "Georgian", "kat" },
+       { "German", "deu" },
+       { "Gaelic (Scots)", "gla" },
+       { "Irish", "gle" },
+       { "Galician", "glg" },
+       { "Manx", "glv" },
+       { "Greek, Modern", "ell" },
+       { "Guarani", "grn" },
+       { "Gujarati", "guj" },
+       { "Haitian", "hat" },
+       { "Hausa", "hau" },
+       { "Hebrew", "heb" },
+       { "Herero", "her" },
+       { "Hindi", "hin" },
+       { "Hiri Motu", "hmo" },
+       { "Hungarian", "hun" },
+       { "Igbo", "ibo" },
+       { "Icelandic", "isl" },
+       { "Ido", "ido" },
+       { "Sichuan Yi", "iii" },
+       { "Inuktitut", "iku" },
+       { "Interlingue", "ile" },
+       { "Interlingua", "ina" },
+       { "Indonesian", "ind" },
+       { "Inupiaq", "ipk" },
+       { "Italian", "ita" },
+       { "Javanese", "jav" },
+       { "Japanese", "jpn" },
+       { "Kalaallisut", "kal" },
+       { "Kannada", "kan" },
+       { "Kashmiri", "kas" },
+       { "Kanuri", "kau" },
+       { "Kazakh", "kaz" },
+       { "Central Khmer", "khm" },
+       { "Kikuyu", "kik" },
+       { "Kinyarwanda", "kin" },
+       { "Kirghiz", "kir" },
+       { "Komi", "kom" },
+       { "Kongo", "kon" },
+       { "Korean", "kor" },
+       { "Kuanyama", "kua" },
+       { "Kurdish", "kur" },
+       { "Lao", "lao" },
+       { "Latin", "lat" },
+       { "Latvian", "lav" },
+       { "Limburgan", "lim" },
+       { "Lingala", "lin" },
+       { "Lithuanian", "lit" },
+       { "Luxembourgish", "ltz" },
+       { "Luba-Katanga", "lub" },
+       { "Ganda", "lug" },
+       { "Macedonian", "mkd" },
+       { "Marshallese", "mah" },
+       { "Malayalam", "mal" },
+       { "Maori", "mri" },
+       { "Marathi", "mar" },
+       { "Malay", "msa" },
+       { "Malagasy", "mlg" },
+       { "Maltese", "mlt" },
+       { "Moldavian", "mol" },
+       { "Mongolian", "mon" },
+       { "Nauru", "nau" },
+       { "Navajo", "nav" },
+       { "Ndebele, South", "nbl" },
+       { "Ndebele, North", "nde" },
+       { "Ndonga", "ndo" },
+       { "Nepali", "nep" },
+       { "Norwegian Nynorsk", "nno" },
+       { "Norwegian BokmÃ¥l", "nob" },
+       { "Norwegian", "nor" },
+       { "Chichewa; Nyanja", "nya" },
+       { "Occitan", "oci" },
+       { "Ojibwa", "oji" },
+       { "Oriya", "ori" },
+       { "Oromo", "orm" },
+       { "Ossetian", "oss" },
+       { "Panjabi", "pan" },
+       { "Persian", "fas" },
+       { "Pali", "pli" },
+       { "Polish", "pol" },
+       { "Portuguese", "por" },
+       { "Pushto", "pus" },
+       { "Quechua", "que" },
+       { "Romansh", "roh" },
+       { "Romanian", "ron" },
+       { "Rundi", "run" },
+       { "Russian", "rus" },
+       { "Sango", "sag" },
+       { "Sanskrit", "san" },
+       { "Serbian", "srp" },
+       { "Croatian", "hrv" },
+       { "Sinhala", "sin" },
+       { "Slovak", "slk" },
+       { "Slovenian", "slv" },
+       { "Northern Sami", "sme" },
+       { "Samoan", "smo" },
+       { "Shona", "sna" },
+       { "Sindhi", "snd" },
+       { "Somali", "som" },
+       { "Sotho, Southern", "sot" },
+       { "Spanish", "spa" },
+       { "Sardinian", "srd" },
+       { "Swati", "ssw" },
+       { "Sundanese", "sun" },
+       { "Swahili", "swa" },
+       { "Swedish", "swe" },
+       { "Tahitian", "tah" },
+       { "Tamil", "tam" },
+       { "Tatar", "tat" },
+       { "Telugu", "tel" },
+       { "Tajik", "tgk" },
+       { "Tagalog", "tgl" },
+       { "Thai", "tha" },
+       { "Tibetan", "bod" },
+       { "Tigrinya", "tir" },
+       { "Tonga", "ton" },
+       { "Tswana", "tsn" },
+       { "Tsonga", "tso" },
+       { "Turkmen", "tuk" },
+       { "Turkish", "tur" },
+       { "Twi", "twi" },
+       { "Uighur", "uig" },
+       { "Ukrainian", "ukr" },
+       { "Urdu", "urd" },
+       { "Uzbek", "uzb" },
+       { "Venda", "ven" },
+       { "Vietnamese", "vie" },
+       { "Volapük", "vol" },
+       { "Welsh", "cym" },
+       { "Walloon", "wln" },
+       { "Wolof", "wol" },
+       { "Xhosa", "xho" },
+       { "Yiddish", "yid" },
+       { "Yoruba", "yor" },
+       { "Zhuang", "zha" },
+       { "Zulu", "zul" },
+       {NULL, NULL}
+};
 
-gchar *settings[] = 
+value_map_t container_xlat[] =
 {
-       "preset_description",
-       "preset_type",
-       "subtitle_lang",
-       "forced_subtitles",
-       "source_audio_lang",
-       "pref_audio_codec",
-       "pref_audio_bitrate",
-       "pref_audio_rate",
-       "pref_audio_mix",
-       "pref_audio_drc",
-       "chapter_markers",
-       "container",
-       "ipod_file",
-       "large_mp4",
-       "autocrop",
-       "autoscale",
-       "max_width",
-       "max_height",
-       "anamorphic",
-       "round_dimensions",
-       "keep_aspect",
-       "detelecine",
-       "decomb",
-       "deinterlace",
-       "denoise",
-       "grayscale",
-       "deblock",
-       "video_codec",
-       "two_pass",
-       "turbo",
-       "constant_rate_factor",
-       "variable_frame_rate",
-       "framerate",
-       "vquality_type_constant",
-       "vquality_type_bitrate",
-       "vquality_type_target",
-       "video_bitrate",
-       "video_target_size",
-       "video_quality",
-       "x264_options",
-       "directqp",
-       NULL
+       {"MP4 file", "mp4"},
+       {"M4V file", "m4v"},
+       {"MKV file", "mkv"},
+       {"AVI file", "avi"},
+       {"OGM file", "ogm"},
+       {NULL, NULL}
 };
 
-static void
-verify_keys(parse_data_t *pd)
+value_map_t framerate_xlat[] =
 {
-       GList *keys, *link;
-
-       link = keys = g_hash_table_get_keys(pd->settings);
-       while (link)
-       {
-               gboolean found = FALSE;
-               gchar *key = (gchar*)link->data;
-               gint ii;
-               for (ii = 0; settings[ii] != NULL; ii++)
-               {
-                       if (IS_KEY(settings[ii], key))
-                       {
-                               found = TRUE;
-                       }
-               }
-               if (!found)
-               {
-                       g_message("bad key (%s)", key);
-               }
-               link = link->next;
-       }
-       g_list_free(keys);
-}
-
-GKeyFile *presets;
+       {"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}
+};
 
-static void
-save_preset(parse_data_t *pd)
+value_map_t samplerate_xlat[] =
 {
-       gint ii;
-       if (pd->preset == NULL)
-       {
-               g_message("failed to save preset");
-               return;
-       }
-       for (ii = 0; settings[ii] != NULL; ii++)
-       {
-               const gchar *value;
-               value = (const gchar*)g_hash_table_lookup( pd->settings, settings[ii]);
-               if (value)
-               {
-                       g_key_file_set_value(presets, pd->preset, settings[ii], value);
-               }
-       }
-       verify_keys(pd);
-}
+       {"Auto", "source"},
+       {"22.05", "22.05"},
+       {"24", "24"},
+       {"32", "32"},
+       {"44.1", "44.1"},
+       {"48", "48"},
+       {NULL, NULL}
+};
 
-gchar *audio_track[2];
-gchar *audio_enc[2];
-gchar *audio_bitrate[2];
-gchar *audio_rate[2];
-gchar *audio_mix[2];
-gchar *audio_drc[2];
+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}
+};
 
-static void
-add_keys(parse_data_t *pd)
+value_map_t deint_xlat[] =
 {
-       // These are needed to override default values that
-       // are not set in the xml file (yet)
-       const gchar *val;
-       // Check to see if its really not set. Future xml versions will set it.
-       val = (const gchar*)g_hash_table_lookup(pd->settings, "decomb");
-       if (!val)
-               g_hash_table_insert(pd->settings, g_strdup("decomb"), g_strdup("0"));
-}
+       {"0", "none"},
+       {"1", "fast"},
+       {"2", "slow"},
+       {"3", "slower"},
+       {NULL, NULL}
+};
 
-static void
-do_one(gchar **strs, GString *res)
+value_map_t denoise_xlat[] =
 {
-       gint ii;
-       for (ii = 0; ii < 2 && strs[ii]; ii++)
-       {
-               if (audio_track[ii] == NULL) break;
-               if (ii)
-                       g_string_append_c(res, ',');
-               g_string_append_printf(res, "%s", strs[ii]);
-       }
-}
+       {"0", "none"},
+       {"1", "weak"},
+       {"2", "medium"},
+       {"3", "strong"},
+       {NULL, NULL}
+};
 
-static void
-do_audio(parse_data_t *pd)
+typedef struct
 {
-       gint ii;
-       GString *enc, *br, *rate, *mix, *drc;
-       gchar *res;
-
-       enc = g_string_new("");
-       br = g_string_new("");
-       rate = g_string_new("");
-       mix = g_string_new("");
-       drc = g_string_new("");
-       do_one(audio_enc, enc);
-       do_one(audio_bitrate, br);
-       do_one(audio_rate, rate);
-       do_one(audio_mix, mix);
-       do_one(audio_drc, drc);
-       res = g_string_free(enc, FALSE);
-       g_hash_table_insert(pd->settings, g_strdup("pref_audio_codec"), res);
-       res = g_string_free(br, FALSE);
-       g_hash_table_insert(pd->settings, g_strdup("pref_audio_bitrate"), res);
-       res = g_string_free(rate, FALSE);
-       g_hash_table_insert(pd->settings, g_strdup("pref_audio_rate"), res);
-       res = g_string_free(mix, FALSE);
-       g_hash_table_insert(pd->settings, g_strdup("pref_audio_mix"), res);
-       res = g_string_free(drc, FALSE);
-       g_hash_table_insert(pd->settings, g_strdup("pref_audio_drc"), res);
-}
+       gchar *mac_key;
+       gchar *lin_key;
+       value_map_t *value_map;
+       gboolean ignore;
+} key_map_t;
 
-static void
-null_audio()
+key_map_t key_map[] = 
 {
-       gint ii;
-       for (ii = 0; ii < 2; ii++)
-       {
-               audio_track[ii] = NULL;
-               audio_enc[ii] = NULL;
-               audio_bitrate[ii] = NULL;
-               audio_rate[ii] = NULL;
-               audio_mix[ii] = NULL;
-               audio_drc[ii] = NULL;
-       }
-}
+       {"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},
+       {NULL, NULL}
+};
 
-static void
-clear_audio()
+const gint
+key_xlat(key_map_t *key_map, const gchar *mac_key)
 {
        gint ii;
-       for (ii = 0; ii < 2; ii++)
+
+       for (ii = 0; key_map[ii].mac_key; ii++)
        {
-               if (audio_track[ii]) g_free(audio_track[ii]);
-               if (audio_enc[ii]) g_free(audio_enc[ii]);
-               if (audio_bitrate[ii]) g_free(audio_bitrate[ii]);
-               if (audio_rate[ii]) g_free(audio_rate[ii]);
-               if (audio_mix[ii]) g_free(audio_mix[ii]);
-               if (audio_drc[ii]) g_free(audio_drc[ii]);
-               audio_track[ii] = NULL;
-               audio_enc[ii] = NULL;
-               audio_bitrate[ii] = NULL;
-               audio_rate[ii] = NULL;
-               audio_mix[ii] = NULL;
-               audio_drc[ii] = NULL;
+               if (strcmp(mac_key, key_map[ii].mac_key) == 0)
+               {
+                       if (key_map[ii].ignore)
+                               return -1;
+                       return ii;
+               }
        }
+       g_warning("Unrecognized key: (%s)", mac_key);
+       return -1;
 }
 
-static void
-end_element(
-       GMarkupParseContext *ctx
-       const gchar *name
-       gpointer ud,
-       GError **error)
+static GValue*
+value_xlat(
+       GValue *defaults
+       key_map_t *key_map
+       gint key_index, 
+       GValue *mac_val)
 {
-       parse_data_t *pd = (parse_data_t*)ud;
+       GValue *gval, *def_val;
+       const gchar *lin_key = key_map[key_index].lin_key;
+       value_map_t *value_map = key_map[key_index].value_map;
 
-       if (IS_TAG(name, "string") ||
-               IS_TAG(name, "integer") ||
-               IS_TAG(name, "real"))
+       def_val = ghb_dict_lookup(defaults, lin_key);
+       if (def_val)
        {
-               if (IS_KEY(pd->key, "PresetName"))
+               if (value_map)
                {
-                       if (pd->preset)
-                       {
-                               g_message("Preset named twice");
-                       }
-                       else
-                               pd->preset = g_strdup(pd->value);
-                       pd->state = NONE;
-                       return;
-               }
-               const gchar *my_key;
-               my_key = (const gchar*)g_hash_table_lookup(pd->xlat_key, pd->key);
-               if (my_key != NULL)
-               { // Do something with it
-                       if (my_key[0] != 0) // intentionally ignored keys
+                       gint ii;
+                       gchar *str;
+                       GValue *sval;
+
+                       str = ghb_value_string(mac_val);
+                       for (ii = 0; value_map[ii].mac_val; ii++)
                        {
-                               if (pd->value != NULL)
-                               {
-                                       g_hash_table_insert(pd->settings, 
-                                               g_strdup(my_key), g_strdup(pd->value));
-                               }
-                               else
+                               if (strcmp(str, value_map[ii].mac_val) == 0)
                                {
-                                       g_message("NULL value");
+                                       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("1 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 if (IS_KEY(pd->key, "Audio1Encoder"))
-               {
-                       if (audio_enc[0]) g_free(audio_enc[0]);
-                       audio_enc[0] = g_strdup(pd->value);
-               }
-               else if (IS_KEY(pd->key, "Audio1Bitrate"))
-               {
-                       if (audio_bitrate[0]) g_free(audio_bitrate[0]);
-                       audio_bitrate[0] = g_strdup(pd->value);
-               }
-               else if (IS_KEY(pd->key, "Audio1Samplerate"))
-               {
-                       if (audio_rate[0]) g_free(audio_rate[0]);
-                       audio_rate[0] = g_strdup(pd->value);
-               }
-               else if (IS_KEY(pd->key, "Audio1Mixdown"))
-               {
-                       if (audio_mix[0]) g_free(audio_mix[0]);
-                       audio_mix[0] = g_strdup(pd->value);
-               }
-               else if (IS_KEY(pd->key, "Audio1TrackDRCSlider"))
-               {
-                       if (audio_drc[0]) g_free(audio_drc[0]);
-                       audio_drc[0] = g_strdup(pd->value);
-               }
-               else if (IS_KEY(pd->key, "Audio1Track"))
-               {
-                       if (audio_track[0]) g_free(audio_track[0]);
-                       audio_track[0] = g_strdup(pd->value);
-               }
-               else if (IS_KEY(pd->key, "Audio2Encoder"))
-               {
-                       if (audio_enc[1]) g_free(audio_enc[1]);
-                       audio_enc[1] = g_strdup(pd->value);
-               }
-               else if (IS_KEY(pd->key, "Audio2Bitrate"))
-               {
-                       if (audio_bitrate[1]) g_free(audio_bitrate[1]);
-                       audio_bitrate[1] = g_strdup(pd->value);
-               }
-               else if (IS_KEY(pd->key, "Audio2Samplerate"))
-               {
-                       if (audio_rate[1]) g_free(audio_rate[1]);
-                       audio_rate[1] = g_strdup(pd->value);
-               }
-               else if (IS_KEY(pd->key, "Audio2Mixdown"))
-               {
-                       if (audio_mix[1]) g_free(audio_mix[1]);
-                       audio_mix[1] = g_strdup(pd->value);
-               }
-               else if (IS_KEY(pd->key, "Audio2TrackDRCSlider"))
-               {
-                       if (audio_drc[1]) g_free(audio_drc[1]);
-                       audio_drc[1] = g_strdup(pd->value);
-               }
-               else if (IS_KEY(pd->key, "Audio2Track"))
-               {
-                       if (audio_track[1]) g_free(audio_track[1]);
-                       audio_track[1] = g_strdup(pd->value);
-               }
-               else if (IS_KEY(pd->key, "VideoQualityType"))
+               else
                {
-                       // VideoQualityType/0/1/2 - vquality_type_/target/bitrate/constant
-                       if (IS_VAL(pd->value, "0"))
-                       {
-                               g_hash_table_insert(pd->settings, 
-                                               g_strdup("vquality_type_target"), 
-                                               g_strdup("1"));
-                               g_hash_table_remove(pd->settings, "vquality_type_bitrate");
-                               g_hash_table_remove(pd->settings, "vquality_type_constant");
-                       }
-                       else if (IS_VAL(pd->value, "1"))
+                       gval = ghb_value_new(G_VALUE_TYPE(def_val));
+                       if (!g_value_transform(mac_val, gval))
                        {
-                               g_hash_table_remove(pd->settings, "vquality_type_target");
-                               g_hash_table_insert(pd->settings, 
-                                               g_strdup("vquality_type_bitrate"), 
-                                               g_strdup("1"));
-                               g_hash_table_remove(pd->settings, "vquality_type_constant");
+                               g_warning("2 can't transform");
+                               ghb_value_free(gval);
+                               return NULL;
                        }
-                       else if (IS_VAL(pd->value, "2"))
-                       {
-                               g_hash_table_remove(pd->settings, "vquality_type_target");
-                               g_hash_table_remove(pd->settings, "vquality_type_bitrate");
-                               g_hash_table_insert(pd->settings, 
-                                               g_strdup("vquality_type_constant"), 
-                                               g_strdup("1"));
-                       }
-               }
-               else
-               {
-                       g_message("Key not found (%s)", pd->key);
+                       return gval;
                }
        }
-       else if (IS_TAG(name, "dict"))
+       else
        {
-               gint ii;
-               add_keys(pd);
-               do_audio(pd);
-               clear_audio();
-               save_preset(pd);
-
-               if (pd->preset) 
-               {
-                       g_free(pd->preset);
-                       pd->preset = NULL;
-               }
-               else
-                       g_message("Preset has no name");
-               g_hash_table_remove_all(pd->settings);
+               g_warning("Bad key: (%s)", lin_key);
+               return NULL;
        }
-       pd->state = NONE;
+       return NULL;
 }
 
-static gboolean
-is_number(const gchar *str)
+key_map_t audio_key_map[] =
 {
-       gboolean result = TRUE;
-       gint ii;
-       for (ii = 0; str[ii] != 0; ii++)
-       {
-               if (!g_ascii_isdigit(str[ii]) && str[ii] != '.')
-                       result = FALSE;
-       }
-       return result;
-}
+       {"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},
+       {NULL, NULL}
+};
 
 static void
-text_data(
-       GMarkupParseContext *ctx, 
-       const gchar *text, 
-       gsize len,
-       gpointer ud,
-       GError **error)
+hard_value_xlat(GValue *lin_dict, const gchar *mac_key, GValue *mac_val)
 {
-       gboolean is_value = FALSE;
-       parse_data_t *pd = (parse_data_t*)ud;
-       const gchar *val = NULL;
-
-       if (pd->state == KEY)
+       if (strcmp(mac_key, "VideoQualitySlider") == 0)
        {
-               if (pd->key) g_free(pd->key);
-               pd->key = g_strdup(text);
-               return;
+               gint vquality;
+
+               vquality = (ghb_value_double(mac_val) + 0.005) * 100.0;
+               ghb_dict_insert(lin_dict, "video_quality", 
+                                                       ghb_int_value_new(vquality));
        }
-       if (pd->state == STR)
+       else if (strcmp(mac_key, "UsesMaxPictureSettings") == 0)
        {
-               val = (gchar*)g_hash_table_lookup(pd->xlat_value, text);
-               if (val != NULL)
-               { // Do something with it
-               }
-               else if (IS_KEY(pd->key, "PresetName") ||
-                               IS_KEY(pd->key, "PresetDescription") ||
-                               IS_KEY(pd->key, "x264Option") ||
-                               is_number(text))
+               GValue *gval;
+
+               gval = ghb_dict_lookup(lin_dict, "autoscale");
+               if (gval == NULL && ghb_value_boolean(mac_val))
                {
-                       val = text;
+                       ghb_dict_insert(lin_dict, "autoscale", ghb_boolean_value_new(TRUE));
                }
-               else
+       }
+       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)
                {
-                       g_message("Unrecognized val (%s)", text);
+                       ghb_dict_insert(lin_dict, "autoscale", ghb_boolean_value_new(TRUE));
                }
        }
-       if (pd->state == INT || pd->state == REAL)
+       else if (strcmp(mac_key, "PicturePAR") == 0)
        {
-               val = text;
-       }
+               gint ana;
 
-       // Some keys need further translation of their values
-       if (val)
-       {
-               if (IS_KEY(pd->key, "PictureDeinterlace"))
+               ana = ghb_value_int(mac_val);
+               switch (ana)
                {
-                       if (IS_VAL(val, "0"))
-                       {
-                               val = "none";
-                       }
-                       else if (IS_VAL(val, "1"))
-                       {
-                               val = "fast";
-                       }
-                       else if (IS_VAL(val, "2"))
-                       {
-                               val = "slow";
-                       }
-                       else if (IS_VAL(val, "3"))
-                       {
-                               val = "slower";
-                       }
+               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 (IS_KEY(pd->key, "VideoQualitySlider"))
+       }
+       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:
                {
-                       gdouble dval;
-                       dval = g_strtod(val, NULL);
-                       dval *= 100;
-                       if (pd->value) g_free(pd->value);
-                       pd->value = g_strdup_printf("%d", (gint)dval);
-                       return;
+                       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 if (IS_KEY(pd->key, "Audio1Samplerate") ||
-                               IS_KEY(pd->key, "Audio2Samplerate"))
+       }
+       else
+       {
+               gint key_index;
+               GValue *audio_defaults;
+
+               audio_defaults = ghb_array_get_nth(
+                       ghb_dict_lookup(defaults, "pref_audio_list"), 0);
+               key_index = key_xlat(audio_key_map, mac_key);
+               if (key_index >= 0)
                {
-                       if (IS_VAL(val, "auto"))
+                       gint audio_index, count, ii;
+                       GValue *alist, *adict, *val;
+
+                       audio_index = mac_key[5] - '1';
+                       alist = ghb_dict_lookup(lin_dict, "pref_audio_list");
+                       if (alist == NULL)
                        {
-                               val = "source";
+                               alist = ghb_array_value_new(8);
+                               ghb_dict_insert(lin_dict, "pref_audio_list", alist);
                        }
-               }
-               else if (IS_KEY(pd->key, "Audio1Mixdown") ||
-                               IS_KEY(pd->key, "Audio2Mixdown"))
-               {
-                       if (IS_VAL(val, "ac3"))
+                       count = ghb_array_len(alist);
+                       for (ii = count; ii <= audio_index; ii++)
+                       {
+                               adict = ghb_value_dup(audio_defaults);
+                               ghb_array_append(alist, adict);
+                       }
+                       adict = ghb_array_get_nth(alist, audio_index);
+                       val = value_xlat(audio_defaults, audio_key_map, key_index, mac_val);
+                       if (val)
                        {
-                               val = "none";
+                               ghb_dict_insert(adict, 
+                                                       g_strdup(audio_key_map[key_index].lin_key), val);
                        }
                }
-               if (pd->value) g_free(pd->value);
-               pd->value = g_strdup(val);
        }
 }
 
 static void
-passthrough(
-       GMarkupParseContext *ctx, 
-       const gchar *text, 
-       gsize len,
-       gpointer ud,
-       GError **error)
+parse_preset_dict(GValue *mac_dict, GValue *lin_dict)
 {
-       parse_data_t *pd = (parse_data_t*)ud;
-
-       g_debug("passthrough %s", text);
-}
+    GHashTableIter iter;
+    gchar *key;
+    GValue *mac_val, *val;
+
+    ghb_dict_iter_init(&iter, mac_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*)&mac_val))
+       {
+               gint key_index;
 
-static void
-delete_key(gpointer str)
-{
-       g_free(str);
+               key_index = key_xlat(key_map, key);
+               if (key_index >= 0)
+               { // The simple translations
+                       if (key_map[key_index].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);
+                               }
+                       }
+                       else
+                       {
+                               hard_value_xlat(lin_dict, key, mac_val);
+                       }
+               }
+       }
 }
 
 static void
-delete_value(gpointer str)
-{
-       g_free(str);
-}
-
-typedef struct
+parse_preset_array(GValue *mac_array, GValue *lin_array)
 {
-       gchar *from;
-       gchar *to;
-} xlat_t;
+       gint count, ii;
+       GValue *mac_dict, *lin_dict, *gval;
 
-static xlat_t keys[] =
-{
-       {"VFR", "variable_frame_rate"},
-       {"ChapterMarkers", "chapter_markers"},
-       {"Default", ""},
-       {"FileFormat", "container"},
-       {"PictureAutoCrop", "autocrop"},
-       {"PictureBottomCrop", ""},
-       {"PictureTopCrop", ""},
-       {"PictureLeftCrop", ""},
-       {"PictureRightCrop", ""},
-       {"PictureDeblock", "deblock"},
-       {"PictureDeinterlace", "deinterlace"}, // v
-       {"PictureDenoise", "denoise"}, // v
-       {"PictureDetelecine", "detelecine"},
-       {"PictureHeight", "max_height"},
-       {"PictureWidth", "max_width"},
-       {"PictureKeepRatio", "keep_aspect"},
-       {"PicturePAR", "anamorphic"}, // v
-       {"PresetDescription", "preset_description"},
-       {"Subtitles", "subtitle_lang"},
-       {"Subtitles", "subtitle_lang"},
-       {"Type", "preset_type"}, // preset type builtin/custom
-       {"UsesMaxPictureSettings", "autoscale"},
-       {"UsesPictureFilters", ""},
-       {"UsesPictureSettings", ""},
-       {"VideoAvgBitrate", "video_bitrate"},
-       {"VideoEncoder", "video_codec"},
-       {"VideoFramerate", "framerate"},
-       {"VideoGrayScale", "grayscale"},
-       {"VideoQualitySlider", "video_quality"},
-       {"VideoTargetSize", "video_target_size"},
-       {"VideoTurboTwoPass", "turbo"},
-       {"VideoTwoPass", "two_pass"},
-       {"x264Option", "x264_options"},
-       {"Mp4LargeFile", "large_mp4"},
-       {"Mp4iPodCompatible", "ipod_file"},
-       {NULL, NULL}
-};
-
-// VideoQualityType/0/1/2 - vquality_type_/target/bitrate/constant
-// Audio1Bitrate - pref_audio_bitrate
-// Audio1Encoder - pref_audio_codec
-// Audio1Mixdown - pref_audio_mix
-// Audio1Samplerate - pref_audio_rate
-// Audio1Track - na
-// Audio1DRCSlider - pref_audio_drc
-
-static xlat_t values[] =
-{
-       {"AAC (faac)", "faac"},
-       {"AC3 Passthru", "ac3"},
-       {"H.264 (x264)", "x264"},
-       {"MPEG-4 (FFmpeg)", "ffmpeg"},
-       {"Dolby Pro Logic II", "dpl2"},
-       {"Auto", "auto"},
-       {"MKV file", "mkv"},
-       {"MP4 file", "mp4"},
-       {"None", "none"},
-       {"Same as source", "source"},
-       {"160", "160"},
-       {NULL, NULL}
-};
-
-static void
-store_key_file(GKeyFile *key_file, const gchar *name)
-{
-    gchar *settingsString;
-    gsize length;
-    gint fd;
-
-    settingsString = g_key_file_to_data(key_file, &length, NULL);
-
-    fd = g_open(name, O_RDWR|O_CREAT|O_TRUNC, 0777);
-    write(fd, settingsString, length);
-    close(fd);
-    g_free(settingsString);
+       count = ghb_array_len(mac_array);
+       for (ii = 0; ii < count; ii++)
+       {
+               mac_dict = ghb_array_get_nth(mac_array, ii);
+               
+               // Only process builtin types
+               if (ghb_value_int(ghb_dict_lookup(mac_dict, "Type")) != 0)
+                       continue;
+
+               lin_dict = ghb_dict_value_new();
+               ghb_array_append(lin_array, lin_dict);
+               gval = ghb_dict_lookup(mac_dict, "PresetName");
+               if (gval)
+               {
+                       ghb_dict_insert(lin_dict, g_strdup("preset_name"), 
+                                                       ghb_value_dup(gval));
+               }
+               gval = ghb_dict_lookup(mac_dict, "PresetDescription");
+               if (gval)
+               {
+                       ghb_dict_insert(lin_dict, g_strdup("preset_description"), 
+                                                       ghb_value_dup(gval));
+               }
+               gval = ghb_dict_lookup(mac_dict, "Folder");
+               if (gval && ghb_value_boolean(gval))
+               { // Folder
+                       GValue *mval, *lval;
+
+                       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));
+                       parse_preset_array(mval, lval);
+               }
+               else
+               { // Normal preset
+                       ghb_dict_insert(lin_dict, g_strdup("preset_type"), 
+                                                       ghb_int_value_new(0));
+                       parse_preset_dict(mac_dict, lin_dict);
+               }
+       }
 }
 
 static void
-parse_it(gchar *buf, gssize len)
+xlat(GValue *mac, GValue *lin)
 {
-       GMarkupParseContext *ctx;
-       GMarkupParser parser;
-       parse_data_t pd;
-
-       null_audio();
-       presets = g_key_file_new();
-       pd.state = START;
-       pd.key = NULL;
-       pd.value = NULL;
-       pd.preset = NULL;
-       pd.settings = g_hash_table_new_full(g_str_hash, g_str_equal, 
-                                                                         delete_key, delete_value);
-       pd.xlat_key = g_hash_table_new(g_str_hash, g_str_equal);
-       gint ii;
-       for (ii = 0; keys[ii].from != NULL; ii++)
-       {
-               g_hash_table_insert(pd.xlat_key, keys[ii].from, keys[ii].to);
-       }
-       pd.xlat_value = g_hash_table_new(g_str_hash, g_str_equal);
-       for (ii = 0; values[ii].from != NULL; ii++)
-       {
-               g_hash_table_insert(pd.xlat_value, values[ii].from, values[ii].to);
-       }
-       parser.start_element = start_element;
-       parser.end_element = end_element;
-       parser.text = text_data;
-       parser.passthrough = passthrough;
-       ctx = g_markup_parse_context_new(&parser, 0, &pd, NULL);
-       g_markup_parse_context_parse(ctx, buf, len, NULL);
-       store_key_file(presets, "xlat_presets");
+       return parse_preset_array(mac, lin);
 }
 
 gint
 main(gint argc, gchar *argv[])
 {
-       FILE *fd;
-       gchar buffer[BUF_SIZ];
-       size_t size;
+       GValue *mac_plist, *lin_plist;
+       GValue *internal;
 
-       fd = fopen(argv[1], "r");
-       size = fread(buffer, 1, BUF_SIZ, fd);
-       if (size >= BUF_SIZ)
+       if (argc < 3)
        {
-               g_error("buffer too small");
-               exit(1);
+               fprintf(stderr, "Usage: <mac plist> <lin plist>\n");
+               return 1;
        }
-       buffer[size] = 0;
-       parse_it(buffer, (gssize)size);
+       g_type_init();
+
+       ghb_register_transforms();
+       internal = ghb_plist_parse_file("internal_defaults.xml");
+       defaults = ghb_dict_lookup(internal, "Presets");
+       mac_plist = ghb_plist_parse_file(argv[1]);
+       lin_plist = ghb_array_value_new(32);
+       xlat(mac_plist, lin_plist);
+       ghb_plist_write_file(argv[2], lin_plist);
+       return 0;
 }
 
index 08ac7b3a2664f795af2c66b358be4cd0738f70f8..5f120e5b7e3a72edebfd12d30a7888012c26feb6 100644 (file)
@@ -25,6 +25,8 @@
 #include "presets.h"
 #include "values.h"
 
+#define MAX_NESTED_PRESET 3
+
 // These are flags.  One bit for each feature
 enum
 {
@@ -37,6 +39,235 @@ static GValue *internalPlist = NULL;
 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);
+
+// This only handle limited depth
+GtkTreePath*
+ghb_tree_path_new_from_indices(gint *indices, gint len)
+{
+       switch (len)
+       {
+               case 1:
+                       return gtk_tree_path_new_from_indices(
+                               indices[0], -1);
+               case 2:
+                       return gtk_tree_path_new_from_indices(
+                               indices[0], indices[1], -1);
+               case 3:
+                       return gtk_tree_path_new_from_indices(
+                               indices[0], indices[1], indices[2], -1);
+               case 4:
+                       return gtk_tree_path_new_from_indices(
+                               indices[0], indices[1], indices[2], indices[3], -1);
+               case 5:
+                       return gtk_tree_path_new_from_indices(
+                               indices[0], indices[1], indices[2], indices[3], indices[4], -1);
+               default:
+                       return NULL;
+       }
+}
+
+GValue*
+ghb_parse_preset_path(const gchar *path)
+{
+       gchar **split;
+       GValue *preset;
+       gint ii;
+
+       preset = ghb_array_value_new(MAX_NESTED_PRESET);
+       split = g_strsplit(path, "#", MAX_NESTED_PRESET);
+       for (ii = 0; split[ii] != NULL; ii++)
+       {
+               ghb_array_append(preset, ghb_string_value_new(split[ii]));
+       }
+       g_strfreev(split);
+       return preset;
+}
+
+static GValue*
+preset_path_from_indices(GValue *presets, gint *indices, gint len)
+{
+       gint ii;
+       GValue *path;
+
+       g_debug("preset_path_from_indices");
+       path = ghb_array_value_new(MAX_NESTED_PRESET);
+       for (ii = 0; ii < len; ii++)
+       {
+               GValue *dict;
+               gint count, ptype;
+               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))
+                       break;
+               presets = ghb_dict_lookup(dict, "preset_folder");
+       }
+       return path;
+}
+
+gchar*
+ghb_preset_path_string(const GValue *path)
+{
+       gint count, ii;
+       GString *gstr;
+       GValue *val;
+       gchar *str;
+
+       gstr = g_string_new("");
+       if (path != NULL)
+       {
+               count = ghb_array_len(path);
+               for (ii = 0; ii < count; ii++)
+               {
+                       val = ghb_array_get_nth(path, ii);
+                       str = ghb_value_string(val);
+                       g_string_append(gstr, str);
+                       if (ii < count-1)
+                               g_string_append(gstr, "->");
+                       g_free(str);
+               }
+       }
+       str = g_string_free(gstr, FALSE);
+       return str;
+}
+
+static void
+debug_show_type(GType tp)
+{
+       const gchar *str = "unknown";
+       if (tp == G_TYPE_STRING)
+       {
+               str ="string";
+       }
+       else if (tp == G_TYPE_INT)
+       {
+               str ="int";
+       }
+       else if (tp == G_TYPE_INT64)
+       {
+               str ="int64";
+       }
+       else if (tp == G_TYPE_BOOLEAN)
+       {
+               str ="bool";
+       }
+       else if (tp == ghb_array_get_type())
+       {
+               str ="array";
+       }
+       else if (tp == ghb_dict_get_type())
+       {
+               str ="dict";
+       }
+       g_message("Type: %s", str);
+}
+
+void
+dump_preset_path(const gchar *msg, const GValue *path)
+{
+       gchar *str;
+
+       if (path)
+               debug_show_type (G_VALUE_TYPE(path));
+       str = ghb_preset_path_string(path);
+       g_message("%s path: (%s)", msg, str);
+       g_free(str);
+}
+
+void
+dump_preset_indices(const gchar *msg, gint *indices, gint len)
+{
+       gint ii;
+
+       g_message("%s indices: len %d", msg, len);
+       for (ii = 0; ii < len; ii++)
+       {
+               printf("%d ", indices[ii]);
+       }
+       printf("\n");
+}
+
+#if 0
+static gint
+preset_path_cmp(const GValue *path1, const GValue *path2)
+{
+       gint count, ii;
+       GValue *val;
+       gchar *str1, *str2;
+       gint result;
+
+       count = ghb_array_len(path1);
+       ii = ghb_array_len(path2);
+       if (ii != count)
+               return ii - count;
+       for (ii = 0; ii < count; ii++)
+       {
+               val = ghb_array_get_nth(path1, ii);
+               str1 = ghb_value_string(val);
+               val = ghb_array_get_nth(path2, ii);
+               str2 = ghb_value_string(val);
+               result = strcmp(str1, str2);
+               if (result != 0)
+                       return result;
+               g_free(str1);
+               g_free(str2);
+       }
+       return 0;
+}
+#endif
+
+static GValue*
+presets_get_dict(GValue *presets, gint *indices, gint len)
+{
+       gint ii, count, ptype;
+       GValue *dict = NULL;
+
+       g_debug("presets_get_dict ()");
+       for (ii = 0; ii < len; ii++)
+       {
+               count = ghb_array_len(presets);
+               if (indices[ii] >= count) return NULL;
+               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))
+                               return NULL;
+                       presets = ghb_dict_lookup(dict, "preset_folder");
+               }
+       }
+       if (ii < len)
+               return NULL;
+       return dict;
+}
+
+static GValue*
+presets_get_folder(GValue *presets, gint *indices, gint len)
+{
+       gint ii, count, ptype;
+       GValue *dict;
+
+       g_debug("presets_get_folder ()");
+       for (ii = 0; ii < len; ii++)
+       {
+               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))
+                       break;
+               presets = ghb_dict_lookup(dict, "preset_folder");
+       }
+       if (ii < len)
+               return NULL;
+       return presets;
+}
 
 static GValue*
 plist_get_dict(GValue *presets, const gchar *name)
@@ -65,18 +296,6 @@ ghb_preset_flags(GValue *dict)
        return ptype;
 }
 
-static GValue*
-presets_get_first_dict(GValue *presets)
-{
-       gint count;
-       
-       g_debug("presets_get_first_dict ()");
-       if (presets == NULL) return NULL;
-       count = ghb_array_len(presets);
-       if (count <= 0) return NULL;
-       return ghb_array_get_nth(presets, 0);
-}
-
 static void
 presets_remove_nth(GValue *presets, gint pos)
 {
@@ -94,36 +313,18 @@ presets_remove_nth(GValue *presets, gint pos)
 gboolean
 ghb_presets_remove(
        GValue *presets, 
-       gint folder_pos,
-       gint pos)
+       gint *indices,
+       gint len)
 {
-       GValue *nested;
-       gint ii;
+       GValue *folder = NULL;
 
-       if (folder_pos >= 0)
-       {
-               if (pos >= 0)
-               {
-                       ii = pos;
-                       nested = ghb_array_get_nth(presets, folder_pos);
-                       nested = ghb_dict_lookup(nested, "preset_folder");
-               }
-               else
-               {
-                       ii = folder_pos;
-                       nested = presets;
-               }
-       }
-       else
-       {
-               ii = pos;
-               nested = presets;
-       }
-       if (ii >= 0)
-               presets_remove_nth(nested, ii);
+       folder = presets_get_folder(presets, indices, len-1);
+       if (folder)
+               presets_remove_nth(folder, indices[len-1]);
        else
        {
-               g_warning("internal preset lookup error (%d/%d)", folder_pos, pos);
+               g_warning("ghb_presets_remove ()");
+               g_warning("internal preset lookup error");
                return FALSE;
        }
        return TRUE;
@@ -133,248 +334,305 @@ static void
 ghb_presets_replace(
        GValue *presets, 
        GValue *dict,
-       gint folder_pos,
-       gint pos)
+       gint *indices,
+       gint len)
 {
-       GValue *nested;
-       gint ii;
+       GValue *folder = NULL;
 
-       if (folder_pos >= 0)
-       {
-               if (pos >= 0)
-               {
-                       ii = pos;
-                       nested = ghb_array_get_nth(presets, folder_pos);
-                       nested = ghb_dict_lookup(nested, "preset_folder");
-               }
-               else
-               {
-                       ii = folder_pos;
-                       nested = presets;
-               }
-       }
+       folder = presets_get_folder(presets, indices, len-1);
+       if (folder)
+               ghb_array_replace(folder, indices[len-1], dict);
        else
        {
-               ii = pos;
-               nested = presets;
+               g_warning("ghb_presets_replace ()");
+               g_warning("internal preset lookup error");
        }
-       if (ii >= 0)
-               ghb_array_replace(nested, ii, dict);
+}
+
+static void
+ghb_presets_insert(
+       GValue *presets, 
+       GValue *dict,
+       gint *indices,
+       gint len)
+{
+       GValue *folder = NULL;
+
+       folder = presets_get_folder(presets, indices, len-1);
+       if (folder)
+               ghb_array_insert(folder, indices[len-1], dict);
        else
        {
-               g_warning("internal preset lookup error (%d/%d)", folder_pos, pos);
+               g_warning("ghb_presets_insert ()");
+               g_warning("internal preset lookup error");
        }
 }
 
 static gint
-presets_find_pos(GValue *presets, const gchar *name, gint type)
+presets_find_element(GValue *presets, const gchar *name)
 {
        GValue *dict;
-       gint count, ii, ptype, last;
+       gint count, ii;
        
+       g_debug("presets_find_element () (%s)", name);
        if (presets == NULL || name == NULL) return -1;
-       last = count = ghb_array_len(presets);
+       count = ghb_array_len(presets);
        for (ii = 0; ii < count; ii++)
        {
                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"));
-               if (strcasecmp(name, str) <= 0 && ptype == type)
+               if (strcmp(name, str) == 0)
                {
                        return ii;
                }
-               if (ptype == type)
-                       last = ii+1;
        }
-       return last;
+       return -1;
 }
 
 static gint
-presets_find_folder(GValue *presets, const gchar *name)
+single_find_pos(GValue *presets, const gchar *name, gint type)
 {
        GValue *dict;
-       gint count, ii, ptype;
+       gint count, ii, ptype, last;
        
        if (presets == NULL || name == NULL) return -1;
-       count = ghb_array_len(presets);
+       last = count = ghb_array_len(presets);
        for (ii = 0; ii < count; ii++)
        {
                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"));
-               if ((ptype & PRESETS_FOLDER) && strcasecmp(name, str) == 0)
+               if (strcasecmp(name, str) <= 0 && ptype == type)
                {
                        return ii;
                }
+               if (ptype == type)
+                       last = ii+1;
        }
-       return -1;
+       return last;
 }
 
-static gint
-presets_find_preset(GValue *presets, const gchar *name)
+static gint*
+presets_find_pos(const GValue *path, gint type, gint *len)
 {
-       GValue *dict;
+       GValue *nested;
+       GValue *val;
        gint count, ii, ptype;
-       
-       g_debug("presets_find_preset () (%s)", name);
-       if (presets == NULL || name == NULL) return -1;
-       count = ghb_array_len(presets);
-       for (ii = 0; ii < count; ii++)
-       {
-               const gchar *str;
-               dict = ghb_array_get_nth(presets, ii);
-               str = preset_get_name(dict);
+       gint *indices = NULL;
+       const gchar *name;
+       GValue *dict;
+
+       g_debug("presets_find_pos () ");
+       nested = presetsPlist;
+       count = ghb_array_len(path);
+       indices = g_malloc(MAX_NESTED_PRESET * sizeof(gint));
+       for (ii = 0; ii < count-1; ii++)
+       {
+               val = ghb_array_get_nth(path, ii);
+               name = g_value_get_string(val);
+               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"));
-               if (!(ptype & PRESETS_FOLDER) && strcasecmp(name, str) == 0)
-               {
-                       return ii;
-               }
+               nested = NULL;
+               if (!(ptype & PRESETS_FOLDER))
+                       break;
+               nested = ghb_dict_lookup(dict, "preset_folder");
        }
-       return -1;
+       if (nested)
+       {
+               const gchar *name;
+
+               name = g_value_get_string(ghb_array_get_nth(path, count-1));
+               indices[ii] = single_find_pos(nested, name, type);
+               ii++;
+       }
+       *len = ii;
+       return indices;
 }
 
-gboolean
-ghb_presets_find(
-       GValue *presets, 
-       const gchar *folder, 
-       const gchar *name, 
-       gint *folder_pos,
-       gint *pos)
+static gint
+preset_tree_depth(GValue *dict)
 {
-       GValue *nested;
+       gint ptype;
 
-       *pos = -1;
-       *folder_pos = -1;
-       g_debug("ghb_presets_find () (%s) (%s)", folder, name);
-       if (folder == NULL || folder[0] == 0)
+       ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
+       if (ptype & PRESETS_FOLDER)
        {
-               // name could be a folder or a regular preset
-               *folder_pos = presets_find_folder(presets, name);
-               if (*folder_pos < 0)
+               gint depth = 0;
+               gint count, ii;
+               GValue *presets;
+
+               presets = ghb_dict_lookup(dict, "preset_folder");
+               count = ghb_array_len(presets);
+               for (ii = 0; ii < count; ii++)
                {
-                       *pos = presets_find_preset(presets, name);
-                       if (*pos < 0)
-                       {
-                               g_debug("No presets/folder (%s)", name);
-                               return FALSE;
-                       }
+                       gint tmp;
+
+                       dict = ghb_array_get_nth(presets, ii);
+                       tmp = preset_tree_depth(dict);
+                       depth = MAX(depth, tmp);
                }
+               return depth + 1;
        }
        else
        {
-               *folder_pos = presets_find_folder(presets, folder);
-               if (*folder_pos < 0)
+               return 1;
+       }
+}
+
+static gboolean
+preset_is_default(GValue *dict)
+{
+       const GValue *val;
+
+       val = preset_dict_get_value(dict, "Default");
+       return g_value_get_boolean(val);
+}
+
+static gint*
+presets_find_default2(GValue *presets, gint *len)
+{
+       gint count, ii;
+       gint *indices;
+
+       count = ghb_array_len(presets);
+       for (ii = 0; ii < count; ii++)
+       {
+               GValue *dict;
+               gint ptype;
+
+               dict = ghb_array_get_nth(presets, ii);
+               ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
+               if (ptype & PRESETS_FOLDER)
                {
-                       g_debug("No presets folder (%s)", folder);
-                       return FALSE;
+                       GValue *nested;
+                       gint pos = *len;
+
+                       nested = ghb_dict_lookup(dict, "preset_folder");
+                       (*len)++;
+                       indices = presets_find_default2(nested, len);
+                       if (indices)
+                       {
+                               indices[pos] = ii;
+                               return indices;
+                       }
+                       else
+                               *len = pos;
                }
-               nested = ghb_array_get_nth(presets, *folder_pos);
-               nested = ghb_dict_lookup(nested, "preset_folder");
-               if (name != NULL)
+               else
                {
-                       *pos = presets_find_preset(nested, name);
-                       if (*pos < 0)
+                       if (preset_is_default(dict))
                        {
-                               g_debug("No preset (%s/%s)", folder, name);
-                               return FALSE;
+                               indices = malloc(MAX_NESTED_PRESET * sizeof(gint));
+                               indices[*len] = ii;
+                               (*len)++;
+                               return indices;
                        }
                }
        }
-       return TRUE;
+       return NULL;
 }
 
-static GValue*
-presets_get_dict(GValue *presets, gint folder_pos, gint pos)
+static gint*
+presets_find_default(gint *len)
+{
+       *len = 0;
+       return presets_find_default2(presetsPlist, len);
+}
+
+gint*
+ghb_preset_indices_from_path(
+       GValue *presets, 
+       const GValue *path,
+       gint *len)
 {
-       g_debug("presets_get_dict () (%d) (%d)", folder_pos, pos);
-       if (presets == NULL) return NULL;
        GValue *nested;
-       gint ii;
+       GValue *val;
+       gint count, ii, ptype;
+       gint *indices = NULL;
+       const gchar *name;
+       GValue *dict;
 
-       if (folder_pos >= 0)
+       g_debug("ghb_preset_indices_from_path () ");
+       nested = presets;
+       count = ghb_array_len(path);
+       if (count)
+               indices = g_malloc(MAX_NESTED_PRESET * sizeof(gint));
+       *len = 0;
+       for (ii = 0; ii < count; ii++)
        {
-               if (pos >= 0)
+               val = ghb_array_get_nth(path, ii);
+               name = g_value_get_string(val);
+               indices[ii] = presets_find_element(nested, name);
+               if (indices[ii] == -1)
                {
-                       ii = pos;
-                       nested = ghb_array_get_nth(presets, folder_pos);
-                       nested = ghb_dict_lookup(nested, "preset_folder");
+                       g_free(indices);
+                       return NULL;
                }
-               else
+               if (ii < count-1)
                {
-                       ii = folder_pos;
-                       nested = presets;
+                       dict = ghb_array_get_nth(nested, indices[ii]);
+                       ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
+                       if (!(ptype & PRESETS_FOLDER))
+                       {
+                               g_free(indices);
+                               return NULL;
+                       }
+                       nested = ghb_dict_lookup(dict, "preset_folder");
                }
        }
-       else
-       {
-               ii = pos;
-               nested = presets;
-       }
-       if (ii >= 0)
-               return ghb_array_get_nth(nested, ii);
-       else
-       {
-               g_warning("internal preset lookup error (%d/%d)", folder_pos, pos);
-               return NULL;
-       }
+       *len = ii;
+       return indices;
 }
 
 static gint
 ghb_presets_get_type(
        GValue *presets, 
-       gint folder_pos,
-       gint pos)
+       gint *indices,
+       gint len)
 {
-       GValue *nested;
        GValue *dict;
-       gint ii;
        gint flags = 0;
 
-       if (folder_pos >= 0)
-       {
-               if (pos >= 0)
-               {
-                       ii = pos;
-                       nested = ghb_array_get_nth(presets, folder_pos);
-                       nested = ghb_dict_lookup(nested, "preset_folder");
-               }
-               else
-               {
-                       ii = folder_pos;
-                       nested = presets;
-               }
-       }
-       else
-       {
-               ii = pos;
-               nested = presets;
-       }
-       if (ii >= 0)
+       dict = presets_get_dict(presets, indices, len);
+       if (dict)
        {
-               dict = ghb_array_get_nth(nested, ii);
                flags = ghb_preset_flags(dict);
        }
        else
        {
-               g_warning("internal preset lookup error (%d/%d)", folder_pos, pos);
+               g_warning("ghb_presets_get_type ()");
+               g_warning("internal preset lookup error");
        }
        return flags;
 }
 
 void
-ghb_set_preset_default(GValue *settings)
+presets_set_default(gint *indices, gint len)
 {
-       gchar *preset, *folder;
+       GValue *dict;
+       gint *curr_indices, curr_len;
        
-       preset = ghb_settings_get_string (settings, "preset");
-       folder = ghb_settings_get_string (settings, "folder");
-       ghb_settings_set_string(settings, "default_preset", preset);
-       ghb_settings_set_string(settings, "default_folder", folder);
-       ghb_prefs_save(settings);
-       g_free(preset);
-       g_free(folder);
+       g_debug("presets_set_default ()");
+       curr_indices = presets_find_default(&curr_len);
+       if (curr_indices)
+       {
+               dict = presets_get_dict(presetsPlist, curr_indices, curr_len);
+               if (dict)
+               {
+                       ghb_dict_insert(dict, g_strdup("Default"), 
+                                                       ghb_boolean_value_new(FALSE));
+               }
+       }
+       dict = presets_get_dict(presetsPlist, indices, len);
+       if (dict)
+       {
+               ghb_dict_insert(dict, g_strdup("Default"), ghb_boolean_value_new(TRUE));
+       }
+       store_plist(presetsPlist, "presets");
 }
 
 // Used for sorting dictionaries.
@@ -409,21 +667,28 @@ preset_dict_get_value(GValue *dict, const gchar *key)
 const gchar*
 ghb_presets_get_description(GValue *pdict)
 {
-       if (pdict == NULL) return g_strdup("");
-       return g_value_get_string(
-               preset_dict_get_value(pdict, "preset_description"));
+       const gchar *desc;
+
+       if (pdict == NULL) return NULL;
+       desc = g_value_get_string(
+                       preset_dict_get_value(pdict, "preset_description"));
+       if (desc[0] == 0) return NULL;
+       return desc;
 }
 
 
 static const GValue*
-preset_get_value(const gchar *folder, const gchar *name, const gchar *key)
+preset_get_value(const GValue *preset, const gchar *key)
 {
        GValue *dict = NULL;
-       gint folder_pos, pos;
+       gint *indices, len;
+
 
-       if (ghb_presets_find(presetsPlist, folder, name, &folder_pos, &pos))
+       indices = ghb_preset_indices_from_path(presetsPlist, preset, &len);
+       if (indices)
        {
-               dict = presets_get_dict(presetsPlist, folder_pos, pos);
+               dict = presets_get_dict(presetsPlist, indices, len);
+               g_free(indices);
        }
        return preset_dict_get_value(dict, key);
 }
@@ -593,53 +858,61 @@ ghb_settings_to_ui(signal_user_data_t *ud, GValue *dict)
 }
 
 void
-ghb_set_preset(signal_user_data_t *ud, const gchar *folder, const gchar *name)
+ghb_set_preset_from_indices(signal_user_data_t *ud, gint *indices, gint len)
 {
        GValue *dict = NULL;
-       gint folder_pos, pos, ptype;
-       
-       g_debug("ghb_set_preset() %s %s\n", folder, name);
-       if (ghb_presets_find(presetsPlist, folder, name, &folder_pos, &pos))
-               dict = presets_get_dict(presetsPlist, folder_pos, pos);
+       gint fallback[2] = {0, -1};
 
+       if (indices)
+               dict = presets_get_dict(presetsPlist, indices, len);
        if (dict == NULL)
        {
-               dict = presets_get_first_dict(presetsPlist);
-               folder = NULL;
-               if (dict)
-                       name = preset_get_name(dict);
-               else
-                       name = NULL;
-               folder = "";
+               indices = fallback;
+               len = 1;
+               dict = presets_get_dict(presetsPlist, indices, len);
        }
-       if (dict == NULL || name == NULL)
+       if (dict == NULL)
        {
                preset_to_ui(ud, NULL);
        }
        else
        {
+               gint ptype;
+               GValue *path;
+
                ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
                if (ptype & PRESETS_FOLDER)
                        preset_to_ui(ud, NULL);
                else
                        preset_to_ui(ud, dict);
-               ghb_settings_set_string(ud->settings, "preset", name);
-               ghb_settings_set_string(ud->settings, "folder", folder);
+               path = preset_path_from_indices(presetsPlist, indices, len);
+               ghb_settings_set_value(ud->settings, "preset", path);
+               ghb_value_free(path);
        }
 }
 
+void
+ghb_set_preset(signal_user_data_t *ud, const GValue *path)
+{
+       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);
+}
+
 void
 ghb_update_from_preset(
        signal_user_data_t *ud, 
-       const gchar *folder, 
-       const gchar *name, 
+       const GValue *preset, 
        const gchar *key)
 {
        const GValue *gval;
        
-       g_debug("ghb_update_from_preset() %s %s", name, key);
-       if (name == NULL) return;
-       gval = preset_get_value(folder, name, key);
+       g_debug("ghb_update_from_preset() %s", key);
+       if (preset == NULL) return;
+       gval = preset_get_value(preset, key);
        if (gval != NULL)
        {
                ghb_ui_update(ud, key, gval);
@@ -728,6 +1001,7 @@ ghb_prefs_to_ui(signal_user_data_t *ud)
        GHashTableIter iter;
        
 
+       g_debug("ghb_prefs_to_ui");
        prefs_initializing = TRUE;
 
        // Setting a ui widget will cause the corresponding setting
@@ -914,7 +1188,7 @@ ghb_prefs_load(signal_user_data_t *ud)
        GValue *dict, *internal;
        GHashTableIter iter;
        gchar *key;
-       GValue *gval;
+       GValue *gval, *path;
        
        g_debug("ghb_prefs_load");
        prefsPlist = load_plist("preferences");
@@ -945,239 +1219,295 @@ ghb_prefs_load(signal_user_data_t *ud)
                        g_strdup("destination_dir"), ghb_value_dup(ghb_string_value(dir)));
                store_plist(prefsPlist, "preferences");
     }
+       // Read legacy default_preset preference and update accordingly
+       path = ghb_dict_lookup(dict, "default_preset");
+       if (path)
+       {
+               gint *indices, len;
+
+               if (G_VALUE_TYPE(path) == G_TYPE_STRING)
+               {
+                       GValue *str = path;
+
+                       path = ghb_array_value_new(1);
+                       ghb_array_append(path, ghb_value_dup(str));
+                       indices = ghb_preset_indices_from_path(presetsPlist, path, &len);
+                       ghb_value_free(path);
+               }
+               else
+                       indices = ghb_preset_indices_from_path(presetsPlist, path, &len);
+
+               if (indices)
+               {
+                       presets_set_default(indices, len);
+                       g_free(indices);
+               }
+               ghb_dict_remove(dict, "default_preset");
+               store_plist(prefsPlist, "preferences");
+       }
+}
+
+static const gchar*
+get_preset_color(gint flags)
+{
+       const gchar *color;
+
+       if (flags & PRESETS_CUST)
+       {
+               color = "DimGray";
+               if (flags & PRESETS_FOLDER)
+               {
+                       color = "black";
+               }
+       }
+       else
+       {
+               color = "blue";
+               if (flags & PRESETS_FOLDER)
+               {
+                       color = "Navy";
+               }
+       }
+       return color;
 }
 
 void
 ghb_presets_list_init(
        signal_user_data_t *ud, 
-       GValue *presets, 
-       const gchar *parent_name,
-       GtkTreeIter *parent)
+       gint *indices,
+       gint len)
 {
        GtkTreeView *treeview;
-       GtkTreeIter iter;
+       GtkTreeIter iter, titer, *piter;
+       
        GtkTreeStore *store;
        const gchar *preset;
-       gchar *def_preset, *def_folder;
+       GtkTreePath *parent_path;
        const gchar *description;
-       gint flags, custom;
+       gint flags;
        gboolean def;
-       gint count, ii, ptype;
+       gint count, ii;
        GValue *dict;
+       gint *more_indices;
+       GValue *presets = NULL;
        
        g_debug("ghb_presets_list_init ()");
+       more_indices = g_malloc((len+1)*sizeof(gint));
+       memcpy(more_indices, indices, len*sizeof(gint));
+       presets = presets_get_folder(presetsPlist, indices, len);
        if (presets == NULL)
-               presets = presetsPlist;
-       def_folder = ghb_settings_get_string(ud->settings, "default_folder");
-       def_preset = ghb_settings_get_string(ud->settings, "default_preset");
+       {
+               g_warning("Failed to find parent folder when adding child.");
+               return;
+       }
        count = ghb_array_len(presets);
        treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
        store = GTK_TREE_STORE(gtk_tree_view_get_model(treeview));
-       ii = 0;
-       while (ii < count)
+       parent_path = ghb_tree_path_new_from_indices(indices, len);
+       if (parent_path)
+       {
+               gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &titer, parent_path);
+               piter = &titer;
+               gtk_tree_path_free(parent_path);
+       }
+       else
        {
+               piter = NULL;
+       }
+       for (ii = 0; ii < count; ii++)
+       {
+               const gchar *color;
+
                // Additional settings, add row
-               g_debug("Adding rows");
                dict = ghb_array_get_nth(presets, ii);
                preset = preset_get_name(dict);
-               def = FALSE;
-               if (strcmp(preset, def_preset) == 0)
-               {
-                       if (parent_name && strcmp(parent_name, def_folder) == 0)
-                               def = TRUE;
-                       else if (parent_name == NULL && def_folder[0] == 0)
-                               def = TRUE;
-               }
+               more_indices[len] = ii;
+               def = preset_is_default(dict);
 
                description = ghb_presets_get_description(dict);
-               gtk_tree_store_append(store, &iter, parent);
+               gtk_tree_store_append(store, &iter, piter);
                flags = ghb_preset_flags(dict);
-               custom = flags & PRESETS_CUST;
+               color = get_preset_color(flags);
                gtk_tree_store_set(store, &iter, 0, preset, 
                                                        1, def ? 800 : 400, 
                                                        2, def ? 2 : 0,
-                                                       3, custom ? "black" : "blue"
+                                                       3, color
                                                        4, description,
                                                        -1);
-               if (def && parent)
+               if (def && piter)
                {
                        GtkTreePath *path;
+                       GtkTreeIter ppiter;
 
-                       path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), parent);
+                       if (gtk_tree_model_iter_parent(
+                               GTK_TREE_MODEL(store), &ppiter, piter))
+                       {
+                               path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &ppiter);
+                               gtk_tree_view_expand_row(treeview, path, FALSE);
+                               gtk_tree_path_free(path);
+                       }
+                       path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), piter);
                        gtk_tree_view_expand_row(treeview, path, FALSE);
                        gtk_tree_path_free(path);
                }
-               ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
-               if (ptype & PRESETS_FOLDER)
+               if (flags & PRESETS_FOLDER)
                {
-                       GValue *nested;
-                       nested = ghb_dict_lookup(dict, "preset_folder");
-                       if (nested != NULL)
-                               ghb_presets_list_init(ud, nested, preset, &iter);
+                       ghb_presets_list_init(ud, more_indices, len+1);
                }
-               ii++;
        }
-       g_free(def_preset);
-       g_free(def_folder);
+       g_free(more_indices);
 }
 
 static void
 presets_list_update_item(
        signal_user_data_t *ud, 
-       GValue *presets,
-       GtkTreeIter *iter,
-       gint folder_pos,
-       gint pos)
+       gint *indices,
+       gint len)
 {
        GtkTreeView *treeview;
        GtkTreeStore *store;
-       const gchar *preset;
-       gchar *def_preset, *def_folder;
+       GtkTreeIter iter;
+       GtkTreePath *treepath;
+       const gchar *name;
        const gchar *description;
-       gint flags, custom;
+       gint flags;
        gboolean def;
        GValue *dict;
-       const gchar *parent_name;
+       const gchar *color;
        
        g_debug("presets_list_update_item ()");
-       dict = presets_get_dict(presets, folder_pos, pos);
+       dict = presets_get_dict(presetsPlist, indices, len);
        if (dict == NULL)
                return;
-       def_folder = ghb_settings_get_string(ud->settings, "default_folder");
-       def_preset = ghb_settings_get_string(ud->settings, "default_preset");
        treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
        store = GTK_TREE_STORE(gtk_tree_view_get_model(treeview));
+       treepath = ghb_tree_path_new_from_indices(indices, len);
+       gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, treepath);
        // Additional settings, add row
-       preset = preset_get_name(dict);
-       if (pos >= 0)
-       {
-               GValue *parent_dict;
-               parent_dict = presets_get_dict(presets, folder_pos, -1);
-               parent_name = preset_get_name(parent_dict);
-       }
-       else
-               parent_name = NULL;
-       def = FALSE;
-       if (strcmp(preset, def_preset) == 0)
-       {
-               if (parent_name && strcmp(parent_name, def_folder) == 0)
-                       def = TRUE;
-               else if (parent_name == NULL && def_folder[0] == 0)
-                       def = TRUE;
-       }
+       name = preset_get_name(dict);
+       def = preset_is_default(dict);
 
        description = ghb_presets_get_description(dict);
        flags = ghb_preset_flags(dict);
-       custom = flags & PRESETS_CUST;
-       gtk_tree_store_set(store, iter, 0, preset
+       color = get_preset_color(flags);
+       gtk_tree_store_set(store, &iter, 0, name
                                                1, def ? 800 : 400, 
                                                2, def ? 2 : 0,
-                                               3, custom ? "black" : "blue", 
+                                               3, color,
                                                4, description,
                                                -1);
        if (flags & PRESETS_FOLDER)
        {
-               presets = ghb_dict_lookup(dict, "preset_folder");
-               ghb_presets_list_init(ud, presets, preset, iter);
+               ghb_presets_list_init(ud, indices, len);
        }
-       g_free(def_preset);
 }
 
 static void
 presets_list_insert(
        signal_user_data_t *ud, 
-       GValue *presets,
-       const gchar *parent_name,
-       GtkTreeIter *parent,
-       gint pos)
+       gint *indices,
+       gint len)
 {
        GtkTreeView *treeview;
-       GtkTreeIter iter;
+       GtkTreeIter iter, titer, *piter;
        GtkTreeStore *store;
        const gchar *preset;
-       gchar *def_preset, *def_folder;
        const gchar *description;
-       gint flags, custom;
+       gint flags;
        gboolean def;
        gint count;
+       GValue *presets;
+       GtkTreePath *parent_path;
        GValue *dict;
+       const gchar *color;
        
        g_debug("presets_list_insert ()");
-       count = ghb_array_len(presets);
-       if (pos >= count)
-               return;
-       def_folder = ghb_settings_get_string(ud->settings, "default_folder");
-       def_preset = ghb_settings_get_string(ud->settings, "default_preset");
        treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
        store = GTK_TREE_STORE(gtk_tree_view_get_model(treeview));
-       // Additional settings, add row
-       dict = ghb_array_get_nth(presets, pos);
-       preset = preset_get_name(dict);
-       def = FALSE;
-       if (strcmp(preset, def_preset) == 0)
+       presets = presets_get_folder(presetsPlist, indices, len-1);
+       if (presets == NULL)
        {
-               if (parent_name && strcmp(parent_name, def_folder) == 0)
-                       def = TRUE;
-               else if (parent_name == NULL && def_folder[0] == 0)
-                       def = TRUE;
+               g_warning("Failed to find parent folder while adding child.");
+               return;
+       }
+       parent_path = ghb_tree_path_new_from_indices(indices, len-1);
+       if (parent_path)
+       {
+               gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &titer, parent_path);
+               piter = &titer;
+               gtk_tree_path_free(parent_path);
+       }
+       else
+       {
+               piter = NULL;
        }
+       count = ghb_array_len(presets);
+       if (indices[len-1] >= count)
+               return;
+       // Additional settings, add row
+       dict = ghb_array_get_nth(presets, indices[len-1]);
+       preset = preset_get_name(dict);
+       def = preset_is_default(dict);
 
        description = ghb_presets_get_description(dict);
-       gtk_tree_store_insert(store, &iter, parent, pos);
+       gtk_tree_store_insert(store, &iter, piter, indices[len-1]);
        flags = ghb_preset_flags(dict);
-       custom = flags & PRESETS_CUST;
+       color = get_preset_color(flags);
        gtk_tree_store_set(store, &iter, 0, preset, 
                                                1, def ? 800 : 400, 
                                                2, def ? 2 : 0,
-                                               3, custom ? "black" : "blue", 
+                                               3, color,
                                                4, description,
                                                -1);
        if (flags & PRESETS_FOLDER)
        {
-               presets = ghb_dict_lookup(dict, "preset_folder");
-               ghb_presets_list_init(ud, presets, preset, &iter);
+               ghb_presets_list_init(ud, indices, len);
        }
-       g_free(def_preset);
 }
 
 static void
 presets_list_remove(
        signal_user_data_t *ud, 
-       gint folder_pos,
-       gint pos)
+       gint *indices,
+       gint len)
 {
        GtkTreeView *treeview;
-       GtkTreeIter iter, piter;
+       GtkTreePath *treepath;
+       GtkTreeIter iter;
        GtkTreeStore *store;
        
        g_debug("presets_list_remove ()");
        treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
        store = GTK_TREE_STORE(gtk_tree_view_get_model(treeview));
-       if (folder_pos >= 0)
+       treepath = ghb_tree_path_new_from_indices(indices, len);
+       if (treepath)
        {
-               if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &piter, 
-                       NULL, folder_pos))
-               {
-                       if (pos >= 0)
-                       {
-                               if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, 
-                                       &piter, pos))
-                               {
-                                       gtk_tree_store_remove(store, &iter);
-                               }
-                       }
-                       else
-                       {
-                               gtk_tree_store_remove(store, &piter);
-                       }
-               }
+               if (gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, treepath))
+                       gtk_tree_store_remove(store, &iter);
+               gtk_tree_path_free(treepath);
        }
-       else if (pos >= 0)
+}
+
+static void
+remove_std_presets(signal_user_data_t *ud)
+{
+       gint count, ii;
+       gint indices = 0;
+
+       count = ghb_array_len(presetsPlist);
+       for (ii = count-1; ii >= 0; ii--)
        {
-               if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, 
-                       NULL, pos))
+               GValue *dict;
+               gint ptype;
+
+               dict = ghb_array_get_nth(presetsPlist, ii);
+               ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
+               if (!(ptype & PRESETS_CUST))
                {
-                       gtk_tree_store_remove(store, &iter);
+                       if (ghb_presets_remove(presetsPlist, &indices, 1))
+                       {
+                               presets_list_remove(ud, &indices, 1);
+                       }
                }
        }
 }
@@ -1192,39 +1522,30 @@ ghb_presets_reload(signal_user_data_t *ud)
        std_presets = ghb_resource_get("standard-presets");
        if (std_presets == NULL) return;
 
+       remove_std_presets(ud);
        // Merge the keyfile contents into our presets
        count = ghb_array_len(std_presets);
-       for (ii = 0; ii < count; ii++)
+       for (ii = count-1; ii >= 0; ii--)
        {
-               const gchar *name;
                GValue *std_dict;
                GValue *copy_dict;
                GHashTableIter iter;
                gchar *key;
                GValue *value;
-               gint folder_pos, pos;
+               gint indices = 0;
 
                std_dict = ghb_array_get_nth(std_presets, ii);
-               name = preset_get_name(std_dict);
-               if (ghb_presets_find(presetsPlist, NULL, name, &folder_pos, &pos))
-               {
-                       if (ghb_presets_remove(presetsPlist, folder_pos, pos))
-                       {
-                               presets_list_remove(ud, folder_pos, pos);
-                       }
-               }
                copy_dict = ghb_dict_value_new();
-               pos = presets_find_pos(presetsPlist, name, 0);
-               ghb_array_insert(presetsPlist, pos, copy_dict);
+               ghb_presets_insert(presetsPlist, copy_dict, &indices, 1);
                ghb_dict_iter_init(&iter, std_dict);
-               // middle (void*) cast prevents gcc warning "defreferencing type-punned
-               // pointer will break strict-aliasing rules"
+               // 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))
+                       &iter, (gpointer*)(void*)&key, (gpointer*)(void*)&value))
                {
                        ghb_dict_insert(copy_dict, g_strdup(key), ghb_value_dup(value));
                }
-               presets_list_insert(ud, presetsPlist, NULL, NULL, pos);
+               presets_list_insert(ud, &indices, 1);
        }
        store_plist(presetsPlist, "presets");
 }
@@ -1294,16 +1615,56 @@ ghb_presets_load()
 }
 
 static void
-settings_save(signal_user_data_t *ud, const gchar *folder, const gchar *name)
+settings_save(signal_user_data_t *ud, const GValue *path)
 {
        GValue *dict, *internal;
        GHashTableIter iter;
        gchar *key;
        GValue *value;
        gboolean autoscale;
-       gint folder_pos, pos;
+       gint *indices, len, count;
+       const gchar *name;
+       gboolean replace = FALSE;
 
+       g_debug("settings_save");
        if (internalPlist == NULL) return;
+       count = ghb_array_len(path);
+       name = g_value_get_string(ghb_array_get_nth(path, count-1));
+       indices = ghb_preset_indices_from_path(presetsPlist, path, &len);
+       if (indices)
+       {
+               if (ghb_presets_get_type(presetsPlist, indices, len) & 
+                       PRESETS_FOLDER)
+               {
+                       gchar *message;
+                       message = g_strdup_printf(
+                                               "%s: Folder already exists.\n"
+                                               "You can not replace it with a preset.",
+                                               name);
+                       ghb_message_dialog(GTK_MESSAGE_ERROR, message, "Cancel", NULL);
+                       g_free(message);
+                       return;
+               }
+               dict = ghb_dict_value_new();
+               ghb_presets_replace(presetsPlist, dict, indices, len);
+               replace = TRUE;
+       }
+       else
+       {
+               indices = presets_find_pos(path, PRESETS_CUST, &len);
+               if (indices)
+               {
+                       dict = ghb_dict_value_new();
+                       ghb_presets_insert(presetsPlist, dict, indices, len);
+               }
+               else
+               {
+                       g_warning("failed to find insert 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;
@@ -1323,31 +1684,6 @@ settings_save(signal_user_data_t *ud, const gchar *folder, const gchar *name)
        autoscale = ghb_settings_get_boolean(ud->settings, "autoscale");
        ghb_settings_set_int64(ud->settings, "preset_type", PRESETS_CUST);
 
-       dict = ghb_dict_value_new();
-       if (ghb_presets_find(presetsPlist, folder, name, &folder_pos, &pos))
-       {
-               if (ghb_presets_get_type(presetsPlist, folder_pos, pos) & 
-                       PRESETS_FOLDER)
-               {
-                       gchar *message;
-                       message = g_strdup_printf(
-                                               "%s: Folder already exists.\n"
-                                               "You can not replace it with a preset.",
-                                               name);
-                       ghb_message_dialog(GTK_MESSAGE_ERROR, message, "Cancel", NULL);
-                       g_free(message);
-                       return;
-               }
-               ghb_presets_replace(presetsPlist, dict, folder_pos, pos);
-               pos = -1;
-       }
-       else
-       {
-               pos = presets_find_pos(presetsPlist, name, 1);
-               ghb_array_insert(presetsPlist, pos, dict);
-       }
-       ghb_dict_insert(dict, g_strdup("preset_name"), ghb_string_value_new(name));
-
        internal = plist_get_dict(internalPlist, "Presets");
        ghb_dict_iter_init(&iter, internal);
        // middle (void*) cast prevents gcc warning "defreferencing type-punned
@@ -1382,25 +1718,35 @@ settings_save(signal_user_data_t *ud, const gchar *folder, const gchar *name)
                        ghb_dict_insert(dict, g_strdup(key), ghb_value_dup(gval));
                }
        }
-       if (pos >= 0)
-               presets_list_insert(ud, presetsPlist, NULL, NULL, pos);
+       if (replace)
+               presets_list_update_item(ud, indices, len);
+       else
+       {
+               ghb_dict_insert(dict, g_strdup("Default"), 
+                                               ghb_boolean_value_new(FALSE));
+               presets_list_insert(ud, indices, len);
+       }
+       g_free(indices);
        store_plist(presetsPlist, "presets");
        ud->dont_clear_presets = TRUE;
-       ghb_set_preset (ud, NULL, name);
+       ghb_set_preset(ud, path);
        ud->dont_clear_presets = FALSE;
        return;
 }
 
 static void
-folder_save(signal_user_data_t *ud, const gchar *name)
+folder_save(signal_user_data_t *ud, const GValue *path)
 {
        GValue *dict, *folder;
-       gint folder_pos, pos;
-
+       gint *indices, len, count;
+       const gchar *name;
 
-       if (ghb_presets_find(presetsPlist, name, NULL, &folder_pos, &pos))
+       count = ghb_array_len(path);
+       name = g_value_get_string(ghb_array_get_nth(path, count-1));
+       indices = ghb_preset_indices_from_path(presetsPlist, path, &len);
+       if (indices)
        {
-               if (!(ghb_presets_get_type(presetsPlist, folder_pos, pos) & 
+               if (!(ghb_presets_get_type(presetsPlist, indices, len) & 
                        PRESETS_FOLDER))
                {
                        gchar *message;
@@ -1410,20 +1756,30 @@ folder_save(signal_user_data_t *ud, const gchar *name)
                                                name);
                        ghb_message_dialog(GTK_MESSAGE_ERROR, message, "Cancel", NULL);
                        g_free(message);
+                       g_free(indices);
                        return;
                }
                // Already exists, update its description
-               dict = presets_get_dict(presetsPlist, folder_pos, pos);
+               dict = presets_get_dict(presetsPlist, indices, len);
                ghb_dict_insert(dict, g_strdup("preset_description"), 
                        ghb_value_dup(preset_dict_get_value(
                                ud->settings, "preset_description")));
+               g_free(indices);
                return;
        }
        else
        {
-               dict = ghb_dict_value_new();
-               pos = presets_find_pos(presetsPlist, name, 1);
-               ghb_array_insert(presetsPlist, pos, dict);
+               indices = presets_find_pos(path, PRESETS_CUST, &len);
+               if (indices)
+               {
+                       dict = ghb_dict_value_new();
+                       ghb_presets_insert(presetsPlist, dict, indices, len);
+               }
+               else
+               {
+                       g_warning("failed to find insert path");
+                       return;
+               }
        }
        ghb_dict_insert(dict, g_strdup("preset_description"), 
                ghb_value_dup(preset_dict_get_value(
@@ -1434,10 +1790,11 @@ folder_save(signal_user_data_t *ud, const gchar *name)
        ghb_dict_insert(dict, g_strdup("preset_type"),
                                                        ghb_int64_value_new(PRESETS_FOLDER|PRESETS_CUST));
 
-       presets_list_insert(ud, presetsPlist, NULL, NULL, pos);
+       presets_list_insert(ud, indices, len);
+       g_free(indices);
        store_plist(presetsPlist, "presets");
        ud->dont_clear_presets = TRUE;
-       ghb_set_preset (ud, NULL, name);
+       ghb_set_preset(ud, path);
        ud->dont_clear_presets = FALSE;
        return;
 }
@@ -1446,129 +1803,65 @@ void
 ghb_presets_list_default(signal_user_data_t *ud)
 {
        GtkTreeView *treeview;
-       GtkTreeIter iter, citer;
+       GtkTreePath *treepath;
+       GtkTreeIter iter;
        GtkTreeStore *store;
-       gboolean done;
-       gchar *preset;
-       gchar *def_preset, *def_folder;
-       gint def, weight;
+       gint *indices, len;
        
        g_debug("ghb_presets_list_default ()");
-       def_folder = ghb_settings_get_string(ud->settings, "default_folder");
-       def_preset = ghb_settings_get_string(ud->settings, "default_preset");
        treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
        store = GTK_TREE_STORE(gtk_tree_view_get_model(treeview));
-       if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &iter))
+       indices = presets_find_default(&len);
+       if (indices == NULL) return;
+       treepath = ghb_tree_path_new_from_indices(indices, len);
+       if (treepath)
        {
-               if (def_folder[0] != 0) 
+               if (gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, treepath))
                {
-                       gboolean found = FALSE;
-                       do
-                       {
-                               gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, 
-                                                                       0, &preset, 1, &weight, -1);
-                               if (strcmp(preset, def_folder) == 0)
-                               {
-                                       if (gtk_tree_model_iter_children(
-                                                                       GTK_TREE_MODEL(store), &citer, &iter))
-                                       {
-                                               iter = citer;
-                                               found = TRUE;
-                                       }
-                                       g_free(preset);
-                                       break;
-                               }
-                               g_free(preset);
-                               done = !gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter);
-                       } while (!done);
-                       if (!found) return;
+                       gtk_tree_store_set(store, &iter, 
+                                               1, 800, 
+                                               2, 2 ,
+                                               -1);
                }
-               do
-               {
-                       def = FALSE;
-                       gtk_tree_model_get(GTK_TREE_MODEL(store), &iter, 
-                                                               0, &preset, 1, &weight, -1);
-                       if (strcmp(preset, def_preset) == 0)
-                               def = TRUE;
-                       if ((!def && weight == 800) || def)
-                       {
-                               gtk_tree_store_set(store, &iter, 
-                                                       1, def ? 800 : 400, 
-                                                       2, def ? 2 : 0,
-                                                       -1);
-                       }
-                       g_free(preset);
-                       done = !gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter);
-               } while (!done);
+               gtk_tree_path_free(treepath);
        }
-       g_free(def_folder);
-       g_free(def_preset);
+       g_free(indices);
 }
 
 void
 ghb_presets_list_clear_default(signal_user_data_t *ud)
 {
        GtkTreeView *treeview;
-       GtkTreeIter iter, piter;
+       GtkTreePath *treepath;
+       GtkTreeIter iter;
        GtkTreeStore *store;
-       gchar *def_preset, *def_folder;
-       gint folder_pos, pos;
-       gboolean found = FALSE;
+       gint *indices, len;
        
-       g_debug("ghb_presets_list_default ()");
-       def_folder = ghb_settings_get_string(ud->settings, "default_folder");
-       def_preset = ghb_settings_get_string(ud->settings, "default_preset");
+       g_debug("ghb_presets_list_clear_default ()");
        treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
        store = GTK_TREE_STORE(gtk_tree_view_get_model(treeview));
-       if (!ghb_presets_find(presetsPlist, def_folder, def_preset, 
-               &folder_pos, &pos))
-       {
-               return;
-       }
-       // de-emphasize the current default
-       if (folder_pos >= 0)
-       {
-               if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &piter, 
-                       NULL, folder_pos))
-               {
-                       if (pos >= 0)
-                       {
-                               if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, 
-                                       &piter, pos))
-                               {
-                                       found = TRUE;
-                               }
-                       }
-                       else
-                       {
-                               found = TRUE;
-                       }
-               }
-       }
-       else if (pos >= 0)
+       indices = presets_find_default(&len);
+       if (indices == NULL) return;
+       treepath = ghb_tree_path_new_from_indices(indices, len);
+       if (treepath)
        {
-               if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, 
-                       NULL, pos))
+               if (gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, treepath))
                {
-                       found = TRUE;
+                       gtk_tree_store_set(store, &iter, 
+                                               1, 400, 
+                                               2, 0 ,
+                                               -1);
                }
+               gtk_tree_path_free(treepath);
        }
-       if (found)
-       {
-               gtk_tree_store_set(store, &iter, 
-                                       1, 400, 
-                                       2, 0,
-                                       -1);
-       }
-       g_free(def_folder);
-       g_free(def_preset);
+       g_free(indices);
 }
 
 static void
 ghb_select_preset2(
        GtkBuilder *builder, 
-       gint folder_pos, 
-       gint pos)
+       gint *indices, 
+       gint len)
 {
        GtkTreeView *treeview;
        GtkTreeSelection *selection;
@@ -1576,37 +1869,51 @@ ghb_select_preset2(
        GtkTreeIter iter;
        GtkTreePath *path;
        
-       g_debug("ghb_select_preset2() (%d) (%d)", folder_pos, pos);
+       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);
-       if (folder_pos == -1)
-       {
-               folder_pos = pos;
-               pos = -1;
-       }
-       path = gtk_tree_path_new_from_indices(folder_pos, pos, -1);
-       if (gtk_tree_model_get_iter(store, &iter, path))
+       path = ghb_tree_path_new_from_indices(indices, len);
+       if (path)
        {
-               gtk_tree_selection_select_iter (selection, &iter);
+               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);
        }
-       else
+}
+
+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)
        {
-               gtk_tree_model_get_iter_first(store, &iter);
-               gtk_tree_selection_select_iter (selection, &iter);
+               ghb_select_preset2(builder, indices, len);
+               g_free(indices);
        }
-       gtk_tree_path_free(path);
 }
 
 void
-ghb_select_preset(GtkBuilder *builder, const gchar *folder, const gchar *preset)
+ghb_select_default_preset(GtkBuilder *builder)
 {
-       gint folder_pos, pos;
+       gint *indices, len;
 
-       g_debug("ghb_select_preset() (%s) (%s)", folder, preset);
-       if (ghb_presets_find(presetsPlist, folder, preset, &folder_pos, &pos))
+       g_debug("ghb_select_default_preset()");
+       indices = presets_find_default(&len);
+       if (indices)
        {
-               ghb_select_preset2(builder, folder_pos, pos);
+               ghb_select_preset2(builder, indices, len);
+               g_free(indices);
        }
 }
 
@@ -1621,17 +1928,18 @@ update_audio_presets(signal_user_data_t *ud)
 }
 
 void
-enforce_preset_type(const gchar *name, signal_user_data_t *ud)
+enforce_preset_type(signal_user_data_t *ud, const GValue *path)
 {
-       gint folder_pos, pos;
+       gint *indices, len;
        GtkWidget *normal, *folder;
        gint ptype;
 
        normal = GHB_WIDGET(ud->builder, "preset_type_normal");
        folder = GHB_WIDGET(ud->builder, "preset_type_folder");
-       if (ghb_presets_find(presetsPlist, NULL, name, &folder_pos, &pos))
+       indices = ghb_preset_indices_from_path(presetsPlist, path, &len);
+       if (indices)
        {
-               ptype = ghb_presets_get_type(presetsPlist, folder_pos, pos);
+               ptype = ghb_presets_get_type(presetsPlist, indices, len);
                if (ptype & PRESETS_FOLDER)
                        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(folder), 
                                                                        TRUE);
@@ -1640,6 +1948,7 @@ enforce_preset_type(const gchar *name, signal_user_data_t *ud)
                                                                        TRUE);
                gtk_widget_set_sensitive(folder,  ptype & PRESETS_FOLDER);
                gtk_widget_set_sensitive(normal,  !(ptype & PRESETS_FOLDER));
+               g_free(indices);
        }
        else
        {
@@ -1655,37 +1964,67 @@ presets_save_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
        GtkEntry *entry;
        GtkTextView *desc;
        GtkResponseType response;
-       gchar *preset;
+       GValue *preset;
+       const gchar *name = "";
+       gint count, *indices, len;
 
        g_debug("presets_save_clicked_cb ()");
-       preset = ghb_settings_get_string (ud->settings, "preset");
+       preset = ghb_settings_get_value (ud->settings, "preset_selection");
+
+       count = ghb_array_len(preset);
+       if (count > 0)
+               name = g_value_get_string(ghb_array_get_nth(preset, count-1));
+       else
+               count = 1;
        // Clear the description
        desc = GTK_TEXT_VIEW(GHB_WIDGET(ud->builder, "preset_description"));
        dialog = GHB_WIDGET(ud->builder, "preset_save_dialog");
        entry = GTK_ENTRY(GHB_WIDGET(ud->builder, "preset_name"));
-       gtk_entry_set_text(entry, preset);
-       enforce_preset_type(preset, ud);
-       g_free(preset);
+       gtk_entry_set_text(entry, name);
+       enforce_preset_type(ud, preset);
        response = gtk_dialog_run(GTK_DIALOG(dialog));
        gtk_widget_hide(dialog);
        if (response == GTK_RESPONSE_OK)
        {
                // save the preset
                const gchar *name = gtk_entry_get_text(entry);
-               g_debug("description to settings");
+               GValue *dest;
+
+               if (ghb_settings_get_boolean(ud->settings, "preset_type_folder"))
+               {
+                       if (count > MAX_NESTED_PRESET-1)
+                       {
+                               count = MAX_NESTED_PRESET-1;
+                       }
+               }
+               dest = ghb_array_value_new(MAX_NESTED_PRESET);
+               indices = ghb_preset_indices_from_path(presetsPlist, preset, &len);
+               if (indices)
+               {
+                       gint ptype;
+
+                       ptype = ghb_presets_get_type(presetsPlist, indices, len);
+                       if (ptype & PRESETS_CUST)
+                       {
+                               ghb_array_copy(dest, preset, count-1);
+                       }
+               }
+               ghb_array_append(dest, ghb_string_value_new(name));
+
                ghb_widget_to_setting(ud->settings, GTK_WIDGET(desc));
                if (ghb_settings_get_boolean(ud->settings, "preset_type_folder"))
                {
-                       folder_save(ud, name);
+                       folder_save(ud, dest);
                }
                else
                {
                        // Construct the audio settings presets from the current audio list
                        update_audio_presets(ud);
-                       settings_save(ud, NULL, name);
+                       settings_save(ud, dest);
                }
                // Make the new preset the selected item
-               ghb_select_preset(ud->builder, NULL, name);
+               ghb_select_preset(ud->builder, dest);
+               ghb_value_free(dest);
        }
 }
 
@@ -1699,23 +2038,30 @@ void
 preset_name_changed_cb(GtkWidget *entry, signal_user_data_t *ud)
 {
        gchar *name;
+       GValue *preset, *dest;
+       gint count;
 
+       preset = ghb_settings_get_value (ud->settings, "preset_selection");
        name = ghb_widget_string(entry);
-       enforce_preset_type(name, ud);
+       dest = ghb_value_dup(preset);
+       count = ghb_array_len(dest);
+       ghb_array_replace(dest, count-1, ghb_string_value_new(name));
+       enforce_preset_type(ud, dest);
+       ghb_value_free(dest);
 }
 
 void
 presets_restore_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
 {
+       GValue *preset;
+
        g_debug("presets_restore_clicked_cb ()");
        // Reload only the standard presets
        ghb_presets_reload(ud);
        // Updating the presets list shuffles things around
        // need to make sure the proper preset is selected
-       gchar *folder = ghb_settings_get_string (ud->settings, "folder");
-       gchar *preset = ghb_settings_get_string (ud->settings, "preset");
-       ghb_select_preset(ud->builder, folder, preset);
-       g_free(preset);
+       preset = ghb_settings_get_value (ud->settings, "preset");
+       ghb_select_preset(ud->builder, preset);
 }
 
 void
@@ -1735,18 +2081,15 @@ presets_remove_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
        {
                GtkWidget *dialog;
                GtkTreePath *path;
-               gint *indices;
-               gint folder_pos, pos, ptype;
+               gint *indices, len;
+               gint ptype;
 
                gtk_tree_model_get(store, &iter, 0, &preset, -1);
                path = gtk_tree_model_get_path(store, &iter);
                indices = gtk_tree_path_get_indices(path);
-               folder_pos = indices[0];
-               pos = -1;
-               if (gtk_tree_path_get_depth(path) > 1)
-                       pos = indices[1];
-               gtk_tree_path_free(path);
-               ptype = ghb_presets_get_type(presetsPlist, folder_pos, pos);
+               len = gtk_tree_path_get_depth(path);
+
+               ptype = ghb_presets_get_type(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", 
@@ -1768,26 +2111,24 @@ presets_remove_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
                        // Remove the selected item
                        // First unselect it so that selecting the new item works properly
                        gtk_tree_selection_unselect_iter (selection, &iter);
-                       if (ghb_presets_remove(presetsPlist, folder_pos, pos))
+                       if (ghb_presets_remove(presetsPlist, indices, len))
                        {
                                store_plist(presetsPlist, "presets");
-                               presets_list_remove(ud, folder_pos, pos);
+                               presets_list_remove(ud, indices, len);
                        }
                        if (!valid)
                                valid = gtk_tree_model_get_iter_first(store, &nextIter);
                        if (valid)
                        {
+                               gtk_tree_path_free(path);
                                path = gtk_tree_model_get_path(store, &nextIter);
                                indices = gtk_tree_path_get_indices(path);
-                               folder_pos = indices[0];
-                               pos = -1;
-                               if (gtk_tree_path_get_depth(path) > 1)
-                                       pos = indices[1];
-                               gtk_tree_path_free(path);
-                               ghb_select_preset2(ud->builder, folder_pos, pos);
+                               len = gtk_tree_path_get_depth(path);
+                               ghb_select_preset2(ud->builder, indices, len);
                        }
                }
                g_free(preset);
+               gtk_tree_path_free(path);
        }
 }
 
@@ -1803,12 +2144,14 @@ presets_drag_motion_cb(
 {
        GtkTreePath *path = NULL;
        GtkTreeViewDropPosition drop_pos;
-       gint *indices, folder_pos, pos;
+       gint *indices, len;
        GtkTreeIter iter;
        GtkTreeView *srctv;
        GtkTreeModel *model;
        GtkTreeSelection *select;
        gint src_ptype, dst_ptype;
+       GValue *preset;
+       gint tree_depth, ii;
 
        // Get the type of the object being dragged
        srctv = GTK_TREE_VIEW(gtk_drag_get_source_widget(ctx));
@@ -1816,41 +2159,62 @@ presets_drag_motion_cb(
        gtk_tree_selection_get_selected (select, &model, &iter);
        path = gtk_tree_model_get_path (model, &iter);
        indices = gtk_tree_path_get_indices(path);
-       folder_pos = indices[0];
-       pos = -1;
-       if (gtk_tree_path_get_depth(path) > 1)
-               pos = indices[1];
+       len = gtk_tree_path_get_depth(path);
+
+       preset = presets_get_dict(presetsPlist, indices, len);
+       tree_depth = preset_tree_depth(preset);
+
+       src_ptype = ghb_presets_get_type(presetsPlist, indices, len);
        gtk_tree_path_free(path);
-       src_ptype = ghb_presets_get_type(presetsPlist, folder_pos, pos);
+
+       if ((src_ptype & PRESETS_FOLDER) && tree_depth == 1)
+               tree_depth = 2;
 
        // The rest checks that the destination is a valid position
        // in the list.
        gtk_tree_view_get_dest_row_at_pos (tv, x, y, &path, &drop_pos);
        if (path == NULL)
        {
-               gdk_drag_status(ctx, GDK_ACTION_MOVE, time);
+               gdk_drag_status(ctx, 0, time);
                return TRUE;
        }
-       indices = gtk_tree_path_get_indices(path);
-       folder_pos = indices[0];
-       pos = -1;
-       if (gtk_tree_path_get_depth(path) > 1)
-               pos = indices[1];
-       dst_ptype = ghb_presets_get_type(presetsPlist, folder_pos, pos);
-
-       // Don't allow *drop into* if the source is a folder
-       if (((src_ptype & PRESETS_FOLDER) || (!(dst_ptype & PRESETS_FOLDER))) && 
-               drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE)
-               drop_pos = GTK_TREE_VIEW_DROP_BEFORE;
-       if (((src_ptype & PRESETS_FOLDER) || (!(dst_ptype & PRESETS_FOLDER))) && 
-               drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_AFTER)
-               drop_pos = GTK_TREE_VIEW_DROP_AFTER;
-       // Don't allow droping folders into child items
-       if ((src_ptype & PRESETS_FOLDER) && gtk_tree_path_get_depth(path) > 1)
+       // Don't allow repositioning of builtin presets
+       if (!(src_ptype & PRESETS_CUST))
+       {
+               gdk_drag_status(ctx, 0, time);
+               return TRUE;
+       }
+
+       len = gtk_tree_path_get_depth(path);
+       if (len+tree_depth-1 >= MAX_NESTED_PRESET)
        {
+               if (drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE)
+                       drop_pos = GTK_TREE_VIEW_DROP_BEFORE;
+               if (drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_AFTER)
+                       drop_pos = GTK_TREE_VIEW_DROP_AFTER;
+       }
+       for (ii = len+tree_depth-1; ii > MAX_NESTED_PRESET; ii--)
                gtk_tree_path_up(path);
-               drop_pos = GTK_TREE_VIEW_DROP_AFTER;
+       indices = gtk_tree_path_get_indices(path);
+       len = gtk_tree_path_get_depth(path);
+       dst_ptype = ghb_presets_get_type(presetsPlist, indices, len);
+       // Don't allow mixing custom presets in the builtins
+       if (!(dst_ptype & PRESETS_CUST))
+       {
+               gdk_drag_status(ctx, 0, time);
+               return TRUE;
+       }
+
+       // Only allow *drop into* for folders
+       if (!(dst_ptype & PRESETS_FOLDER))
+       { 
+               if (drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE)
+                       drop_pos = GTK_TREE_VIEW_DROP_BEFORE;
+               if (drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_AFTER)
+                       drop_pos = GTK_TREE_VIEW_DROP_AFTER;
        }
+
+       len = gtk_tree_path_get_depth(path);
        gtk_tree_view_set_drag_dest_row(tv, path, drop_pos);
        gtk_tree_path_free(path);
        gdk_drag_status(ctx, GDK_ACTION_MOVE, time);
@@ -1869,8 +2233,7 @@ presets_drag_cb(
        GtkTreePath *path = NULL;
        GtkTreeViewDropPosition drop_pos;
        GtkTreeIter dstiter, srciter;
-       gint *indices;
-       gint dst_folder_pos, dst_pos, src_folder_pos, src_pos;
+       gint *dst_indices, dst_len, *src_indices, src_len;
        gint src_ptype, dst_ptype;
        
        GtkTreeModel *dstmodel = gtk_tree_view_get_model(dstwidget);
@@ -1903,126 +2266,102 @@ presets_drag_cb(
                GtkTreeModel *srcmodel;
                GtkTreeSelection *select;
                GtkTreePath *srcpath = NULL;
-               GValue *dict, *presets;
                GValue *preset;
+               gint tree_depth, ii;
 
                srcwidget = GTK_TREE_VIEW(gtk_drag_get_source_widget(dc));
                select = gtk_tree_view_get_selection (srcwidget);
                gtk_tree_selection_get_selected (select, &srcmodel, &srciter);
 
                srcpath = gtk_tree_model_get_path (srcmodel, &srciter);
-               indices = gtk_tree_path_get_indices(srcpath);
-               src_folder_pos = indices[0];
-               src_pos = -1;
-               if (gtk_tree_path_get_depth(srcpath) > 1)
-                       src_pos = indices[1];
-               src_ptype = ghb_presets_get_type(presetsPlist, src_folder_pos, src_pos);
-               preset = presets_get_dict(presetsPlist, src_folder_pos, src_pos);
+               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);
+               preset = ghb_value_dup(
+                                       presets_get_dict(presetsPlist, src_indices, src_len));
                gtk_tree_path_free(srcpath);
 
-               indices = gtk_tree_path_get_indices(path);
-               dst_folder_pos = indices[0];
-               dst_pos = -1;
-               if (gtk_tree_path_get_depth(path) > 1)
-                       dst_pos = indices[1];
-               dst_ptype = ghb_presets_get_type(presetsPlist, dst_folder_pos, dst_pos);
+               // Don't allow repositioning of builtin presets
+               if (!(src_ptype & PRESETS_CUST))
+                       return;
 
-               if ((src_ptype & PRESETS_FOLDER) && gtk_tree_path_get_depth(path) > 1)
-                       gtk_tree_path_up(path);
+               tree_depth = preset_tree_depth(preset);
+               if ((src_ptype & PRESETS_FOLDER) && tree_depth == 1)
+                       tree_depth = 2;
 
+               dst_len = gtk_tree_path_get_depth(path);
+               if (dst_len+tree_depth-1 >= MAX_NESTED_PRESET)
+               {
+                       if (drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE)
+                               drop_pos = GTK_TREE_VIEW_DROP_BEFORE;
+                       if (drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_AFTER)
+                               drop_pos = GTK_TREE_VIEW_DROP_AFTER;
+               }
+
+               for (ii = dst_len+tree_depth-1; ii > MAX_NESTED_PRESET; ii--)
+                       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);
+               // Only allow *drop into* for folders
+               if (!(dst_ptype & PRESETS_FOLDER))
+               { 
+                       if (drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE)
+                               drop_pos = GTK_TREE_VIEW_DROP_BEFORE;
+                       if (drop_pos == GTK_TREE_VIEW_DROP_INTO_OR_AFTER)
+                               drop_pos = GTK_TREE_VIEW_DROP_AFTER;
+               }
                if (gtk_tree_model_get_iter (dstmodel, &dstiter, path))
                {
                        GtkTreeIter iter;
                        GtkTreePath *dstpath = NULL;
 
-                       if ((src_ptype & PRESETS_FOLDER) || 
-                               gtk_tree_path_get_depth(path) > 1)
-                       {
-                               switch (drop_pos)
-                               {
-                                       case GTK_TREE_VIEW_DROP_BEFORE:
-                                       case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
-                                               gtk_tree_store_insert_before(GTK_TREE_STORE (dstmodel), 
-                                                                                                       &iter, NULL, &dstiter);
-                                               break;
-
-                                       case GTK_TREE_VIEW_DROP_AFTER:
-                                       case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
-                                               gtk_tree_store_insert_after(GTK_TREE_STORE (dstmodel), 
-                                                                                                       &iter, NULL, &dstiter);
-                                               break;
-
-                                       default:
-                                               break;
-                               }
-                       }
-                       else
+                       switch (drop_pos)
                        {
-                               switch (drop_pos)
-                               {
-                                       case GTK_TREE_VIEW_DROP_BEFORE:
-                                               gtk_tree_store_insert_before(GTK_TREE_STORE (dstmodel), 
-                                                                                                       &iter, NULL, &dstiter);
-                                               break;
-
-                                       case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
-                                               gtk_tree_store_insert(GTK_TREE_STORE (dstmodel), 
-                                                                                                       &iter, &dstiter, 0);
-                                               break;
-
-                                       case GTK_TREE_VIEW_DROP_AFTER:
-                                               gtk_tree_store_insert_after(GTK_TREE_STORE (dstmodel), 
-                                                                                                       &iter, NULL, &dstiter);
-                                               break;
-
-                                       case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
-                                               gtk_tree_store_insert_after(GTK_TREE_STORE (dstmodel), 
-                                                                                                       &iter, &dstiter, 0);
-                                               break;
-
-                                       default:
-                                               break;
-                               }
+                               case GTK_TREE_VIEW_DROP_BEFORE:
+                                       gtk_tree_store_insert_before(GTK_TREE_STORE (dstmodel), 
+                                                                                               &iter, NULL, &dstiter);
+                                       break;
+
+                               case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
+                                       gtk_tree_store_insert(GTK_TREE_STORE (dstmodel), 
+                                                                                               &iter, &dstiter, 0);
+                                       break;
+
+                               case GTK_TREE_VIEW_DROP_AFTER:
+                                       gtk_tree_store_insert_after(GTK_TREE_STORE (dstmodel), 
+                                                                                               &iter, NULL, &dstiter);
+                                       break;
+
+                               case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
+                                       gtk_tree_store_insert_after(GTK_TREE_STORE (dstmodel), 
+                                                                                               &iter, &dstiter, 0);
+                                       break;
+
+                               default:
+                                       break;
                        }
-                       presets_list_update_item(ud, presetsPlist, &iter, 
-                               src_folder_pos, src_pos);
 
                        dstpath = gtk_tree_model_get_path (dstmodel, &iter);
-                       indices = gtk_tree_path_get_indices(dstpath);
-                       dst_folder_pos = indices[0];
-                       dst_pos = -1;
-                       if (gtk_tree_path_get_depth(dstpath) > 1)
-                               dst_pos = indices[1];
+                       dst_indices = gtk_tree_path_get_indices(dstpath);
+                       dst_len = gtk_tree_path_get_depth(dstpath);
+                       ghb_presets_insert(presetsPlist, preset, dst_indices, dst_len);
                        gtk_tree_path_free(dstpath);
-                       if (dst_pos != -1)
-                       {
-                               dict = presets_get_dict(presetsPlist, dst_folder_pos, -1);
-                               presets = ghb_dict_lookup(dict, "preset_folder");
-                               ghb_array_insert(presets, dst_pos, preset);
-                       }
-                       else
-                       {
-                               ghb_array_insert(presetsPlist, dst_folder_pos, preset);
-                       }
 
                        srcpath = gtk_tree_model_get_path (srcmodel, &srciter);
-                       indices = gtk_tree_path_get_indices(srcpath);
-                       src_folder_pos = indices[0];
-                       src_pos = -1;
-                       if (gtk_tree_path_get_depth(srcpath) > 1)
-                               src_pos = indices[1];
+                       src_indices = gtk_tree_path_get_indices(srcpath);
+                       src_len = gtk_tree_path_get_depth(srcpath);
+                       ghb_presets_remove(presetsPlist, src_indices, src_len);
                        gtk_tree_path_free(srcpath);
-                       if (src_pos != -1)
-                       {
-                               dict = presets_get_dict(presetsPlist, src_folder_pos, -1);
-                               presets = ghb_dict_lookup(dict, "preset_folder");
-                               ghb_array_remove(presets, src_pos);
-                       }
-                       else
-                       {
-                               ghb_array_remove(presetsPlist, src_folder_pos);
-                       }
+
                        gtk_tree_store_remove (GTK_TREE_STORE (srcmodel), &srciter);
+
+                       dstpath = gtk_tree_model_get_path (dstmodel, &iter);
+                       dst_indices = gtk_tree_path_get_indices(dstpath);
+                       dst_len = gtk_tree_path_get_depth(dstpath);
+                       presets_list_update_item(ud, dst_indices, dst_len);
+                       gtk_tree_path_free(dstpath);
+
                        store_plist(presetsPlist, "presets");
                }
                gtk_tree_path_free(path);
@@ -2066,15 +2405,20 @@ preset_update_title_deps(signal_user_data_t *ud, ghb_title_info_t *tinfo)
                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));
+       }
 }
 
 void
 presets_list_selection_changed_cb(GtkTreeSelection *selection, signal_user_data_t *ud)
 {
        GtkTreeModel *store;
-       GtkTreeIter iter, piter;
-       gchar *preset;
-       gchar *folder = NULL;
+       GtkTreeIter iter;
        ghb_title_info_t tinfo;
        GtkWidget *widget;
        
@@ -2082,39 +2426,48 @@ presets_list_selection_changed_cb(GtkTreeSelection *selection, signal_user_data_
        widget = GHB_WIDGET (ud->builder, "presets_remove");
        if (gtk_tree_selection_get_selected(selection, &store, &iter))
        {
-               gtk_tree_model_get(store, &iter, 0, &preset, -1);
-               if (gtk_tree_model_iter_parent(store, &piter, &iter))
-               {
-                       gtk_tree_model_get(store, &piter, 0, &folder, -1);
-               }
-               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");
-               gtk_range_set_range (GTK_RANGE(qp), 0, 100);
-               // 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
-               ghb_clear_audio_list(ud);
-               ghb_set_preset(ud, folder, preset);
-               gint titleindex;
-               titleindex = ghb_settings_combo_int(ud->settings, "title");
-               ghb_set_pref_audio(titleindex, ud);
-               ghb_settings_set_boolean(ud->settings, "preset_modified", FALSE);
-               ud->dont_clear_presets = FALSE;
-               if (ghb_get_title_info (&tinfo, titleindex))
+               GtkTreePath *treepath;
+               gint *indices, len, ptype;
+               GValue *path;
+
+               treepath = gtk_tree_model_get_path(store, &iter);
+               indices = gtk_tree_path_get_indices(treepath);
+               len = gtk_tree_path_get_depth(treepath);
+
+               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))
                {
-                       preset_update_title_deps(ud, &tinfo);
-               }
-               ghb_set_scale (ud, GHB_SCALE_KEEP_NONE);
+                       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");
+                       gtk_range_set_range (GTK_RANGE(qp), 0, 100);
+                       // 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
+                       ghb_clear_audio_list(ud);
+                       ghb_set_preset_from_indices(ud, indices, len);
+                       gtk_tree_path_free(treepath);
+                       gint titleindex;
+                       titleindex = ghb_settings_combo_int(ud->settings, "title");
+                       ghb_set_pref_audio(titleindex, ud);
+                       ghb_settings_set_boolean(ud->settings, "preset_modified", FALSE);
+                       ud->dont_clear_presets = FALSE;
+                       if (ghb_get_title_info (&tinfo, titleindex))
+                       {
+                               preset_update_title_deps(ud, &tinfo);
+                       }
+                       ghb_set_scale (ud, GHB_SCALE_KEEP_NONE);
 
-               gint vqmin, vqmax;
-               ghb_vquality_range(ud, &vqmin, &vqmax);
-               gtk_range_set_range (GTK_RANGE(qp), vqmin, vqmax);
-               gtk_widget_set_sensitive(widget, TRUE);
-               g_free(preset);
-               if (folder) g_free(folder);
+                       gint vqmin, vqmax;
+                       ghb_vquality_range(ud, &vqmin, &vqmax);
+                       gtk_range_set_range (GTK_RANGE(qp), vqmin, vqmax);
+                       gtk_widget_set_sensitive(widget, TRUE);
+               }
        }
        else
        {
@@ -2160,22 +2513,22 @@ presets_frame_size_allocate_cb(GtkWidget *widget, GtkAllocation *allocation, sig
 void
 presets_default_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud)
 {
-       gchar *folder, *preset;
-       gint folder_pos, pos;
+       GValue *preset;
+       gint *indices, len;
 
-       folder = ghb_settings_get_string(ud->settings, "folder");
-       preset = ghb_settings_get_string(ud->settings, "preset");
-       if (ghb_presets_find(presetsPlist, folder, preset, &folder_pos, &pos))
+       g_debug("presets_default_clicked_cb ()");
+       preset = ghb_settings_get_value(ud->settings, "preset_selection");
+       indices = ghb_preset_indices_from_path(presetsPlist, preset, &len);
+       if (indices)
        {
-               if (!(ghb_presets_get_type(presetsPlist, folder_pos, pos) & 
+               if (!(ghb_presets_get_type(presetsPlist, indices, len) & 
                        PRESETS_FOLDER))
                {
                        ghb_presets_list_clear_default(ud);
-                       ghb_set_preset_default(ud->settings);
+                       presets_set_default(indices, len);
                        ghb_presets_list_default(ud);
                }
+               g_free(indices);
        }
-       g_free(folder);
-       g_free(preset);
 }
 
index ff11e3f9223a15ea100325ade3474bea7c065b3b..3b2f572b1a88ea288f8e65b924207b2f235abc12 100644 (file)
 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 gchar *folder, const gchar *name, const gchar *key);
+               const GValue *preset, 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();
 void ghb_prefs_to_ui(signal_user_data_t *ud);
 void ghb_prefs_save(GValue *settings);
 void ghb_pref_save(GValue *settings, const gchar *key);
-void ghb_set_preset_default(GValue *settings);
 void ghb_save_queue(GValue *queue);
 GValue* ghb_load_queue();
 void ghb_remove_queue_file(void);;
@@ -34,8 +33,10 @@ gchar* ghb_get_user_config_dir();
 void ghb_settings_to_ui(signal_user_data_t *ud, GValue *dict);
 void ghb_clear_presets_selection(signal_user_data_t *ud);
 void ghb_select_preset(GtkBuilder *builder, 
-               const gchar *folder, const gchar *preset);
-void ghb_presets_list_init( signal_user_data_t *ud, 
-       GValue *presets, const gchar *parent_name, GtkTreeIter *parent);
+               const GValue *preset);
+void ghb_select_default_preset(GtkBuilder *builder);
+void ghb_presets_list_init(signal_user_data_t *ud, gint *indices, gint len);
+GValue* ghb_parse_preset_path(const gchar *path);
+gchar* ghb_preset_path_string(const GValue *path);
 
 #endif // _GHB_PRESETS_H_
index dd3db01c4d89dcb9c1cb69b2e077a66dd3c02f2c..6d56af7a341fe5b66f39c77f6d7c3be479f511e9 100644 (file)
@@ -128,11 +128,13 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
        gboolean markers;
        gboolean preset_modified;
        gint mux;
+       const GValue *path;
 
        container = ghb_settings_combo_option(settings, "container");
        mux = ghb_settings_combo_int(settings, "container");
        preset_modified = ghb_settings_get_boolean(settings, "preset_modified");
-       preset = ghb_settings_get_string(settings, "preset");
+       path = ghb_settings_get_value(settings, "preset");
+       preset = ghb_preset_path_string(path);
        markers = ghb_settings_get_boolean(settings, "chapter_markers");
 
        if (preset_modified)
index cde3769a41d14229c93fbfa00c31a7c4450e7ce5..2ba6d786fe7d699cf39d70b1449ef1fbbaaab80f 100644 (file)
 "                      <key>folder</key>\n"
 "                      <string></string>\n"
 "                      <key>preset</key>\n"
-"                      <string>Normal</string>\n"
+"                      <array>\n"
+"                              <string>Normal</string>\n"
+"                      </array>\n"
+"                      <key>preset_selection</key>\n"
+"                      <array>\n"
+"                              <string>Normal</string>\n"
+"                      </array>\n"
 "                      <key>preset_type_folder</key>\n"
 "                      <false />\n"
 "                      <key>preset_type_normal</key>\n"
 "                      <false />\n"
 "                      <key>chapters_in_destination</key>\n"
 "                      <false />\n"
-"                      <key>default_folder</key>\n"
-"                      <string></string>\n"
-"                      <key>default_preset</key>\n"
-"                      <string>Normal</string>\n"
 "                      <key>default_source</key>\n"
 "                      <string>/dev/dvd</string>\n"
 "                      <key>destination_dir</key>\n"
 "              </dict>\n"
 "              <key>Presets</key>\n"
 "              <dict>\n"
+"                      <key>Default</key>\n"
+"                      <false />\n"
 "                      <key>anamorphic</key>\n"
 "                      <true />\n"
 "                      <key>autocrop</key>\n"
 "                      <true />\n"
 "                      <key>autoscale</key>\n"
-"                      <true />\n"
+"                      <false />\n"
 "                      <key>chapter_markers</key>\n"
 "                      <true />\n"
 "                      <key>constant_rate_factor</key>\n"
 "                      <key>container</key>\n"
 "                      <string>mp4</string>\n"
 "                      <key>deblock</key>\n"
-"                      <real>0</real>\n"
+"                      <integer>0</integer>\n"
 "                      <key>decomb</key>\n"
-"                      <true />\n"
+"                      <false />\n"
 "                      <key>deinterlace</key>\n"
 "                      <string>none</string>\n"
 "                      <key>denoise</key>\n"
 "                      </array>\n"
 "                      <key>preset_description</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"
 "      <key>standard-presets</key>\n"
 "      <array>\n"
 "              <dict>\n"
-"                      <key>anamorphic</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"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>slower</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\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>max_height</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>max_width</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>pref_audio_list</key>\n"
+"                      <key>preset_folder</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"
+"                                      <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"
+"                                      <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"
+"                                              <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"
+"                                      <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"
+"                                      <string>Universal</string>\n"
+"                                      <key>preset_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"
+"                                      <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>59</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"
+"                                      <true />\n"
+"                                      <key>vquality_type_target</key>\n"
+"                                      <false />\n"
+"                                      <key>x264_options</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"
+"                                      <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"
+"                                              <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"
+"                                      <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"
+"                                      <string>AppleTV</string>\n"
+"                                      <key>preset_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"
+"                                      <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>59</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"
+"                                      <true />\n"
+"                                      <key>vquality_type_target</key>\n"
+"                                      <false />\n"
+"                                      <key>x264_options</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"
+"                                      <array>\n"
+"                                              <dict>\n"
+"                                                      <key>Default</key>\n"
+"                                                      <false />\n"
+"                                                      <key>anamorphic</key>\n"
+"                                                      <false />\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>ipod_file</key>\n"
+"                                                      <true />\n"
+"                                                      <key>keep_aspect</key>\n"
+"                                                      <true />\n"
+"                                                      <key>max_height</key>\n"
+"                                                      <integer>0</integer>\n"
+"                                                      <key>max_width</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"
+"                                                      <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"
+"                                                      <string>iPod Classic &amp; iPod Nano</string>\n"
+"                                                      <key>preset_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"
+"                                                      <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"
+"                                                      <true />\n"
+"                                                      <key>vquality_type_constant</key>\n"
+"                                                      <false />\n"
+"                                                      <key>vquality_type_target</key>\n"
+"                                                      <false />\n"
+"                                                      <key>x264_options</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>Default</key>\n"
+"                                                      <false />\n"
+"                                                      <key>anamorphic</key>\n"
+"                                                      <false />\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>ipod_file</key>\n"
+"                                                      <true />\n"
+"                                                      <key>keep_aspect</key>\n"
+"                                                      <true />\n"
+"                                                      <key>max_height</key>\n"
+"                                                      <integer>0</integer>\n"
+"                                                      <key>max_width</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"
+"                                                      <string>HandBrake&apos;s settings for the iPhone and iPod Touch."
+"</string>\n"
+"                                                      <key>preset_name</key>\n"
+"                                                      <string>iPhone &amp; iPod Touch</string>\n"
+"                                                      <key>preset_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"
+"                                                      <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"
+"                                                      <true />\n"
+"                                                      <key>vquality_type_constant</key>\n"
+"                                                      <false />\n"
+"                                                      <key>vquality_type_target</key>\n"
+"                                                      <false />\n"
+"                                                      <key>x264_options</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>Default</key>\n"
+"                                                      <false />\n"
+"                                                      <key>anamorphic</key>\n"
+"                                                      <false />\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>ipod_file</key>\n"
+"                                                      <true />\n"
+"                                                      <key>keep_aspect</key>\n"
+"                                                      <true />\n"
+"                                                      <key>max_height</key>\n"
+"                                                      <integer>0</integer>\n"
+"                                                      <key>max_width</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"
+"                                                      <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"
+"                                                      <string>iPod Legacy</string>\n"
+"                                                      <key>preset_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"
+"                                                      <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"
+"                                                      <true />\n"
+"                                                      <key>vquality_type_constant</key>\n"
+"                                                      <false />\n"
+"                                                      <key>vquality_type_target</key>\n"
+"                                                      <false />\n"
+"                                                      <key>x264_options</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"
+"                                      <string>iPod &amp; iPhone</string>\n"
+"                                      <key>preset_type</key>\n"
+"                                      <integer>2</integer>\n"
+"                              </dict>\n"
+"                              <dict>\n"
+"                                      <key>Default</key>\n"
+"                                      <false />\n"
+"                                      <key>anamorphic</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>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>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>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"
+"                                      <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"
+"                                      <string>QuickTime</string>\n"
+"                                      <key>preset_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"
+"                                      <true />\n"
+"                                      <key>two_pass</key>\n"
+"                                      <true />\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>65</integer>\n"
+"                                      <key>video_target_size</key>\n"
+"                                      <integer>700</integer>\n"
+"                                      <key>vquality_type_bitrate</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"
+"                                      <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_description</key>\n"
-"                      <string>HandBrake&apos;s settings for cartoons, anime, and CGI.</str"
-"ing>\n"
 "                      <key>preset_name</key>\n"
-"                      <string>Animation</string>\n"
+"                      <string>Apple</string>\n"
 "                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>subtitle_lang</key>\n"
-"                      <string>none</string>\n"
-"                      <key>turbo</key>\n"
-"                      <true />\n"
-"                      <key>two_pass</key>\n"
-"                      <true />\n"
-"                      <key>video_bitrate</key>\n"
-"                      <integer>1000</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"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <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</strin"
-"g>\n"
+"                      <integer>2</integer>\n"
 "              </dict>\n"
 "              <dict>\n"
-"                      <key>anamorphic</key>\n"
-"                      <true />\n"
-"                      <key>autoscale</key>\n"
-"                      <true />\n"
-"                      <key>chapter_markers</key>\n"
-"                      <true />\n"
-"                      <key>container</key>\n"
-"                      <string>mp4</string>\n"
-"                      <key>deblock</key>\n"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\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>0</integer>\n"
-"                      <key>pref_audio_list</key>\n"
+"                      <key>preset_folder</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"
+"                                      <key>Default</key>\n"
+"                                      <true />\n"
+"                                      <key>anamorphic</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>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>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>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"
+"                                      <string>HandBrake&apos;s normal, default settings.</string>\n"
+"                                      <key>preset_name</key>\n"
+"                                      <string>Normal</string>\n"
+"                                      <key>preset_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"
+"                                      <true />\n"
+"                                      <key>two_pass</key>\n"
+"                                      <true />\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"
+"                                      <true />\n"
+"                                      <key>vquality_type_constant</key>\n"
+"                                      <false />\n"
+"                                      <key>vquality_type_target</key>\n"
+"                                      <false />\n"
+"                                      <key>x264_options</key>\n"
+"                                      <string>ref=2:bframes=2:me=umh</string>\n"
 "                              </dict>\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"
+"                                      <key>Default</key>\n"
+"                                      <false />\n"
+"                                      <key>anamorphic</key>\n"
+"                                      <false />\n"
+"                                      <key>autocrop</key>\n"
+"                                      <true />\n"
+"                                      <key>autoscale</key>\n"
+"                                      <true />\n"
+"                                      <key>chapter_markers</key>\n"
+"                                      <false />\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>audio_rate</key>\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"
+"                                      <true />\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>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"
+"                                      <string>HandBrake&apos;s traditional, faster, lower-quality settin"
+"gs.</string>\n"
+"                                      <key>preset_name</key>\n"
+"                                      <string>Classic</string>\n"
+"                                      <key>preset_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"
+"                                      <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"
+"                                      <true />\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"
 "                      </array>\n"
-"                      <key>preset_description</key>\n"
-"                      <string>HandBrake&apos;s settings for the AppleTV, including Dolby D"
-"igital 5.1 AC3 sound. Provides a good balance between quality and file "
-"size, and optimizes performance.</string>\n"
 "                      <key>preset_name</key>\n"
-"                      <string>AppleTV</string>\n"
+"                      <string>Basic</string>\n"
 "                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\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>64</integer>\n"
-"                      <key>video_target_size</key>\n"
-"                      <integer>700</integer>\n"
-"                      <key>vquality_type_bitrate</key>\n"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string>bframes=3:ref=1:me=umh:no-fast-pskip=1:trellis=1:cabac=0</st"
-"ring>\n"
+"                      <integer>2</integer>\n"
 "              </dict>\n"
 "              <dict>\n"
-"                      <key>anamorphic</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"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\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>max_height</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>max_width</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>pref_audio_list</key>\n"
+"                      <key>preset_folder</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"
+"                                      <key>Default</key>\n"
+"                                      <false />\n"
+"                                      <key>anamorphic</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"
+"                                      <integer>0</integer>\n"
+"                                      <key>decomb</key>\n"
+"                                      <true />\n"
+"                                      <key>deinterlace</key>\n"
 "                                      <string>none</string>\n"
-"                                      <key>audio_rate</key>\n"
+"                                      <key>denoise</key>\n"
+"                                      <string>none</string>\n"
+"                                      <key>detelecine</key>\n"
+"                                      <true />\n"
+"                                      <key>framerate</key>\n"
+"                                      <string>source</string>\n"
+"                                      <key>grayscale</key>\n"
+"                                      <false />\n"
+"                                      <key>keep_aspect</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>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"
+"                                      <string>HandBrake&apos;s settings for cartoons, anime, and CGI.</s"
+"tring>\n"
+"                                      <key>preset_name</key>\n"
+"                                      <string>Animation</string>\n"
+"                                      <key>preset_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"
+"                                      <true />\n"
+"                                      <key>two_pass</key>\n"
+"                                      <true />\n"
+"                                      <key>video_bitrate</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"
+"                                      <integer>700</integer>\n"
+"                                      <key>vquality_type_bitrate</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"
+"                                      <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>Default</key>\n"
+"                                      <false />\n"
+"                                      <key>anamorphic</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"
+"                                      <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>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>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"
+"                                      <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"
+"                                      <string>Constant Quality Rate</string>\n"
+"                                      <key>preset_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"
+"                                      <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"
+"                                      <integer>700</integer>\n"
+"                                      <key>vquality_type_bitrate</key>\n"
+"                                      <false />\n"
+"                                      <key>vquality_type_constant</key>\n"
+"                                      <true />\n"
+"                                      <key>vquality_type_target</key>\n"
+"                                      <false />\n"
+"                                      <key>x264_options</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>Default</key>\n"
+"                                      <false />\n"
+"                                      <key>anamorphic</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"
+"                                      <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>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>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"
+"                                      <string>HandBrake&apos;s preset for feature films.</string>\n"
+"                                      <key>preset_name</key>\n"
+"                                      <string>Film</string>\n"
+"                                      <key>preset_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"
+"                                      <true />\n"
+"                                      <key>two_pass</key>\n"
+"                                      <true />\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>65</integer>\n"
+"                                      <key>video_target_size</key>\n"
+"                                      <integer>700</integer>\n"
+"                                      <key>vquality_type_bitrate</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"
+"                                      <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>Default</key>\n"
+"                                      <false />\n"
+"                                      <key>anamorphic</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"
+"                                      <integer>0</integer>\n"
+"                                      <key>decomb</key>\n"
+"                                      <true />\n"
+"                                      <key>deinterlace</key>\n"
+"                                      <string>none</string>\n"
+"                                      <key>denoise</key>\n"
+"                                      <string>none</string>\n"
+"                                      <key>detelecine</key>\n"
+"                                      <true />\n"
+"                                      <key>framerate</key>\n"
 "                                      <string>source</string>\n"
+"                                      <key>grayscale</key>\n"
+"                                      <false />\n"
+"                                      <key>keep_aspect</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>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"
+"                                      <string>HandBrake&apos;s settings for video from television.</stri"
+"ng>\n"
+"                                      <key>preset_name</key>\n"
+"                                      <string>Television</string>\n"
+"                                      <key>preset_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"
+"                                      <true />\n"
+"                                      <key>two_pass</key>\n"
+"                                      <true />\n"
+"                                      <key>video_bitrate</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"
+"                                      <integer>700</integer>\n"
+"                                      <key>vquality_type_bitrate</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"
+"                                      <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_description</key>\n"
-"                      <string>HandBrake&apos;s settings maxed out for slowest encoding and"
-" highest quality. Use at your own risk. So slow it&apos;s not just insa"
-"ne...it&apos;s a trip to the looney bin.</string>\n"
 "                      <key>preset_name</key>\n"
-"                      <string>Bedlam</string>\n"
+"                      <string>High Profile</string>\n"
 "                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>subtitle_lang</key>\n"
-"                      <string>none</string>\n"
-"                      <key>turbo</key>\n"
-"                      <true />\n"
-"                      <key>two_pass</key>\n"
-"                      <true />\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"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string>ref=16:mixed-refs:bframes=16:weightb:direct=auto:b-pyramid:m"
-"e=esa:subme=7:me-range=64:analyse=all:8x8dct:trellis=1:no-fast-pskip:no"
-"-dct-decimate:filter=-2,-1</string>\n"
+"                      <integer>2</integer>\n"
 "              </dict>\n"
 "              <dict>\n"
-"                      <key>anamorphic</key>\n"
-"                      <false />\n"
-"                      <key>autocrop</key>\n"
-"                      <true />\n"
-"                      <key>autoscale</key>\n"
-"                      <false />\n"
-"                      <key>chapter_markers</key>\n"
-"                      <true />\n"
-"                      <key>container</key>\n"
-"                      <string>mp4</string>\n"
-"                      <key>deblock</key>\n"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\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"
-"                      <true />\n"
-"                      <key>max_height</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>max_width</key>\n"
-"                      <integer>512</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>source</string>\n"
-"                              </dict>\n"
-"                      </array>\n"
-"                      <key>preset_description</key>\n"
-"                      <string>HandBrake&apos;s preset for impatient people who don&apos;t "
-"care about picture quality.</string>\n"
-"                      <key>preset_name</key>\n"
-"                      <string>Blind</string>\n"
-"                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\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"
-"                      <integer>512</integer>\n"
-"                      <key>video_codec</key>\n"
-"                      <string>ffmpeg</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"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string></string>\n"
-"              </dict>\n"
-"              <dict>\n"
-"                      <key>anamorphic</key>\n"
-"                      <false />\n"
-"                      <key>autocrop</key>\n"
-"                      <true />\n"
-"                      <key>autoscale</key>\n"
-"                      <false />\n"
-"                      <key>chapter_markers</key>\n"
-"                      <true />\n"
-"                      <key>container</key>\n"
-"                      <string>mp4</string>\n"
-"                      <key>deblock</key>\n"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\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"
-"                      <true />\n"
-"                      <key>max_height</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>max_width</key>\n"
-"                      <integer>640</integer>\n"
-"                      <key>pref_audio_list</key>\n"
+"                      <key>preset_folder</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"
+"                                      <key>Default</key>\n"
+"                                      <false />\n"
+"                                      <key>anamorphic</key>\n"
+"                                      <false />\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"
+"                                      <true />\n"
+"                                      <key>max_height</key>\n"
+"                                      <integer>208</integer>\n"
+"                                      <key>max_width</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"
+"                                      <string>HandBrake&apos;s settings for the Sony PlayStation Portabl"
+"e.</string>\n"
+"                                      <key>preset_name</key>\n"
+"                                      <string>PSP</string>\n"
+"                                      <key>preset_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"
+"                                      <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"
+"                                      <true />\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"
-"                      </array>\n"
-"                      <key>preset_description</key>\n"
-"                      <string>HandBrake&apos;s preset for people without a lot of money to"
-" waste on hard drives. Tries to maximize quality for burning to CDs, so"
-" you can party like it&apos;s 1999.</string>\n"
-"                      <key>preset_name</key>\n"
-"                      <string>Broke</string>\n"
-"                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>subtitle_lang</key>\n"
-"                      <string>none</string>\n"
-"                      <key>turbo</key>\n"
-"                      <true />\n"
-"                      <key>two_pass</key>\n"
-"                      <true />\n"
-"                      <key>video_bitrate</key>\n"
-"                      <integer>1600</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>695</integer>\n"
-"                      <key>vquality_type_target</key>\n"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string>ref=3:mixed-refs:bframes=16:weightb:b-pyramid:direct=auto:me"
-"=umh:trellis=1:analyse=all:8x8dct:no-fast-pskip</string>\n"
-"              </dict>\n"
-"              <dict>\n"
-"                      <key>anamorphic</key>\n"
-"                      <false />\n"
-"                      <key>autocrop</key>\n"
-"                      <true />\n"
-"                      <key>autoscale</key>\n"
-"                      <true />\n"
-"                      <key>chapter_markers</key>\n"
-"                      <false />\n"
-"                      <key>container</key>\n"
-"                      <string>mp4</string>\n"
-"                      <key>deblock</key>\n"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\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"
-"                      <true />\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>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>Default</key>\n"
+"                                      <false />\n"
+"                                      <key>anamorphic</key>\n"
+"                                      <true />\n"
+"                                      <key>autocrop</key>\n"
+"                                      <false />\n"
+"                                      <key>autoscale</key>\n"
+"                                      <true />\n"
+"                                      <key>chapter_markers</key>\n"
+"                                      <false />\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>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>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"
+"                                      <string>HandBrake&apos;s settings for the Sony PlayStation 3.</str"
+"ing>\n"
+"                                      <key>preset_name</key>\n"
+"                                      <string>PS3</string>\n"
+"                                      <key>preset_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"
+"                                      <true />\n"
+"                                      <key>vquality_type_constant</key>\n"
+"                                      <false />\n"
+"                                      <key>vquality_type_target</key>\n"
+"                                      <false />\n"
+"                                      <key>x264_options</key>\n"
+"                                      <string>level=41:me=umh</string>\n"
 "                              </dict>\n"
-"                      </array>\n"
-"                      <key>preset_description</key>\n"
-"                      <string>HandBrake&apos;s traditional, faster, lower-quality settings"
-".</string>\n"
-"                      <key>preset_name</key>\n"
-"                      <string>Classic</string>\n"
-"                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\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>64</integer>\n"
-"                      <key>video_target_size</key>\n"
-"                      <integer>700</integer>\n"
-"                      <key>vquality_type_bitrate</key>\n"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string></string>\n"
-"              </dict>\n"
-"              <dict>\n"
-"                      <key>anamorphic</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"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\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>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>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"
+"                                      <key>Default</key>\n"
+"                                      <false />\n"
+"                                      <key>anamorphic</key>\n"
+"                                      <true />\n"
+"                                      <key>autoscale</key>\n"
+"                                      <true />\n"
+"                                      <key>chapter_markers</key>\n"
+"                                      <false />\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>audio_rate</key>\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>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>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"
+"                                      <string>HandBrake&apos;s settings for the Microsoft Xbox 360.</str"
+"ing>\n"
+"                                      <key>preset_name</key>\n"
+"                                      <string>Xbox 360</string>\n"
+"                                      <key>preset_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"
+"                                      <true />\n"
+"                                      <key>vquality_type_constant</key>\n"
+"                                      <false />\n"
+"                                      <key>vquality_type_target</key>\n"
+"                                      <false />\n"
+"                                      <key>x264_options</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_description</key>\n"
-"                      <string>HandBrake&apos;s preset for consistently excellent quality i"
-"n one pass, with the downside of entirely unpredictable file sizes and "
-"bitrates.</string>\n"
 "                      <key>preset_name</key>\n"
-"                      <string>Constant Quality Rate</string>\n"
+"                      <string>Gaming Consoles</string>\n"
 "                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\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"
-"                      <integer>2000</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_constant</key>\n"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string>ref=3:mixed-refs:bframes=3:b-pyramid:weightb:filter=-2,-1:tr"
-"ellis=1:analyse=all:8x8dct:me=umh</string>\n"
-"              </dict>\n"
-"              <dict>\n"
-"                      <key>anamorphic</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"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\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>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>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"
-"                      <string>HandBrake&apos;s preset for true high profile x264 quality. "
-"A good balance of quality and speed, based on community standards found"
-" in the wild. This preset will give you a much better sense of x264&apo"
-"s;s capabilities than vanilla main profile.</string>\n"
-"                      <key>preset_name</key>\n"
-"                      <string>Deux Six Quatre</string>\n"
-"                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>subtitle_lang</key>\n"
-"                      <string>none</string>\n"
-"                      <key>turbo</key>\n"
-"                      <true />\n"
-"                      <key>two_pass</key>\n"
-"                      <true />\n"
-"                      <key>video_bitrate</key>\n"
-"                      <integer>1600</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"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string>ref=5:mixed-refs:bframes=3:weightb:b-pyramid:me=umh:subme=7:"
-"trellis=1:analyse=all:8x8dct:no-fast-pskip</string>\n"
-"              </dict>\n"
-"              <dict>\n"
-"                      <key>anamorphic</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"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\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>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>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"
-"                      <string>HandBrake&apos;s preset for feature films.</string>\n"
-"                      <key>preset_name</key>\n"
-"                      <string>Film</string>\n"
-"                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>subtitle_lang</key>\n"
-"                      <string>none</string>\n"
-"                      <key>turbo</key>\n"
-"                      <true />\n"
-"                      <key>two_pass</key>\n"
-"                      <true />\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"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string>ref=3:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me="
-"umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip</string>\n"
-"              </dict>\n"
-"              <dict>\n"
-"                      <key>anamorphic</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>mp4</string>\n"
-"                      <key>deblock</key>\n"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\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>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>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"
-"                      <string>HandBrake&apos;s normal, default settings.</string>\n"
-"                      <key>preset_name</key>\n"
-"                      <string>Normal</string>\n"
-"                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>subtitle_lang</key>\n"
-"                      <string>none</string>\n"
-"                      <key>turbo</key>\n"
-"                      <true />\n"
-"                      <key>two_pass</key>\n"
-"                      <true />\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>64</integer>\n"
-"                      <key>video_target_size</key>\n"
-"                      <integer>700</integer>\n"
-"                      <key>vquality_type_bitrate</key>\n"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string>ref=2:bframes=2:me=umh</string>\n"
-"              </dict>\n"
-"              <dict>\n"
-"                      <key>anamorphic</key>\n"
-"                      <true />\n"
-"                      <key>autoscale</key>\n"
-"                      <true />\n"
-"                      <key>chapter_markers</key>\n"
-"                      <false />\n"
-"                      <key>container</key>\n"
-"                      <string>mp4</string>\n"
-"                      <key>deblock</key>\n"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\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>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>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"
-"                      <string>HandBrake&apos;s settings for the Sony PlayStation 3.</strin"
-"g>\n"
-"                      <key>preset_name</key>\n"
-"                      <string>PS3</string>\n"
-"                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\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>64</integer>\n"
-"                      <key>video_target_size</key>\n"
-"                      <integer>700</integer>\n"
-"                      <key>vquality_type_bitrate</key>\n"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string>level=41:me=umh</string>\n"
-"              </dict>\n"
-"              <dict>\n"
-"                      <key>anamorphic</key>\n"
-"                      <false />\n"
-"                      <key>autocrop</key>\n"
-"                      <true />\n"
-"                      <key>autoscale</key>\n"
-"                      <false />\n"
-"                      <key>chapter_markers</key>\n"
-"                      <true />\n"
-"                      <key>container</key>\n"
-"                      <string>mp4</string>\n"
-"                      <key>deblock</key>\n"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\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"
-"                      <true />\n"
-"                      <key>max_height</key>\n"
-"                      <integer>208</integer>\n"
-"                      <key>max_width</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"
-"                      <string>HandBrake&apos;s settings for the Sony PlayStation Portable."
-"</string>\n"
-"                      <key>preset_name</key>\n"
-"                      <string>PSP</string>\n"
-"                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>subtitle_lang</key>\n"
-"                      <string>none</string>\n"
-"                      <key>two_pass</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>64</integer>\n"
-"                      <key>video_target_size</key>\n"
-"                      <integer>700</integer>\n"
-"                      <key>vquality_type_bitrate</key>\n"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string></string>\n"
-"              </dict>\n"
-"              <dict>\n"
-"                      <key>anamorphic</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>mp4</string>\n"
-"                      <key>deblock</key>\n"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\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>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>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"
-"                      <string>HandBrake&apos;s high quality settings for use with QuickTim"
-"e. It can be slow, so use it when the Normal preset doesn&apos;t look g"
-"ood enough.</string>\n"
-"                      <key>preset_name</key>\n"
-"                      <string>QuickTime</string>\n"
-"                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>subtitle_lang</key>\n"
-"                      <string>none</string>\n"
-"                      <key>turbo</key>\n"
-"                      <true />\n"
-"                      <key>two_pass</key>\n"
-"                      <true />\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>64</integer>\n"
-"                      <key>video_target_size</key>\n"
-"                      <integer>700</integer>\n"
-"                      <key>vquality_type_bitrate</key>\n"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string>ref=3:mixed-refs:bframes=3:weightb:direct=auto:me=umh:analys"
-"e=all:trellis=1:no-fast-pskip</string>\n"
-"              </dict>\n"
-"              <dict>\n"
-"                      <key>anamorphic</key>\n"
-"                      <false />\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"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>slower</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>1</integer>\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"
-"                      <true />\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>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"
-"                      <string>HandBrake&apos;s settings for video from television.</string"
-">\n"
-"                      <key>preset_name</key>\n"
-"                      <string>Television</string>\n"
-"                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>subtitle_lang</key>\n"
-"                      <string>none</string>\n"
-"                      <key>turbo</key>\n"
-"                      <true />\n"
-"                      <key>two_pass</key>\n"
-"                      <true />\n"
-"                      <key>video_bitrate</key>\n"
-"                      <integer>1300</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"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string>ref=3:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me="
-"umh:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip</string>\n"
-"              </dict>\n"
-"              <dict>\n"
-"                      <key>anamorphic</key>\n"
-"                      <true />\n"
-"                      <key>autoscale</key>\n"
-"                      <true />\n"
-"                      <key>chapter_markers</key>\n"
-"                      <false />\n"
-"                      <key>container</key>\n"
-"                      <string>mp4</string>\n"
-"                      <key>deblock</key>\n"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\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>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>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"
-"                      <string>HandBrake&apos;s settings for the Microsoft Xbox 360.</strin"
-"g>\n"
-"                      <key>preset_name</key>\n"
-"                      <string>Xbox 360</string>\n"
-"                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\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>64</integer>\n"
-"                      <key>video_target_size</key>\n"
-"                      <integer>700</integer>\n"
-"                      <key>vquality_type_bitrate</key>\n"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string>level=40:ref=2:mixed-refs:bframes=3:weightb:direct=auto:b-py"
-"ramid:me=umh:analyse=all:no-fast-pskip:filter=-2,-1</string>\n"
-"              </dict>\n"
-"              <dict>\n"
-"                      <key>anamorphic</key>\n"
-"                      <false />\n"
-"                      <key>autocrop</key>\n"
-"                      <true />\n"
-"                      <key>autoscale</key>\n"
-"                      <false />\n"
-"                      <key>chapter_markers</key>\n"
-"                      <true />\n"
-"                      <key>container</key>\n"
-"                      <string>mp4</string>\n"
-"                      <key>deblock</key>\n"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>detelecine</key>\n"
-"                      <false />\n"
-"                      <key>framerate</key>\n"
-"                      <string>source</string>\n"
-"                      <key>grayscale</key>\n"
-"                      <false />\n"
-"                      <key>ipod_file</key>\n"
-"                      <true />\n"
-"                      <key>keep_aspect</key>\n"
-"                      <true />\n"
-"                      <key>max_height</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>max_width</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"
-"                      <string>HandBrake&apos;s settings for the iPhone and iPod Touch.</st"
-"ring>\n"
-"                      <key>preset_name</key>\n"
-"                      <string>iPhone / iPod Touch</string>\n"
-"                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>subtitle_lang</key>\n"
-"                      <string>none</string>\n"
-"                      <key>two_pass</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>64</integer>\n"
-"                      <key>video_target_size</key>\n"
-"                      <integer>700</integer>\n"
-"                      <key>vquality_type_bitrate</key>\n"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string>level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:tr"
-"ellis=1</string>\n"
-"              </dict>\n"
-"              <dict>\n"
-"                      <key>anamorphic</key>\n"
-"                      <false />\n"
-"                      <key>autocrop</key>\n"
-"                      <true />\n"
-"                      <key>autoscale</key>\n"
-"                      <false />\n"
-"                      <key>chapter_markers</key>\n"
-"                      <true />\n"
-"                      <key>container</key>\n"
-"                      <string>mp4</string>\n"
-"                      <key>deblock</key>\n"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>detelecine</key>\n"
-"                      <false />\n"
-"                      <key>framerate</key>\n"
-"                      <string>source</string>\n"
-"                      <key>grayscale</key>\n"
-"                      <false />\n"
-"                      <key>ipod_file</key>\n"
-"                      <true />\n"
-"                      <key>keep_aspect</key>\n"
-"                      <true />\n"
-"                      <key>max_height</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>max_width</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"
-"                      <string>HandBrake&apos;s high resolution settings for the iPod. Good"
-" video quality, great for viewing on a TV using your iPod</string>\n"
-"                      <key>preset_name</key>\n"
-"                      <string>iPod High-Rez</string>\n"
-"                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>subtitle_lang</key>\n"
-"                      <string>none</string>\n"
-"                      <key>two_pass</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>64</integer>\n"
-"                      <key>video_target_size</key>\n"
-"                      <integer>700</integer>\n"
-"                      <key>vquality_type_bitrate</key>\n"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string>level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsiz"
-"e=2000:analyse=all:me=umh:no-fast-pskip=1</string>\n"
-"              </dict>\n"
-"              <dict>\n"
-"                      <key>anamorphic</key>\n"
-"                      <false />\n"
-"                      <key>autocrop</key>\n"
-"                      <true />\n"
-"                      <key>autoscale</key>\n"
-"                      <false />\n"
-"                      <key>chapter_markers</key>\n"
-"                      <true />\n"
-"                      <key>container</key>\n"
-"                      <string>mp4</string>\n"
-"                      <key>deblock</key>\n"
-"                      <real>0</real>\n"
-"                      <key>decomb</key>\n"
-"                      <false />\n"
-"                      <key>deinterlace</key>\n"
-"                      <string>none</string>\n"
-"                      <key>denoise</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>detelecine</key>\n"
-"                      <false />\n"
-"                      <key>framerate</key>\n"
-"                      <string>source</string>\n"
-"                      <key>grayscale</key>\n"
-"                      <false />\n"
-"                      <key>ipod_file</key>\n"
-"                      <true />\n"
-"                      <key>keep_aspect</key>\n"
-"                      <true />\n"
-"                      <key>max_height</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>max_width</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"
-"                      <string>HandBrake&apos;s low resolution settings for the iPod. Optim"
-"ized for great playback on the iPod screen, with smaller file size.</st"
-"ring>\n"
-"                      <key>preset_name</key>\n"
-"                      <string>iPod Low-Rez</string>\n"
-"                      <key>preset_type</key>\n"
-"                      <integer>0</integer>\n"
-"                      <key>subtitle_lang</key>\n"
-"                      <string>none</string>\n"
-"                      <key>two_pass</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>64</integer>\n"
-"                      <key>video_target_size</key>\n"
-"                      <integer>700</integer>\n"
-"                      <key>vquality_type_bitrate</key>\n"
-"                      <true />\n"
-"                      <key>x264_options</key>\n"
-"                      <string>level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize"
-"=2000:analyse=all:me=umh:no-fast-pskip=1</string>\n"
+"                      <integer>2</integer>\n"
 "              </dict>\n"
 "      </array>\n"
 "      <key>widget-deps</key>\n"
index bc7496a0f9f00f7b31231fda942ec30dbb4cb54b..282dced3b8284e1a2063b188f9f02d6c8ab1f5ca 100644 (file)
@@ -4866,7 +4866,13 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
                        <key>folder</key>
                        <string></string>
                        <key>preset</key>
-                       <string>Normal</string>
+                       <array>
+                               <string>Normal</string>
+                       </array>
+                       <key>preset_selection</key>
+                       <array>
+                               <string>Normal</string>
+                       </array>
                        <key>preset_type_folder</key>
                        <false />
                        <key>preset_type_normal</key>
@@ -4922,10 +4928,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
                        <false />
                        <key>chapters_in_destination</key>
                        <false />
-                       <key>default_folder</key>
-                       <string></string>
-                       <key>default_preset</key>
-                       <string>Normal</string>
                        <key>default_source</key>
                        <string>/dev/dvd</string>
                        <key>destination_dir</key>
@@ -4949,12 +4951,14 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
                </dict>
                <key>Presets</key>
                <dict>
+                       <key>Default</key>
+                       <false />
                        <key>anamorphic</key>
                        <true />
                        <key>autocrop</key>
                        <true />
                        <key>autoscale</key>
-                       <true />
+                       <false />
                        <key>chapter_markers</key>
                        <true />
                        <key>constant_rate_factor</key>
@@ -4962,9 +4966,9 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
                        <key>container</key>
                        <string>mp4</string>
                        <key>deblock</key>
-                       <real>0</real>
+                       <integer>0</integer>
                        <key>decomb</key>
-                       <true />
+                       <false />
                        <key>deinterlace</key>
                        <string>none</string>
                        <key>denoise</key>
@@ -5008,6 +5012,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
                        </array>
                        <key>preset_description</key>
                        <string></string>
+                       <key>preset_name</key>
+                       <string></string>
                        <key>preset_type</key>
                        <integer>1</integer>
                        <key>round_dimensions</key>
@@ -5045,1280 +5051,1210 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
        <key>standard-presets</key>
        <array>
                <dict>
-                       <key>anamorphic</key>
-                       <true />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <true />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mkv</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>slower</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <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>preset_folder</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>
+                                       <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>
+                                       <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>
+                                               <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>
+                                       <string>HandBrake&apos;s universally compatible, full resolution settings for all current Apple devices: iPod, iPhone, AppleTV, and Macs</string>
+                                       <key>preset_name</key>
+                                       <string>Universal</string>
+                                       <key>preset_type</key>
+                                       <integer>0</integer>
+                                       <key>round_dimensions</key>
+                                       <true />
+                                       <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>59</integer>
+                                       <key>video_target_size</key>
+                                       <integer>700</integer>
+                                       <key>vquality_type_bitrate</key>
+                                       <false />
+                                       <key>vquality_type_constant</key>
+                                       <true />
+                                       <key>vquality_type_target</key>
+                                       <false />
+                                       <key>x264_options</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>
+                                       <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>
+                                               <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>
+                                       <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>
+                                       <string>AppleTV</string>
+                                       <key>preset_type</key>
+                                       <integer>0</integer>
+                                       <key>round_dimensions</key>
+                                       <true />
+                                       <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>59</integer>
+                                       <key>video_target_size</key>
+                                       <integer>700</integer>
+                                       <key>vquality_type_bitrate</key>
+                                       <false />
+                                       <key>vquality_type_constant</key>
+                                       <true />
+                                       <key>vquality_type_target</key>
+                                       <false />
+                                       <key>x264_options</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>
+                                       <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>ipod_file</key>
+                                                       <true />
+                                                       <key>keep_aspect</key>
+                                                       <true />
+                                                       <key>max_height</key>
+                                                       <integer>0</integer>
+                                                       <key>max_width</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>
+                                                       <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>
+                                                       <string>iPod Classic &amp; iPod Nano</string>
+                                                       <key>preset_type</key>
+                                                       <integer>0</integer>
+                                                       <key>round_dimensions</key>
+                                                       <true />
+                                                       <key>subtitle_lang</key>
+                                                       <string>none</string>
+                                                       <key>two_pass</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>
+                                                       <true />
+                                                       <key>vquality_type_constant</key>
+                                                       <false />
+                                                       <key>vquality_type_target</key>
+                                                       <false />
+                                                       <key>x264_options</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>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>ipod_file</key>
+                                                       <true />
+                                                       <key>keep_aspect</key>
+                                                       <true />
+                                                       <key>max_height</key>
+                                                       <integer>0</integer>
+                                                       <key>max_width</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>
+                                                       <string>HandBrake&apos;s settings for the iPhone and iPod Touch.</string>
+                                                       <key>preset_name</key>
+                                                       <string>iPhone &amp; iPod Touch</string>
+                                                       <key>preset_type</key>
+                                                       <integer>0</integer>
+                                                       <key>round_dimensions</key>
+                                                       <true />
+                                                       <key>subtitle_lang</key>
+                                                       <string>none</string>
+                                                       <key>two_pass</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>
+                                                       <true />
+                                                       <key>vquality_type_constant</key>
+                                                       <false />
+                                                       <key>vquality_type_target</key>
+                                                       <false />
+                                                       <key>x264_options</key>
+                                                       <string>level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:trellis=1</string>
+                                               </dict>
+                                               <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>ipod_file</key>
+                                                       <true />
+                                                       <key>keep_aspect</key>
+                                                       <true />
+                                                       <key>max_height</key>
+                                                       <integer>0</integer>
+                                                       <key>max_width</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>
+                                                       <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>
+                                                       <string>iPod Legacy</string>
+                                                       <key>preset_type</key>
+                                                       <integer>0</integer>
+                                                       <key>round_dimensions</key>
+                                                       <true />
+                                                       <key>subtitle_lang</key>
+                                                       <string>none</string>
+                                                       <key>two_pass</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>
+                                                       <true />
+                                                       <key>vquality_type_constant</key>
+                                                       <false />
+                                                       <key>vquality_type_target</key>
+                                                       <false />
+                                                       <key>x264_options</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>
+                                       <string>iPod &amp; iPhone</string>
+                                       <key>preset_type</key>
+                                       <integer>2</integer>
+                               </dict>
+                               <dict>
+                                       <key>Default</key>
+                                       <false />
+                                       <key>anamorphic</key>
+                                       <true />
+                                       <key>autocrop</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>
+                                       <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>
+                                       <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>
+                                       <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>
+                                       <string>QuickTime</string>
+                                       <key>preset_type</key>
+                                       <integer>0</integer>
+                                       <key>round_dimensions</key>
+                                       <false />
+                                       <key>subtitle_lang</key>
+                                       <string>none</string>
+                                       <key>turbo</key>
+                                       <true />
+                                       <key>two_pass</key>
+                                       <true />
+                                       <key>video_bitrate</key>
+                                       <integer>1800</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>
+                                       <true />
+                                       <key>vquality_type_constant</key>
+                                       <false />
+                                       <key>vquality_type_target</key>
+                                       <false />
+                                       <key>x264_options</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_description</key>
-                       <string>HandBrake&apos;s settings for cartoons, anime, and CGI.</string>
                        <key>preset_name</key>
-                       <string>Animation</string>
+                       <string>Apple</string>
                        <key>preset_type</key>
-                       <integer>0</integer>
-                       <key>subtitle_lang</key>
-                       <string>none</string>
-                       <key>turbo</key>
-                       <true />
-                       <key>two_pass</key>
-                       <true />
-                       <key>video_bitrate</key>
-                       <integer>1000</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>
-                       <true />
-                       <key>x264_options</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</string>
+                       <integer>2</integer>
                </dict>
                <dict>
-                       <key>anamorphic</key>
-                       <true />
-                       <key>autoscale</key>
-                       <true />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mp4</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <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>0</integer>
-                       <key>pref_audio_list</key>
+                       <key>preset_folder</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>
+                                       <key>Default</key>
+                                       <true />
+                                       <key>anamorphic</key>
+                                       <true />
+                                       <key>autocrop</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>
+                                       <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>
+                                       <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>
+                                       <string>HandBrake&apos;s normal, default settings.</string>
+                                       <key>preset_name</key>
+                                       <string>Normal</string>
+                                       <key>preset_type</key>
+                                       <integer>0</integer>
+                                       <key>round_dimensions</key>
+                                       <false />
+                                       <key>subtitle_lang</key>
+                                       <string>none</string>
+                                       <key>turbo</key>
+                                       <true />
+                                       <key>two_pass</key>
+                                       <true />
+                                       <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>
+                                       <true />
+                                       <key>vquality_type_constant</key>
+                                       <false />
+                                       <key>vquality_type_target</key>
+                                       <false />
+                                       <key>x264_options</key>
+                                       <string>ref=2:bframes=2:me=umh</string>
                                </dict>
                                <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>
+                                       <key>Default</key>
+                                       <false />
+                                       <key>anamorphic</key>
+                                       <false />
+                                       <key>autocrop</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>audio_rate</key>
+                                       <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>0</integer>
+                                       <key>max_width</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>
+                                       <string>HandBrake&apos;s traditional, faster, lower-quality settings.</string>
+                                       <key>preset_name</key>
+                                       <string>Classic</string>
+                                       <key>preset_type</key>
+                                       <integer>0</integer>
+                                       <key>round_dimensions</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>
+                                       <true />
+                                       <key>vquality_type_constant</key>
+                                       <false />
+                                       <key>vquality_type_target</key>
+                                       <false />
+                                       <key>x264_options</key>
+                                       <string></string>
                                </dict>
                        </array>
-                       <key>preset_description</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>
-                       <string>AppleTV</string>
+                       <string>Basic</string>
                        <key>preset_type</key>
-                       <integer>0</integer>
-                       <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>64</integer>
-                       <key>video_target_size</key>
-                       <integer>700</integer>
-                       <key>vquality_type_bitrate</key>
-                       <true />
-                       <key>x264_options</key>
-                       <string>bframes=3:ref=1:me=umh:no-fast-pskip=1:trellis=1:cabac=0</string>
+                       <integer>2</integer>
                </dict>
                <dict>
-                       <key>anamorphic</key>
-                       <true />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <true />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mkv</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <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>preset_folder</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>
+                                       <key>Default</key>
+                                       <false />
+                                       <key>anamorphic</key>
+                                       <true />
+                                       <key>autocrop</key>
+                                       <true />
+                                       <key>autoscale</key>
+                                       <true />
+                                       <key>chapter_markers</key>
+                                       <true />
+                                       <key>container</key>
+                                       <string>mkv</string>
+                                       <key>deblock</key>
+                                       <integer>0</integer>
+                                       <key>decomb</key>
+                                       <true />
+                                       <key>deinterlace</key>
                                        <string>none</string>
-                                       <key>audio_rate</key>
+                                       <key>denoise</key>
+                                       <string>none</string>
+                                       <key>detelecine</key>
+                                       <true />
+                                       <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>
+                                       <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>
+                                       <string>HandBrake&apos;s settings for cartoons, anime, and CGI.</string>
+                                       <key>preset_name</key>
+                                       <string>Animation</string>
+                                       <key>preset_type</key>
+                                       <integer>0</integer>
+                                       <key>round_dimensions</key>
+                                       <false />
+                                       <key>subtitle_lang</key>
+                                       <string>none</string>
+                                       <key>turbo</key>
+                                       <true />
+                                       <key>two_pass</key>
+                                       <true />
+                                       <key>video_bitrate</key>
+                                       <integer>1000</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>
+                                       <true />
+                                       <key>vquality_type_constant</key>
+                                       <false />
+                                       <key>vquality_type_target</key>
+                                       <false />
+                                       <key>x264_options</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>Default</key>
+                                       <false />
+                                       <key>anamorphic</key>
+                                       <true />
+                                       <key>autocrop</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>
+                                       <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>
+                                       <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>
+                                       <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>
+                                       <string>Constant Quality Rate</string>
+                                       <key>preset_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>
+                                       <integer>2000</integer>
+                                       <key>video_codec</key>
+                                       <string>x264</string>
+                                       <key>video_quality</key>
+                                       <integer>60</integer>
+                                       <key>video_target_size</key>
+                                       <integer>700</integer>
+                                       <key>vquality_type_bitrate</key>
+                                       <false />
+                                       <key>vquality_type_constant</key>
+                                       <true />
+                                       <key>vquality_type_target</key>
+                                       <false />
+                                       <key>x264_options</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>Default</key>
+                                       <false />
+                                       <key>anamorphic</key>
+                                       <true />
+                                       <key>autocrop</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>
+                                       <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>
+                                       <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>
+                                       <string>HandBrake&apos;s preset for feature films.</string>
+                                       <key>preset_name</key>
+                                       <string>Film</string>
+                                       <key>preset_type</key>
+                                       <integer>0</integer>
+                                       <key>round_dimensions</key>
+                                       <false />
+                                       <key>subtitle_lang</key>
+                                       <string>none</string>
+                                       <key>turbo</key>
+                                       <true />
+                                       <key>two_pass</key>
+                                       <true />
+                                       <key>video_bitrate</key>
+                                       <integer>1800</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>
+                                       <true />
+                                       <key>vquality_type_constant</key>
+                                       <false />
+                                       <key>vquality_type_target</key>
+                                       <false />
+                                       <key>x264_options</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>Default</key>
+                                       <false />
+                                       <key>anamorphic</key>
+                                       <true />
+                                       <key>autocrop</key>
+                                       <true />
+                                       <key>autoscale</key>
+                                       <true />
+                                       <key>chapter_markers</key>
+                                       <true />
+                                       <key>container</key>
+                                       <string>mkv</string>
+                                       <key>deblock</key>
+                                       <integer>0</integer>
+                                       <key>decomb</key>
+                                       <true />
+                                       <key>deinterlace</key>
+                                       <string>none</string>
+                                       <key>denoise</key>
+                                       <string>none</string>
+                                       <key>detelecine</key>
+                                       <true />
+                                       <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>
+                                       <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>
+                                       <string>HandBrake&apos;s settings for video from television.</string>
+                                       <key>preset_name</key>
+                                       <string>Television</string>
+                                       <key>preset_type</key>
+                                       <integer>0</integer>
+                                       <key>round_dimensions</key>
+                                       <false />
+                                       <key>subtitle_lang</key>
+                                       <string>none</string>
+                                       <key>turbo</key>
+                                       <true />
+                                       <key>two_pass</key>
+                                       <true />
+                                       <key>video_bitrate</key>
+                                       <integer>1300</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>
+                                       <true />
+                                       <key>vquality_type_constant</key>
+                                       <false />
+                                       <key>vquality_type_target</key>
+                                       <false />
+                                       <key>x264_options</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_description</key>
-                       <string>HandBrake&apos;s settings maxed out for slowest encoding and highest quality. Use at your own risk. So slow it&apos;s not just insane...it&apos;s a trip to the looney bin.</string>
                        <key>preset_name</key>
-                       <string>Bedlam</string>
+                       <string>High Profile</string>
                        <key>preset_type</key>
-                       <integer>0</integer>
-                       <key>subtitle_lang</key>
-                       <string>none</string>
-                       <key>turbo</key>
-                       <true />
-                       <key>two_pass</key>
-                       <true />
-                       <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>
-                       <true />
-                       <key>x264_options</key>
-                       <string>ref=16:mixed-refs:bframes=16:weightb:direct=auto:b-pyramid:me=esa:subme=7:me-range=64:analyse=all:8x8dct:trellis=1:no-fast-pskip:no-dct-decimate:filter=-2,-1</string>
+                       <integer>2</integer>
                </dict>
                <dict>
-                       <key>anamorphic</key>
-                       <false />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <false />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mp4</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <key>detelecine</key>
-                       <false />
-                       <key>framerate</key>
-                       <string>source</string>
-                       <key>grayscale</key>
-                       <false />
-                       <key>keep_aspect</key>
-                       <true />
-                       <key>max_height</key>
-                       <integer>0</integer>
-                       <key>max_width</key>
-                       <integer>512</integer>
-                       <key>pref_audio_list</key>
+                       <key>preset_folder</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>source</string>
-                               </dict>
-                       </array>
-                       <key>preset_description</key>
-                       <string>HandBrake&apos;s preset for impatient people who don&apos;t care about picture quality.</string>
-                       <key>preset_name</key>
-                       <string>Blind</string>
-                       <key>preset_type</key>
-                       <integer>0</integer>
-                       <key>subtitle_lang</key>
-                       <string>none</string>
-                       <key>turbo</key>
-                       <false />
-                       <key>two_pass</key>
-                       <false />
-                       <key>video_bitrate</key>
-                       <integer>512</integer>
-                       <key>video_codec</key>
-                       <string>ffmpeg</string>
-                       <key>video_quality</key>
-                       <integer>64</integer>
-                       <key>video_target_size</key>
-                       <integer>700</integer>
-                       <key>vquality_type_bitrate</key>
-                       <true />
-                       <key>x264_options</key>
-                       <string></string>
-               </dict>
-               <dict>
-                       <key>anamorphic</key>
-                       <false />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <false />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mp4</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <key>detelecine</key>
-                       <false />
-                       <key>framerate</key>
-                       <string>source</string>
-                       <key>grayscale</key>
-                       <false />
-                       <key>keep_aspect</key>
-                       <true />
-                       <key>max_height</key>
-                       <integer>0</integer>
-                       <key>max_width</key>
-                       <integer>640</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>source</string>
-                               </dict>
-                       </array>
-                       <key>preset_description</key>
-                       <string>HandBrake&apos;s preset for people without a lot of money to waste on hard drives. Tries to maximize quality for burning to CDs, so you can party like it&apos;s 1999.</string>
-                       <key>preset_name</key>
-                       <string>Broke</string>
-                       <key>preset_type</key>
-                       <integer>0</integer>
-                       <key>subtitle_lang</key>
-                       <string>none</string>
-                       <key>turbo</key>
-                       <true />
-                       <key>two_pass</key>
-                       <true />
-                       <key>video_bitrate</key>
-                       <integer>1600</integer>
-                       <key>video_codec</key>
-                       <string>x264</string>
-                       <key>video_quality</key>
-                       <integer>64</integer>
-                       <key>video_target_size</key>
-                       <integer>695</integer>
-                       <key>vquality_type_target</key>
-                       <true />
-                       <key>x264_options</key>
-                       <string>ref=3:mixed-refs:bframes=16:weightb:b-pyramid:direct=auto:me=umh:trellis=1:analyse=all:8x8dct:no-fast-pskip</string>
-               </dict>
-               <dict>
-                       <key>anamorphic</key>
-                       <false />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <true />
-                       <key>chapter_markers</key>
-                       <false />
-                       <key>container</key>
-                       <string>mp4</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <key>detelecine</key>
-                       <false />
-                       <key>framerate</key>
-                       <string>source</string>
-                       <key>grayscale</key>
-                       <false />
-                       <key>keep_aspect</key>
-                       <true />
-                       <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>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>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>
+                                       <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>
+                                       <string>HandBrake&apos;s settings for the Sony PlayStation Portable.</string>
+                                       <key>preset_name</key>
+                                       <string>PSP</string>
+                                       <key>preset_type</key>
+                                       <integer>0</integer>
+                                       <key>round_dimensions</key>
+                                       <true />
+                                       <key>subtitle_lang</key>
+                                       <string>none</string>
+                                       <key>two_pass</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>
+                                       <true />
+                                       <key>vquality_type_constant</key>
+                                       <false />
+                                       <key>vquality_type_target</key>
+                                       <false />
+                                       <key>x264_options</key>
+                                       <string></string>
                                </dict>
-                       </array>
-                       <key>preset_description</key>
-                       <string>HandBrake&apos;s traditional, faster, lower-quality settings.</string>
-                       <key>preset_name</key>
-                       <string>Classic</string>
-                       <key>preset_type</key>
-                       <integer>0</integer>
-                       <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>64</integer>
-                       <key>video_target_size</key>
-                       <integer>700</integer>
-                       <key>vquality_type_bitrate</key>
-                       <true />
-                       <key>x264_options</key>
-                       <string></string>
-               </dict>
-               <dict>
-                       <key>anamorphic</key>
-                       <true />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <true />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mkv</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <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>
-                       <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>
+                                       <key>Default</key>
+                                       <false />
+                                       <key>anamorphic</key>
+                                       <true />
+                                       <key>autocrop</key>
+                                       <false />
+                                       <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>audio_rate</key>
+                                       <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>
+                                       <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>
+                                       <string>HandBrake&apos;s settings for the Sony PlayStation 3.</string>
+                                       <key>preset_name</key>
+                                       <string>PS3</string>
+                                       <key>preset_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>
+                                       <true />
+                                       <key>vquality_type_constant</key>
+                                       <false />
+                                       <key>vquality_type_target</key>
+                                       <false />
+                                       <key>x264_options</key>
+                                       <string>level=41:me=umh</string>
                                </dict>
-                       </array>
-                       <key>preset_description</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>
-                       <string>Constant Quality Rate</string>
-                       <key>preset_type</key>
-                       <integer>0</integer>
-                       <key>subtitle_lang</key>
-                       <string>none</string>
-                       <key>turbo</key>
-                       <false />
-                       <key>two_pass</key>
-                       <false />
-                       <key>video_bitrate</key>
-                       <integer>2000</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_constant</key>
-                       <true />
-                       <key>x264_options</key>
-                       <string>ref=3:mixed-refs:bframes=3:b-pyramid:weightb:filter=-2,-1:trellis=1:analyse=all:8x8dct:me=umh</string>
-               </dict>
-               <dict>
-                       <key>anamorphic</key>
-                       <true />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <true />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mkv</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <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>
-                       <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>
+                                       <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>audio_rate</key>
+                                       <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>
+                                       <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>
+                                       <string>HandBrake&apos;s settings for the Microsoft Xbox 360.</string>
+                                       <key>preset_name</key>
+                                       <string>Xbox 360</string>
+                                       <key>preset_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>
+                                       <true />
+                                       <key>vquality_type_constant</key>
+                                       <false />
+                                       <key>vquality_type_target</key>
+                                       <false />
+                                       <key>x264_options</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_description</key>
-                       <string>HandBrake&apos;s preset for true high profile x264 quality. A good balance of quality and speed, based on community standards found in the wild. This preset will give you a much better sense of x264&apos;s capabilities than vanilla main profile.</string>
                        <key>preset_name</key>
-                       <string>Deux Six Quatre</string>
+                       <string>Gaming Consoles</string>
                        <key>preset_type</key>
-                       <integer>0</integer>
-                       <key>subtitle_lang</key>
-                       <string>none</string>
-                       <key>turbo</key>
-                       <true />
-                       <key>two_pass</key>
-                       <true />
-                       <key>video_bitrate</key>
-                       <integer>1600</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>
-                       <true />
-                       <key>x264_options</key>
-                       <string>ref=5:mixed-refs:bframes=3:weightb:b-pyramid:me=umh:subme=7:trellis=1:analyse=all:8x8dct:no-fast-pskip</string>
-               </dict>
-               <dict>
-                       <key>anamorphic</key>
-                       <true />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <true />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mkv</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <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>
-                       <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>
-                       <string>HandBrake&apos;s preset for feature films.</string>
-                       <key>preset_name</key>
-                       <string>Film</string>
-                       <key>preset_type</key>
-                       <integer>0</integer>
-                       <key>subtitle_lang</key>
-                       <string>none</string>
-                       <key>turbo</key>
-                       <true />
-                       <key>two_pass</key>
-                       <true />
-                       <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>
-                       <true />
-                       <key>x264_options</key>
-                       <string>ref=3:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip</string>
-               </dict>
-               <dict>
-                       <key>anamorphic</key>
-                       <true />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <true />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mp4</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <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>
-                       <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>
-                       <string>HandBrake&apos;s normal, default settings.</string>
-                       <key>preset_name</key>
-                       <string>Normal</string>
-                       <key>preset_type</key>
-                       <integer>0</integer>
-                       <key>subtitle_lang</key>
-                       <string>none</string>
-                       <key>turbo</key>
-                       <true />
-                       <key>two_pass</key>
-                       <true />
-                       <key>video_bitrate</key>
-                       <integer>1500</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>
-                       <true />
-                       <key>x264_options</key>
-                       <string>ref=2:bframes=2:me=umh</string>
-               </dict>
-               <dict>
-                       <key>anamorphic</key>
-                       <true />
-                       <key>autoscale</key>
-                       <true />
-                       <key>chapter_markers</key>
-                       <false />
-                       <key>container</key>
-                       <string>mp4</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <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>
-                       <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>
-                       <string>HandBrake&apos;s settings for the Sony PlayStation 3.</string>
-                       <key>preset_name</key>
-                       <string>PS3</string>
-                       <key>preset_type</key>
-                       <integer>0</integer>
-                       <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>64</integer>
-                       <key>video_target_size</key>
-                       <integer>700</integer>
-                       <key>vquality_type_bitrate</key>
-                       <true />
-                       <key>x264_options</key>
-                       <string>level=41:me=umh</string>
-               </dict>
-               <dict>
-                       <key>anamorphic</key>
-                       <false />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <false />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mp4</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <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>
-                       <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>
-                       <string>HandBrake&apos;s settings for the Sony PlayStation Portable.</string>
-                       <key>preset_name</key>
-                       <string>PSP</string>
-                       <key>preset_type</key>
-                       <integer>0</integer>
-                       <key>subtitle_lang</key>
-                       <string>none</string>
-                       <key>two_pass</key>
-                       <false />
-                       <key>video_bitrate</key>
-                       <integer>1024</integer>
-                       <key>video_codec</key>
-                       <string>ffmpeg</string>
-                       <key>video_quality</key>
-                       <integer>64</integer>
-                       <key>video_target_size</key>
-                       <integer>700</integer>
-                       <key>vquality_type_bitrate</key>
-                       <true />
-                       <key>x264_options</key>
-                       <string></string>
-               </dict>
-               <dict>
-                       <key>anamorphic</key>
-                       <true />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <true />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mp4</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <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>
-                       <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>
-                       <string>HandBrake&apos;s high quality 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>
-                       <string>QuickTime</string>
-                       <key>preset_type</key>
-                       <integer>0</integer>
-                       <key>subtitle_lang</key>
-                       <string>none</string>
-                       <key>turbo</key>
-                       <true />
-                       <key>two_pass</key>
-                       <true />
-                       <key>video_bitrate</key>
-                       <integer>2000</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>
-                       <true />
-                       <key>x264_options</key>
-                       <string>ref=3:mixed-refs:bframes=3:weightb:direct=auto:me=umh:analyse=all:trellis=1:no-fast-pskip</string>
-               </dict>
-               <dict>
-                       <key>anamorphic</key>
-                       <false />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <true />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mkv</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>slower</string>
-                       <key>denoise</key>
-                       <integer>1</integer>
-                       <key>detelecine</key>
-                       <false />
-                       <key>framerate</key>
-                       <string>source</string>
-                       <key>grayscale</key>
-                       <false />
-                       <key>keep_aspect</key>
-                       <true />
-                       <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>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>
-                       <string>HandBrake&apos;s settings for video from television.</string>
-                       <key>preset_name</key>
-                       <string>Television</string>
-                       <key>preset_type</key>
-                       <integer>0</integer>
-                       <key>subtitle_lang</key>
-                       <string>none</string>
-                       <key>turbo</key>
-                       <true />
-                       <key>two_pass</key>
-                       <true />
-                       <key>video_bitrate</key>
-                       <integer>1300</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>
-                       <true />
-                       <key>x264_options</key>
-                       <string>ref=3:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me=umh:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip</string>
-               </dict>
-               <dict>
-                       <key>anamorphic</key>
-                       <true />
-                       <key>autoscale</key>
-                       <true />
-                       <key>chapter_markers</key>
-                       <false />
-                       <key>container</key>
-                       <string>mp4</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <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>
-                       <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>
-                       <string>HandBrake&apos;s settings for the Microsoft Xbox 360.</string>
-                       <key>preset_name</key>
-                       <string>Xbox 360</string>
-                       <key>preset_type</key>
-                       <integer>0</integer>
-                       <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>64</integer>
-                       <key>video_target_size</key>
-                       <integer>700</integer>
-                       <key>vquality_type_bitrate</key>
-                       <true />
-                       <key>x264_options</key>
-                       <string>level=40:ref=2:mixed-refs:bframes=3:weightb:direct=auto:b-pyramid:me=umh:analyse=all:no-fast-pskip:filter=-2,-1</string>
-               </dict>
-               <dict>
-                       <key>anamorphic</key>
-                       <false />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <false />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mp4</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <key>detelecine</key>
-                       <false />
-                       <key>framerate</key>
-                       <string>source</string>
-                       <key>grayscale</key>
-                       <false />
-                       <key>ipod_file</key>
-                       <true />
-                       <key>keep_aspect</key>
-                       <true />
-                       <key>max_height</key>
-                       <integer>0</integer>
-                       <key>max_width</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>
-                       <string>HandBrake&apos;s settings for the iPhone and iPod Touch.</string>
-                       <key>preset_name</key>
-                       <string>iPhone / iPod Touch</string>
-                       <key>preset_type</key>
-                       <integer>0</integer>
-                       <key>subtitle_lang</key>
-                       <string>none</string>
-                       <key>two_pass</key>
-                       <false />
-                       <key>video_bitrate</key>
-                       <integer>960</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>
-                       <true />
-                       <key>x264_options</key>
-                       <string>level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:trellis=1</string>
-               </dict>
-               <dict>
-                       <key>anamorphic</key>
-                       <false />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <false />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mp4</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <key>detelecine</key>
-                       <false />
-                       <key>framerate</key>
-                       <string>source</string>
-                       <key>grayscale</key>
-                       <false />
-                       <key>ipod_file</key>
-                       <true />
-                       <key>keep_aspect</key>
-                       <true />
-                       <key>max_height</key>
-                       <integer>0</integer>
-                       <key>max_width</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>
-                       <string>HandBrake&apos;s high resolution settings for the iPod. Good video quality, great for viewing on a TV using your iPod</string>
-                       <key>preset_name</key>
-                       <string>iPod High-Rez</string>
-                       <key>preset_type</key>
-                       <integer>0</integer>
-                       <key>subtitle_lang</key>
-                       <string>none</string>
-                       <key>two_pass</key>
-                       <false />
-                       <key>video_bitrate</key>
-                       <integer>1500</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>
-                       <true />
-                       <key>x264_options</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>
-               <dict>
-                       <key>anamorphic</key>
-                       <false />
-                       <key>autocrop</key>
-                       <true />
-                       <key>autoscale</key>
-                       <false />
-                       <key>chapter_markers</key>
-                       <true />
-                       <key>container</key>
-                       <string>mp4</string>
-                       <key>deblock</key>
-                       <real>0</real>
-                       <key>decomb</key>
-                       <false />
-                       <key>deinterlace</key>
-                       <string>none</string>
-                       <key>denoise</key>
-                       <integer>0</integer>
-                       <key>detelecine</key>
-                       <false />
-                       <key>framerate</key>
-                       <string>source</string>
-                       <key>grayscale</key>
-                       <false />
-                       <key>ipod_file</key>
-                       <true />
-                       <key>keep_aspect</key>
-                       <true />
-                       <key>max_height</key>
-                       <integer>0</integer>
-                       <key>max_width</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>
-                       <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>
-                       <string>iPod Low-Rez</string>
-                       <key>preset_type</key>
-                       <integer>0</integer>
-                       <key>subtitle_lang</key>
-                       <string>none</string>
-                       <key>two_pass</key>
-                       <false />
-                       <key>video_bitrate</key>
-                       <integer>700</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>
-                       <true />
-                       <key>x264_options</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>
+                       <integer>2</integer>
                </dict>
        </array>
        <key>widget-deps</key>
index e3bec95ea6bfb4b10769905b2ae48863c52c6f21..4cb797fe158cb82216f361d1cb14d26a885ffdf9 100644 (file)
@@ -290,8 +290,18 @@ ghb_widget_value(GtkWidget *widget)
        else if (type == GTK_TYPE_HSCALE)
        {
                gdouble dval;
+               gint digits;
+
+               digits = gtk_scale_get_digits(GTK_SCALE(widget));
                dval = gtk_range_get_value(GTK_RANGE(widget));
-               value = ghb_double_value_new(dval);
+               if (digits)
+               {
+                       value = ghb_double_value_new(dval);
+               }
+               else
+               {
+                       value = ghb_int_value_new(dval);
+               }
        }
        else if (type == GTK_TYPE_TEXT_VIEW)
        {
index 9d147d58ad52b8891ddad3bcc95f309e968abb4b..3238466d0dc8a69f8510776c59365aa921809239 100644 (file)
 <plist version="1.0">
 <array>
        <dict>
-               <key>preset_name</key>
-               <string>Animation</string>
-               <key>anamorphic</key>
-               <true />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <true />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mkv</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>slower</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <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>preset_folder</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>
-               <string>HandBrake's settings for cartoons, anime, and CGI.</string>
-               <key>preset_type</key>
-               <integer>0</integer>
-               <key>subtitle_lang</key>
-               <string>none</string>
-               <key>turbo</key>
-               <true />
-               <key>two_pass</key>
-               <true />
-               <key>video_bitrate</key>
-               <integer>1000</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>
-               <true />
-               <key>x264_options</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</string>
-       </dict>
-       <dict>
-               <key>preset_name</key>
-               <string>AppleTV</string>
-               <key>anamorphic</key>
-               <true />
-               <key>autoscale</key>
-               <true />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mp4</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <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>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>
-                       <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>
+                               <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>audio_rate</key>
+                               <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>
+                               <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>
+                                       <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>
+                               <string>HandBrake&apos;s universally compatible, full resolution settings for all current Apple devices: iPod, iPhone, AppleTV, and Macs</string>
+                               <key>preset_name</key>
+                               <string>Universal</string>
+                               <key>preset_type</key>
+                               <integer>0</integer>
+                               <key>round_dimensions</key>
+                               <true />
+                               <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>59</integer>
+                               <key>video_target_size</key>
+                               <integer>700</integer>
+                               <key>vquality_type_bitrate</key>
+                               <false />
+                               <key>vquality_type_constant</key>
+                               <true />
+                               <key>vquality_type_target</key>
+                               <false />
+                               <key>x264_options</key>
+                               <string>level=30:cabac=0:ref=3:mixed-refs=1:analyse=all:me=umh:no-fast-pskip=1:subme=8</string>
                        </dict>
-               </array>
-               <key>preset_description</key>
-               <string>HandBrake'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_type</key>
-               <integer>0</integer>
-               <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>64</integer>
-               <key>video_target_size</key>
-               <integer>700</integer>
-               <key>vquality_type_bitrate</key>
-               <true />
-               <key>x264_options</key>
-               <string>bframes=3:ref=1:me=umh:no-fast-pskip=1:trellis=1:cabac=0</string>
-       </dict>
-       <dict>
-               <key>preset_name</key>
-               <string>Bedlam</string>
-               <key>anamorphic</key>
-               <true />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <true />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mkv</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <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>
-               <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>
+                               <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>audio_rate</key>
+                               <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>
+                               <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>
+                                       <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>
+                               <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>
+                               <string>AppleTV</string>
+                               <key>preset_type</key>
+                               <integer>0</integer>
+                               <key>round_dimensions</key>
+                               <true />
+                               <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>59</integer>
+                               <key>video_target_size</key>
+                               <integer>700</integer>
+                               <key>vquality_type_bitrate</key>
+                               <false />
+                               <key>vquality_type_constant</key>
+                               <true />
+                               <key>vquality_type_target</key>
+                               <false />
+                               <key>x264_options</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>
-               </array>
-               <key>preset_description</key>
-               <string>HandBrake's settings maxed out for slowest encoding and highest quality. Use at your own risk. So slow it's not just insane...it's a trip to the looney bin.</string>
-               <key>preset_type</key>
-               <integer>0</integer>
-               <key>subtitle_lang</key>
-               <string>none</string>
-               <key>turbo</key>
-               <true />
-               <key>two_pass</key>
-               <true />
-               <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>
-               <true />
-               <key>x264_options</key>
-               <string>ref=16:mixed-refs:bframes=16:weightb:direct=auto:b-pyramid:me=esa:subme=7:me-range=64:analyse=all:8x8dct:trellis=1:no-fast-pskip:no-dct-decimate:filter=-2,-1</string>
-       </dict>
-       <dict>
-               <key>preset_name</key>
-               <string>Blind</string>
-               <key>anamorphic</key>
-               <false />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <false />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mp4</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <key>detelecine</key>
-               <false />
-               <key>framerate</key>
-               <string>source</string>
-               <key>grayscale</key>
-               <false />
-               <key>keep_aspect</key>
-               <true />
-               <key>max_height</key>
-               <integer>0</integer>
-               <key>max_width</key>
-               <integer>512</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>source</string>
+                               <key>preset_folder</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>ipod_file</key>
+                                               <true />
+                                               <key>keep_aspect</key>
+                                               <true />
+                                               <key>max_height</key>
+                                               <integer>0</integer>
+                                               <key>max_width</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>
+                                               <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>
+                                               <string>iPod Classic &amp; iPod Nano</string>
+                                               <key>preset_type</key>
+                                               <integer>0</integer>
+                                               <key>round_dimensions</key>
+                                               <true />
+                                               <key>subtitle_lang</key>
+                                               <string>none</string>
+                                               <key>two_pass</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>
+                                               <true />
+                                               <key>vquality_type_constant</key>
+                                               <false />
+                                               <key>vquality_type_target</key>
+                                               <false />
+                                               <key>x264_options</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>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>ipod_file</key>
+                                               <true />
+                                               <key>keep_aspect</key>
+                                               <true />
+                                               <key>max_height</key>
+                                               <integer>0</integer>
+                                               <key>max_width</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>
+                                               <string>HandBrake&apos;s settings for the iPhone and iPod Touch.</string>
+                                               <key>preset_name</key>
+                                               <string>iPhone &amp; iPod Touch</string>
+                                               <key>preset_type</key>
+                                               <integer>0</integer>
+                                               <key>round_dimensions</key>
+                                               <true />
+                                               <key>subtitle_lang</key>
+                                               <string>none</string>
+                                               <key>two_pass</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>
+                                               <true />
+                                               <key>vquality_type_constant</key>
+                                               <false />
+                                               <key>vquality_type_target</key>
+                                               <false />
+                                               <key>x264_options</key>
+                                               <string>level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:trellis=1</string>
+                                       </dict>
+                                       <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>ipod_file</key>
+                                               <true />
+                                               <key>keep_aspect</key>
+                                               <true />
+                                               <key>max_height</key>
+                                               <integer>0</integer>
+                                               <key>max_width</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>
+                                               <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>
+                                               <string>iPod Legacy</string>
+                                               <key>preset_type</key>
+                                               <integer>0</integer>
+                                               <key>round_dimensions</key>
+                                               <true />
+                                               <key>subtitle_lang</key>
+                                               <string>none</string>
+                                               <key>two_pass</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>
+                                               <true />
+                                               <key>vquality_type_constant</key>
+                                               <false />
+                                               <key>vquality_type_target</key>
+                                               <false />
+                                               <key>x264_options</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>
+                               <string>iPod &amp; iPhone</string>
+                               <key>preset_type</key>
+                               <integer>2</integer>
                        </dict>
-               </array>
-               <key>preset_description</key>
-               <string>HandBrake's preset for impatient people who don't care about picture quality.</string>
-               <key>preset_type</key>
-               <integer>0</integer>
-               <key>subtitle_lang</key>
-               <string>none</string>
-               <key>turbo</key>
-               <false />
-               <key>two_pass</key>
-               <false />
-               <key>video_bitrate</key>
-               <integer>512</integer>
-               <key>video_codec</key>
-               <string>ffmpeg</string>
-               <key>video_quality</key>
-               <integer>64</integer>
-               <key>video_target_size</key>
-               <integer>700</integer>
-               <key>vquality_type_bitrate</key>
-               <true />
-               <key>x264_options</key>
-               <string></string>
-       </dict>
-       <dict>
-               <key>preset_name</key>
-               <string>Broke</string>
-               <key>anamorphic</key>
-               <false />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <false />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mp4</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <key>detelecine</key>
-               <false />
-               <key>framerate</key>
-               <string>source</string>
-               <key>grayscale</key>
-               <false />
-               <key>keep_aspect</key>
-               <true />
-               <key>max_height</key>
-               <integer>0</integer>
-               <key>max_width</key>
-               <integer>640</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>
+                               <key>Default</key>
+                               <false />
+                               <key>anamorphic</key>
+                               <true />
+                               <key>autocrop</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>
+                               <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>
+                               <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>
+                               <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>
+                               <string>QuickTime</string>
+                               <key>preset_type</key>
+                               <integer>0</integer>
+                               <key>round_dimensions</key>
+                               <false />
+                               <key>subtitle_lang</key>
+                               <string>none</string>
+                               <key>turbo</key>
+                               <true />
+                               <key>two_pass</key>
+                               <true />
+                               <key>video_bitrate</key>
+                               <integer>1800</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>
+                               <true />
+                               <key>vquality_type_constant</key>
+                               <false />
+                               <key>vquality_type_target</key>
+                               <false />
+                               <key>x264_options</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_description</key>
-               <string>HandBrake's preset for people without a lot of money to waste on hard drives. Tries to maximize quality for burning to CDs, so you can party like it's 1999.</string>
+               <key>preset_name</key>
+               <string>Apple</string>
                <key>preset_type</key>
-               <integer>0</integer>
-               <key>subtitle_lang</key>
-               <string>none</string>
-               <key>turbo</key>
-               <true />
-               <key>two_pass</key>
-               <true />
-               <key>video_bitrate</key>
-               <integer>1600</integer>
-               <key>video_codec</key>
-               <string>x264</string>
-               <key>video_quality</key>
-               <integer>64</integer>
-               <key>video_target_size</key>
-               <integer>695</integer>
-               <key>vquality_type_target</key>
-               <true />
-               <key>x264_options</key>
-               <string>ref=3:mixed-refs:bframes=16:weightb:b-pyramid:direct=auto:me=umh:trellis=1:analyse=all:8x8dct:no-fast-pskip</string>
+               <integer>2</integer>
        </dict>
        <dict>
-               <key>preset_name</key>
-               <string>Classic</string>
-               <key>anamorphic</key>
-               <false />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <true />
-               <key>chapter_markers</key>
-               <false />
-               <key>container</key>
-               <string>mp4</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <key>detelecine</key>
-               <false />
-               <key>framerate</key>
-               <string>source</string>
-               <key>grayscale</key>
-               <false />
-               <key>keep_aspect</key>
-               <true />
-               <key>max_height</key>
-               <integer>0</integer>
-               <key>max_width</key>
-               <integer>0</integer>
-               <key>pref_audio_list</key>
+               <key>preset_folder</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>
+                               <key>Default</key>
+                               <true />
+                               <key>anamorphic</key>
+                               <true />
+                               <key>autocrop</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>
+                               <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>
+                               <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>
+                               <string>HandBrake&apos;s normal, default settings.</string>
+                               <key>preset_name</key>
+                               <string>Normal</string>
+                               <key>preset_type</key>
+                               <integer>0</integer>
+                               <key>round_dimensions</key>
+                               <false />
+                               <key>subtitle_lang</key>
+                               <string>none</string>
+                               <key>turbo</key>
+                               <true />
+                               <key>two_pass</key>
+                               <true />
+                               <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>
+                               <true />
+                               <key>vquality_type_constant</key>
+                               <false />
+                               <key>vquality_type_target</key>
+                               <false />
+                               <key>x264_options</key>
+                               <string>ref=2:bframes=2:me=umh</string>
                        </dict>
-               </array>
-               <key>preset_description</key>
-               <string>HandBrake's traditional, faster, lower-quality settings.</string>
-               <key>preset_type</key>
-               <integer>0</integer>
-               <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>64</integer>
-               <key>video_target_size</key>
-               <integer>700</integer>
-               <key>vquality_type_bitrate</key>
-               <true />
-               <key>x264_options</key>
-               <string></string>
-       </dict>
-       <dict>
-               <key>preset_name</key>
-               <string>Constant Quality Rate</string>
-               <key>anamorphic</key>
-               <true />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <true />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mkv</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <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>
-               <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>
+                               <key>Default</key>
+                               <false />
+                               <key>anamorphic</key>
+                               <false />
+                               <key>autocrop</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>audio_rate</key>
+                               <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>0</integer>
+                               <key>max_width</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>
+                               <string>HandBrake&apos;s traditional, faster, lower-quality settings.</string>
+                               <key>preset_name</key>
+                               <string>Classic</string>
+                               <key>preset_type</key>
+                               <integer>0</integer>
+                               <key>round_dimensions</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>
+                               <true />
+                               <key>vquality_type_constant</key>
+                               <false />
+                               <key>vquality_type_target</key>
+                               <false />
+                               <key>x264_options</key>
+                               <string></string>
                        </dict>
                </array>
-               <key>preset_description</key>
-               <string>HandBrake's preset for consistently excellent quality in one pass, with the downside of entirely unpredictable file sizes and bitrates.</string>
+               <key>preset_name</key>
+               <string>Basic</string>
                <key>preset_type</key>
-               <integer>0</integer>
-               <key>subtitle_lang</key>
-               <string>none</string>
-               <key>turbo</key>
-               <false />
-               <key>two_pass</key>
-               <false />
-               <key>video_bitrate</key>
-               <integer>2000</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_constant</key>
-               <true />
-               <key>x264_options</key>
-               <string>ref=3:mixed-refs:bframes=3:b-pyramid:weightb:filter=-2,-1:trellis=1:analyse=all:8x8dct:me=umh</string>
+               <integer>2</integer>
        </dict>
        <dict>
-               <key>preset_name</key>
-               <string>Deux Six Quatre</string>
-               <key>anamorphic</key>
-               <true />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <true />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mkv</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <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>preset_folder</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>
+                               <key>Default</key>
+                               <false />
+                               <key>anamorphic</key>
+                               <true />
+                               <key>autocrop</key>
+                               <true />
+                               <key>autoscale</key>
+                               <true />
+                               <key>chapter_markers</key>
+                               <true />
+                               <key>container</key>
+                               <string>mkv</string>
+                               <key>deblock</key>
+                               <integer>0</integer>
+                               <key>decomb</key>
+                               <true />
+                               <key>deinterlace</key>
+                               <string>none</string>
+                               <key>denoise</key>
                                <string>none</string>
-                               <key>audio_rate</key>
+                               <key>detelecine</key>
+                               <true />
+                               <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>
+                               <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>
+                               <string>HandBrake&apos;s settings for cartoons, anime, and CGI.</string>
+                               <key>preset_name</key>
+                               <string>Animation</string>
+                               <key>preset_type</key>
+                               <integer>0</integer>
+                               <key>round_dimensions</key>
+                               <false />
+                               <key>subtitle_lang</key>
+                               <string>none</string>
+                               <key>turbo</key>
+                               <true />
+                               <key>two_pass</key>
+                               <true />
+                               <key>video_bitrate</key>
+                               <integer>1000</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>
+                               <true />
+                               <key>vquality_type_constant</key>
+                               <false />
+                               <key>vquality_type_target</key>
+                               <false />
+                               <key>x264_options</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>
-               </array>
-               <key>preset_description</key>
-               <string>HandBrake's preset for true high profile x264 quality. A good balance of quality and speed, based on community standards found in the wild. This preset will give you a much better sense of x264's capabilities than vanilla main profile.</string>
-               <key>preset_type</key>
-               <integer>0</integer>
-               <key>subtitle_lang</key>
-               <string>none</string>
-               <key>turbo</key>
-               <true />
-               <key>two_pass</key>
-               <true />
-               <key>video_bitrate</key>
-               <integer>1600</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>
-               <true />
-               <key>x264_options</key>
-               <string>ref=5:mixed-refs:bframes=3:weightb:b-pyramid:me=umh:subme=7:trellis=1:analyse=all:8x8dct:no-fast-pskip</string>
-       </dict>
-       <dict>
-               <key>preset_name</key>
-               <string>Film</string>
-               <key>anamorphic</key>
-               <true />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <true />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mkv</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <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>
-               <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>
+                               <key>Default</key>
+                               <false />
+                               <key>anamorphic</key>
+                               <true />
+                               <key>autocrop</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>audio_rate</key>
+                               <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>
+                               <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>
+                               <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>
+                               <string>Constant Quality Rate</string>
+                               <key>preset_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>
+                               <integer>2000</integer>
+                               <key>video_codec</key>
+                               <string>x264</string>
+                               <key>video_quality</key>
+                               <integer>60</integer>
+                               <key>video_target_size</key>
+                               <integer>700</integer>
+                               <key>vquality_type_bitrate</key>
+                               <false />
+                               <key>vquality_type_constant</key>
+                               <true />
+                               <key>vquality_type_target</key>
+                               <false />
+                               <key>x264_options</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>
-               </array>
-               <key>preset_description</key>
-               <string>HandBrake's preset for feature films.</string>
-               <key>preset_type</key>
-               <integer>0</integer>
-               <key>subtitle_lang</key>
-               <string>none</string>
-               <key>turbo</key>
-               <true />
-               <key>two_pass</key>
-               <true />
-               <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>
-               <true />
-               <key>x264_options</key>
-               <string>ref=3:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip</string>
-       </dict>
-       <dict>
-               <key>preset_name</key>
-               <string>Normal</string>
-               <key>anamorphic</key>
-               <true />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <true />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mp4</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <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>
-               <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>
+                               <key>Default</key>
+                               <false />
+                               <key>anamorphic</key>
+                               <true />
+                               <key>autocrop</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>
+                               <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>
+                               <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>
+                               <string>HandBrake&apos;s preset for feature films.</string>
+                               <key>preset_name</key>
+                               <string>Film</string>
+                               <key>preset_type</key>
+                               <integer>0</integer>
+                               <key>round_dimensions</key>
+                               <false />
+                               <key>subtitle_lang</key>
+                               <string>none</string>
+                               <key>turbo</key>
+                               <true />
+                               <key>two_pass</key>
+                               <true />
+                               <key>video_bitrate</key>
+                               <integer>1800</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>
+                               <true />
+                               <key>vquality_type_constant</key>
+                               <false />
+                               <key>vquality_type_target</key>
+                               <false />
+                               <key>x264_options</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>
-               </array>
-               <key>preset_description</key>
-               <string>HandBrake's normal, default settings.</string>
-               <key>preset_type</key>
-               <integer>0</integer>
-               <key>subtitle_lang</key>
-               <string>none</string>
-               <key>turbo</key>
-               <true />
-               <key>two_pass</key>
-               <true />
-               <key>video_bitrate</key>
-               <integer>1500</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>
-               <true />
-               <key>x264_options</key>
-               <string>ref=2:bframes=2:me=umh</string>
-       </dict>
-       <dict>
-               <key>preset_name</key>
-               <string>PS3</string>
-               <key>anamorphic</key>
-               <true />
-               <key>autoscale</key>
-               <true />
-               <key>chapter_markers</key>
-               <false />
-               <key>container</key>
-               <string>mp4</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <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>
-               <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>
+                               <key>Default</key>
+                               <false />
+                               <key>anamorphic</key>
+                               <true />
+                               <key>autocrop</key>
+                               <true />
+                               <key>autoscale</key>
+                               <true />
+                               <key>chapter_markers</key>
+                               <true />
+                               <key>container</key>
+                               <string>mkv</string>
+                               <key>deblock</key>
+                               <integer>0</integer>
+                               <key>decomb</key>
+                               <true />
+                               <key>deinterlace</key>
+                               <string>none</string>
+                               <key>denoise</key>
+                               <string>none</string>
+                               <key>detelecine</key>
+                               <true />
+                               <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>
+                               <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>
+                               <string>HandBrake&apos;s settings for video from television.</string>
+                               <key>preset_name</key>
+                               <string>Television</string>
+                               <key>preset_type</key>
+                               <integer>0</integer>
+                               <key>round_dimensions</key>
+                               <false />
+                               <key>subtitle_lang</key>
+                               <string>none</string>
+                               <key>turbo</key>
+                               <true />
+                               <key>two_pass</key>
+                               <true />
+                               <key>video_bitrate</key>
+                               <integer>1300</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>
+                               <true />
+                               <key>vquality_type_constant</key>
+                               <false />
+                               <key>vquality_type_target</key>
+                               <false />
+                               <key>x264_options</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_description</key>
-               <string>HandBrake's settings for the Sony PlayStation 3.</string>
-               <key>preset_type</key>
-               <integer>0</integer>
-               <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>64</integer>
-               <key>video_target_size</key>
-               <integer>700</integer>
-               <key>vquality_type_bitrate</key>
-               <true />
-               <key>x264_options</key>
-               <string>level=41:me=umh</string>
-       </dict>
-       <dict>
                <key>preset_name</key>
-               <string>PSP</string>
-               <key>anamorphic</key>
-               <false />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <false />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mp4</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <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>
-               <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>
-               <string>HandBrake's settings for the Sony PlayStation Portable.</string>
+               <string>High Profile</string>
                <key>preset_type</key>
-               <integer>0</integer>
-               <key>subtitle_lang</key>
-               <string>none</string>
-               <key>two_pass</key>
-               <false />
-               <key>video_bitrate</key>
-               <integer>1024</integer>
-               <key>video_codec</key>
-               <string>ffmpeg</string>
-               <key>video_quality</key>
-               <integer>64</integer>
-               <key>video_target_size</key>
-               <integer>700</integer>
-               <key>vquality_type_bitrate</key>
-               <true />
-               <key>x264_options</key>
-               <string></string>
+               <integer>2</integer>
        </dict>
        <dict>
-               <key>preset_name</key>
-               <string>QuickTime</string>
-               <key>anamorphic</key>
-               <true />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <true />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mp4</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <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>preset_folder</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>
+                               <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>
+                               <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>
+                               <string>HandBrake&apos;s settings for the Sony PlayStation Portable.</string>
+                               <key>preset_name</key>
+                               <string>PSP</string>
+                               <key>preset_type</key>
+                               <integer>0</integer>
+                               <key>round_dimensions</key>
+                               <true />
+                               <key>subtitle_lang</key>
+                               <string>none</string>
+                               <key>two_pass</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>
+                               <true />
+                               <key>vquality_type_constant</key>
+                               <false />
+                               <key>vquality_type_target</key>
+                               <false />
+                               <key>x264_options</key>
+                               <string></string>
                        </dict>
-               </array>
-               <key>preset_description</key>
-               <string>HandBrake's high quality settings for use with QuickTime. It can be slow, so use it when the Normal preset doesn't look good enough.</string>
-               <key>preset_type</key>
-               <integer>0</integer>
-               <key>subtitle_lang</key>
-               <string>none</string>
-               <key>turbo</key>
-               <true />
-               <key>two_pass</key>
-               <true />
-               <key>video_bitrate</key>
-               <integer>2000</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>
-               <true />
-               <key>x264_options</key>
-               <string>ref=3:mixed-refs:bframes=3:weightb:direct=auto:me=umh:analyse=all:trellis=1:no-fast-pskip</string>
-       </dict>
-       <dict>
-               <key>preset_name</key>
-               <string>Television</string>
-               <key>anamorphic</key>
-               <false />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <true />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mkv</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>slower</string>
-               <key>denoise</key>
-               <integer>1</integer>
-               <key>detelecine</key>
-               <false />
-               <key>framerate</key>
-               <string>source</string>
-               <key>grayscale</key>
-               <false />
-               <key>keep_aspect</key>
-               <true />
-               <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>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>Default</key>
+                               <false />
+                               <key>anamorphic</key>
+                               <true />
+                               <key>autocrop</key>
+                               <false />
+                               <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>
+                               <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>
+                               <string>HandBrake&apos;s settings for the Sony PlayStation 3.</string>
+                               <key>preset_name</key>
+                               <string>PS3</string>
+                               <key>preset_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>
+                               <true />
+                               <key>vquality_type_constant</key>
+                               <false />
+                               <key>vquality_type_target</key>
+                               <false />
+                               <key>x264_options</key>
+                               <string>level=41:me=umh</string>
                        </dict>
-               </array>
-               <key>preset_description</key>
-               <string>HandBrake's settings for video from television.</string>
-               <key>preset_type</key>
-               <integer>0</integer>
-               <key>subtitle_lang</key>
-               <string>none</string>
-               <key>turbo</key>
-               <true />
-               <key>two_pass</key>
-               <true />
-               <key>video_bitrate</key>
-               <integer>1300</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>
-               <true />
-               <key>x264_options</key>
-               <string>ref=3:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me=umh:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip</string>
-       </dict>
-       <dict>
-               <key>preset_name</key>
-               <string>Xbox 360</string>
-               <key>anamorphic</key>
-               <true />
-               <key>autoscale</key>
-               <true />
-               <key>chapter_markers</key>
-               <false />
-               <key>container</key>
-               <string>mp4</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <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>
-               <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>
-               <string>HandBrake's settings for the Microsoft Xbox 360.</string>
-               <key>preset_type</key>
-               <integer>0</integer>
-               <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>64</integer>
-               <key>video_target_size</key>
-               <integer>700</integer>
-               <key>vquality_type_bitrate</key>
-               <true />
-               <key>x264_options</key>
-               <string>level=40:ref=2:mixed-refs:bframes=3:weightb:direct=auto:b-pyramid:me=umh:analyse=all:no-fast-pskip:filter=-2,-1</string>
-       </dict>
-       <dict>
-               <key>preset_name</key>
-               <string>iPhone / iPod Touch</string>
-               <key>anamorphic</key>
-               <false />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <false />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mp4</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <key>detelecine</key>
-               <false />
-               <key>framerate</key>
-               <string>source</string>
-               <key>grayscale</key>
-               <false />
-               <key>ipod_file</key>
-               <true />
-               <key>keep_aspect</key>
-               <true />
-               <key>max_height</key>
-               <integer>0</integer>
-               <key>max_width</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>
-               <string>HandBrake's settings for the iPhone and iPod Touch.</string>
-               <key>preset_type</key>
-               <integer>0</integer>
-               <key>subtitle_lang</key>
-               <string>none</string>
-               <key>two_pass</key>
-               <false />
-               <key>video_bitrate</key>
-               <integer>960</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>
-               <true />
-               <key>x264_options</key>
-               <string>level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:trellis=1</string>
-       </dict>
-       <dict>
-               <key>preset_name</key>
-               <string>iPod High-Rez</string>
-               <key>anamorphic</key>
-               <false />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <false />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mp4</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <key>detelecine</key>
-               <false />
-               <key>framerate</key>
-               <string>source</string>
-               <key>grayscale</key>
-               <false />
-               <key>ipod_file</key>
-               <true />
-               <key>keep_aspect</key>
-               <true />
-               <key>max_height</key>
-               <integer>0</integer>
-               <key>max_width</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>
+                               <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>
+                               <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>
+                               <string>HandBrake&apos;s settings for the Microsoft Xbox 360.</string>
+                               <key>preset_name</key>
+                               <string>Xbox 360</string>
+                               <key>preset_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>
+                               <true />
+                               <key>vquality_type_constant</key>
+                               <false />
+                               <key>vquality_type_target</key>
+                               <false />
+                               <key>x264_options</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_description</key>
-               <string>HandBrake's high resolution settings for the iPod. Good video quality, great for viewing on a TV using your iPod</string>
-               <key>preset_type</key>
-               <integer>0</integer>
-               <key>subtitle_lang</key>
-               <string>none</string>
-               <key>two_pass</key>
-               <false />
-               <key>video_bitrate</key>
-               <integer>1500</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>
-               <true />
-               <key>x264_options</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>
-       <dict>
                <key>preset_name</key>
-               <string>iPod Low-Rez</string>
-               <key>anamorphic</key>
-               <false />
-               <key>autocrop</key>
-               <true />
-               <key>autoscale</key>
-               <false />
-               <key>chapter_markers</key>
-               <true />
-               <key>container</key>
-               <string>mp4</string>
-               <key>deblock</key>
-               <real>0</real>
-               <key>decomb</key>
-               <false />
-               <key>deinterlace</key>
-               <string>none</string>
-               <key>denoise</key>
-               <integer>0</integer>
-               <key>detelecine</key>
-               <false />
-               <key>framerate</key>
-               <string>source</string>
-               <key>grayscale</key>
-               <false />
-               <key>ipod_file</key>
-               <true />
-               <key>keep_aspect</key>
-               <true />
-               <key>max_height</key>
-               <integer>0</integer>
-               <key>max_width</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>
-               <string>HandBrake's low resolution settings for the iPod. Optimized for great playback on the iPod screen, with smaller file size.</string>
+               <string>Gaming Consoles</string>
                <key>preset_type</key>
-               <integer>0</integer>
-               <key>subtitle_lang</key>
-               <string>none</string>
-               <key>two_pass</key>
-               <false />
-               <key>video_bitrate</key>
-               <integer>700</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>
-               <true />
-               <key>x264_options</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>
+               <integer>2</integer>
        </dict>
 </array>
 </plist>
index 4f6c407697075ebab8b449b2495d19c4c8d065ba..4124b0a263cb5d8be7958057c245a90ce3b3f880 100644 (file)
@@ -45,7 +45,7 @@ ghb_value_dup(const GValue *val)
        return copy;
 }
 
-static void
+void
 debug_show_type(GType tp)
 {
        const gchar *str = "unknown";
@@ -61,6 +61,10 @@ debug_show_type(GType tp)
        {
                str ="int64";
        }
+       else if (tp == G_TYPE_DOUBLE)
+       {
+               str ="double";
+       }
        else if (tp == G_TYPE_BOOLEAN)
        {
                str ="bool";
@@ -652,6 +656,22 @@ ghb_array_replace(GValue *gval, guint ii, GValue *val)
        ((GValue**)arr->data)[ii] = val;
 }
 
+void
+ghb_array_copy(GValue *arr1, GValue *arr2, gint count)
+{
+       gint len, ii;
+
+       // empty the first array if it is not already empty
+       len = ghb_array_len(arr1);
+       for (ii = 0; ii < len; ii++)
+               ghb_array_remove(arr1, 0);
+
+       len = ghb_array_len(arr2);
+       count = MIN(count, len);
+       for (ii = 0; ii < count; ii++)
+               ghb_array_append(arr1, ghb_value_dup(ghb_array_get_nth(arr2, ii)));
+}
+
 gint
 ghb_array_len(const GValue *gval)
 {
index feb995d24434a3d9c3e781c5292b13834d85c41f..4000ad6f817dfb6e21f339109e539869ea4aa975 100644 (file)
@@ -35,6 +35,7 @@ void ghb_array_replace(GValue *gval, guint ii, GValue *val);
 void ghb_array_append(GValue *gval, GValue *val);
 void ghb_array_remove(GValue *gval, guint ii);
 gint ghb_array_len(const GValue *gval);
+void ghb_array_copy(GValue *arr1, GValue *arr2, gint count);
 
 void ghb_value_free(GValue *gval);
 GValue* ghb_value_new(GType gtype);