summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gtk/src/presets.c157
-rw-r--r--gtk/src/resource_data.h58
-rw-r--r--gtk/src/resources.plist58
-rw-r--r--gtk/src/standard_presets.xml58
4 files changed, 237 insertions, 94 deletions
diff --git a/gtk/src/presets.c b/gtk/src/presets.c
index 0298b1a6e..03f9501f7 100644
--- a/gtk/src/presets.c
+++ b/gtk/src/presets.c
@@ -35,6 +35,49 @@ plist_get_dict(GValue *presets, const gchar *name)
return ghb_dict_lookup(presets, name);
}
+static GValue*
+presets_get_dict(GValue *presets, const gchar *name)
+{
+ GValue *dict, *gval;
+ gint count, ii;
+
+ if (presets == NULL || name == NULL) return NULL;
+ count = ghb_array_len(presets);
+ for (ii = 0; ii < count; ii++)
+ {
+ const gchar *str;
+ dict = ghb_array_get_nth(presets, ii);
+ gval = ghb_dict_lookup(dict, "preset_name");
+ str = g_value_get_string(gval);
+ if (strcmp(str, name) == 0)
+ return dict;
+ }
+ return NULL;
+}
+
+static gint
+presets_remove(GValue *presets, const gchar *name)
+{
+ GValue *dict, *gval;
+ gint count, ii;
+
+ 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);
+ gval = ghb_dict_lookup(dict, "preset_name");
+ str = g_value_get_string(gval);
+ if (strcmp(str, name) == 0)
+ {
+ ghb_array_remove(presets, ii);
+ return ii;
+ }
+ }
+ return -1;
+}
+
void
ghb_set_preset_default(GValue *settings)
{
@@ -60,7 +103,7 @@ gchar*
ghb_presets_get_description(const gchar *name)
{
GValue *pdict;
- pdict = plist_get_dict(presetsPlist, name);
+ pdict = presets_get_dict(presetsPlist, name);
if (pdict == NULL) return g_strdup("");
return ghb_value_string(ghb_dict_lookup(pdict, "preset_description"));
}
@@ -93,37 +136,42 @@ preset_get_value(
{
GValue *dict;
- dict = plist_get_dict(presetsPlist, name);
+ dict = presets_get_dict(presetsPlist, name);
return preset_dict_get_value(dict, key);
}
GList*
ghb_presets_get_names()
{
- GHashTable *dict;
- GList *names, *link;
+ GList *names;
GList *standard = NULL;
GList *custom = NULL;
+ gint ii, count;
if (presetsPlist == NULL) return NULL;
- dict = g_value_get_boxed(presetsPlist);
- link = names = g_hash_table_get_keys(dict);
- while (link)
+ count = ghb_array_len(presetsPlist);
+ for (ii = 0; ii < count; ii++)
{
gchar *name;
gint ptype;
+ GValue *dict;
+ GValue *gval;
- name = (gchar*)link->data;
- ptype = ghb_value_int(preset_get_value(name, "preset_type"));
+ dict = ghb_array_get_nth(presetsPlist, ii);
+ gval = ghb_dict_lookup(dict, "preset_name");
+ name = (gchar*)g_value_get_string(gval);
+ ptype = ghb_value_int(preset_dict_get_value(dict, "preset_type"));
if (ptype)
+ {
custom = g_list_append(custom, name);
+ }
else
+ {
standard = g_list_append(standard, name);
- link = link->next;
+ }
}
custom = g_list_sort(custom, key_cmp);
standard = g_list_sort(standard, key_cmp);
- g_list_free(names);
names = g_list_concat(standard, custom);
return names;
}
@@ -136,7 +184,7 @@ ghb_preset_flags(const gchar *name)
gint ptype;
gint ret = 0;
- dict = plist_get_dict(presetsPlist, name);
+ dict = presets_get_dict(presetsPlist, name);
gval = preset_dict_get_value(dict, "preset_type");
if (gval)
{
@@ -321,7 +369,7 @@ ghb_set_preset(signal_user_data_t *ud, const gchar *name)
g_list_free(presets);
}
}
- dict = plist_get_dict(presetsPlist, name);
+ dict = presets_get_dict(presetsPlist, name);
if (dict == NULL || name == NULL)
{
preset_to_ui(ud, NULL);
@@ -604,8 +652,8 @@ ghb_settings_init(signal_user_data_t *ud)
void
ghb_settings_close()
{
- //if (internalPlist)
- //ghb_value_free(internalPlist);
+ if (internalPlist)
+ ghb_value_free(internalPlist);
if (presetsPlist)
ghb_value_free(presetsPlist);
if (prefsPlist)
@@ -654,36 +702,41 @@ ghb_prefs_load(signal_user_data_t *ud)
void
ghb_presets_reload(signal_user_data_t *ud)
{
- GValue *std_dict, *dict;
- GHashTableIter std_iter;
+ GValue *std_presets;
+ gint count, ii;
g_debug("ghb_presets_reload()\n");
- std_dict = ghb_resource_get("standard-presets");
- if (std_dict == NULL) return;
+ std_presets = ghb_resource_get("standard-presets");
+ if (std_presets == NULL) return;
// Merge the keyfile contents into our presets
- gchar *name;
- GValue *orig_dict;
-
- ghb_dict_iter_init(&std_iter, std_dict);
- // middle (void*) cast prevents gcc warning "defreferencing type-punned
- // pointer will break strict-aliasing rules"
- while (g_hash_table_iter_next(
- &std_iter, (gpointer*)(void*)&name, (gpointer*)(void*)&orig_dict))
+ count = ghb_array_len(std_presets);
+ for (ii = 0; ii < count; ii++)
{
+ const gchar *name;
+ GValue *std_dict;
+ GValue *copy_dict;
GHashTableIter iter;
gchar *key;
GValue *value;
+ gint pos;
- dict = ghb_dict_value_new();
- ghb_dict_insert(presetsPlist, g_strdup(name), dict);
- ghb_dict_iter_init(&iter, orig_dict);
+ std_dict = ghb_array_get_nth(std_presets, ii);
+ name = g_value_get_string(ghb_dict_lookup(std_dict, "preset_name"));
+ pos = presets_remove(presetsPlist, name);
+
+ copy_dict = ghb_dict_value_new();
+ if (pos >= 0)
+ ghb_array_insert(presetsPlist, pos, copy_dict);
+ else
+ ghb_array_append(presetsPlist, copy_dict);
+ ghb_dict_iter_init(&iter, std_dict);
// middle (void*) cast prevents gcc warning "defreferencing type-punned
// pointer will break strict-aliasing rules"
while (g_hash_table_iter_next(
&iter, (gpointer*)(void*)&key, (gpointer*)(void*)&value))
{
- ghb_dict_insert(dict, g_strdup(key), ghb_value_dup(value));
+ ghb_dict_insert(copy_dict, g_strdup(key), ghb_value_dup(value));
}
}
store_plist(presetsPlist, "presets");
@@ -723,6 +776,41 @@ ghb_presets_load()
presetsPlist = ghb_value_dup(ghb_resource_get("standard-presets"));
presets_store();
}
+ if (G_VALUE_TYPE(presetsPlist) == ghb_dict_get_type())
+ { // Presets is older dictionary format. Convert to array
+ GHashTableIter old_iter;
+ GValue *presets;
+ gchar *name;
+ GValue *orig_dict;
+
+ presets = ghb_array_value_new(32);
+ ghb_dict_iter_init(&old_iter, presetsPlist);
+ // middle (void*) cast prevents gcc warning "defreferencing type-punned
+ // pointer will break strict-aliasing rules"
+ while (g_hash_table_iter_next(
+ &old_iter, (gpointer*)(void*)&name, (gpointer*)(void*)&orig_dict))
+ {
+ GHashTableIter iter;
+ gchar *key;
+ GValue *value, *dict;
+
+ dict = ghb_dict_value_new();
+ ghb_dict_insert(dict, g_strdup("preset_name"),
+ ghb_string_value_new(name));
+ ghb_array_append(presets, dict);
+ ghb_dict_iter_init(&iter, orig_dict);
+ // middle (void*) cast prevents gcc warning "defreferencing
+ // type-punned pointer will break strict-aliasing rules"
+ while (g_hash_table_iter_next(
+ &iter, (gpointer*)(void*)&key, (gpointer*)(void*)&value))
+ {
+ ghb_dict_insert(dict, g_strdup(key), ghb_value_dup(value));
+ }
+ }
+ ghb_value_free(presetsPlist);
+ presetsPlist = presets;
+ presets_store();
+ }
}
void
@@ -755,7 +843,8 @@ ghb_settings_save(signal_user_data_t *ud, const gchar *name)
ghb_settings_set_int64(ud->settings, "preset_type", 1);
dict = ghb_dict_value_new();
- ghb_dict_insert(presetsPlist, g_strdup(name), dict);
+ ghb_dict_insert(dict, g_strdup("preset_name"), ghb_string_value_new(name));
+ ghb_array_append(presetsPlist, dict);
internal = plist_get_dict(internalPlist, "Presets");
ghb_dict_iter_init(&iter, internal);
@@ -800,9 +889,9 @@ ghb_settings_save(signal_user_data_t *ud, const gchar *name)
void
ghb_presets_remove(const gchar *name)
{
- if (ghb_dict_lookup(presetsPlist, name))
+ if (presets_get_dict(presetsPlist, name))
{
- ghb_dict_remove(presetsPlist, name);
+ presets_remove(presetsPlist, name);
presets_store();
}
}
diff --git a/gtk/src/resource_data.h b/gtk/src/resource_data.h
index 63e6ece92..379b1d826 100644
--- a/gtk/src/resource_data.h
+++ b/gtk/src/resource_data.h
@@ -10134,8 +10134,7 @@
" </dict>\n"
" </dict>\n"
" <key>standard-presets</key>\n"
-" <dict>\n"
-" <key>Animation</key>\n"
+" <array>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <true />\n"
@@ -10185,6 +10184,8 @@
" <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"
" <key>preset_type</key>\n"
" <integer>0</integer>\n"
" <key>subtitle_lang</key>\n"
@@ -10208,7 +10209,6 @@
"pyramid:me=umh:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip:filter"
"=2,2</string>\n"
" </dict>\n"
-" <key>AppleTV</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <true />\n"
@@ -10271,6 +10271,8 @@
" <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"
" <key>preset_type</key>\n"
" <integer>0</integer>\n"
" <key>subtitle_lang</key>\n"
@@ -10291,7 +10293,6 @@
" <string>bframes=3:ref=1:me=umh:no-fast-pskip=1:trellis=1:cabac=0</st"
"ring>\n"
" </dict>\n"
-" <key>Bedlam</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <true />\n"
@@ -10342,6 +10343,8 @@
" <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"
" <key>preset_type</key>\n"
" <integer>0</integer>\n"
" <key>subtitle_lang</key>\n"
@@ -10365,7 +10368,6 @@
"b-pyramid:me=esa:subme=7:me-range=64:analyse=all:8x8dct:trellis=1:no-fa"
"st-pskip:no-dct-decimate:filter=-2,-1</string>\n"
" </dict>\n"
-" <key>Blind</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <false />\n"
@@ -10415,6 +10417,8 @@
" <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"
@@ -10436,7 +10440,6 @@
" <key>x264_options</key>\n"
" <string></string>\n"
" </dict>\n"
-" <key>Broke</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <false />\n"
@@ -10487,6 +10490,8 @@
" <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"
@@ -10509,7 +10514,6 @@
" <string>ref=3:mixed-refs:bframes=16:bime:weightb:b-rdo:b-pyramid:dir"
"ect=auto:me=umh:trellis=1:analyse=all:8x8dct:no-fast-pskip</string>\n"
" </dict>\n"
-" <key>Classic</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <false />\n"
@@ -10559,6 +10563,8 @@
" <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"
@@ -10578,7 +10584,6 @@
" <key>x264_options</key>\n"
" <string></string>\n"
" </dict>\n"
-" <key>Constant Quality Rate</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <true />\n"
@@ -10629,6 +10634,8 @@
" <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"
" <key>preset_type</key>\n"
" <integer>0</integer>\n"
" <key>subtitle_lang</key>\n"
@@ -10651,7 +10658,6 @@
" <string>ref=3:mixed-refs:bframes=3:b-pyramid:b-rdo:bime:weightb:filt"
"er=-2,-1:trellis=1:analyse=all:8x8dct:me=umh</string>\n"
" </dict>\n"
-" <key>Deux Six Quatre</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <true />\n"
@@ -10703,6 +10709,8 @@
"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"
@@ -10725,7 +10733,6 @@
" <string>ref=5:mixed-refs:bframes=3:bime:weightb:b-rdo:b-pyramid:me=u"
"mh:subme=7:trellis=1:analyse=all:8x8dct:no-fast-pskip</string>\n"
" </dict>\n"
-" <key>Film</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <true />\n"
@@ -10774,6 +10781,8 @@
" </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"
@@ -10797,7 +10806,6 @@
"pyramid:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip</stri"
"ng>\n"
" </dict>\n"
-" <key>Normal</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <true />\n"
@@ -10846,6 +10854,8 @@
" </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"
@@ -10867,7 +10877,6 @@
" <key>x264_options</key>\n"
" <string>ref=2:bframes=2:me=umh</string>\n"
" </dict>\n"
-" <key>PS3</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <true />\n"
@@ -10915,6 +10924,8 @@
" <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"
@@ -10934,7 +10945,6 @@
" <key>x264_options</key>\n"
" <string>level=41:me=umh</string>\n"
" </dict>\n"
-" <key>PSP</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <false />\n"
@@ -10984,6 +10994,8 @@
" <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"
@@ -11003,7 +11015,6 @@
" <key>x264_options</key>\n"
" <string></string>\n"
" </dict>\n"
-" <key>QuickTime</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <true />\n"
@@ -11054,6 +11065,8 @@
" <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"
@@ -11076,7 +11089,6 @@
" <string>ref=3:mixed-refs:bframes=3:bime:weightb:b-rdo:direct=auto:me"
"=umh:analyse=all:trellis=1:no-fast-pskip</string>\n"
" </dict>\n"
-" <key>Television</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <false />\n"
@@ -11126,6 +11138,8 @@
" <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"
@@ -11148,7 +11162,6 @@
" <string>ref=3:mixed-refs:bframes=6:bime:weightb:direct=auto:b-pyrami"
"d:me=umh:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip</string>\n"
" </dict>\n"
-" <key>Xbox 360</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <true />\n"
@@ -11196,6 +11209,8 @@
" <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"
@@ -11217,7 +11232,6 @@
"t=auto:b-pyramid:me=umh:analyse=all:no-fast-pskip:filter=-2,-1</string>"
"\n"
" </dict>\n"
-" <key>iPhone / iPod Touch</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <false />\n"
@@ -11269,6 +11283,8 @@
" <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"
@@ -11289,7 +11305,6 @@
" <string>level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:tr"
"ellis=1</string>\n"
" </dict>\n"
-" <key>iPod High-Rez</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <false />\n"
@@ -11341,6 +11356,8 @@
" <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"
@@ -11361,7 +11378,6 @@
" <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"
-" <key>iPod Low-Rez</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <false />\n"
@@ -11414,6 +11430,8 @@
" <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"
@@ -11434,7 +11452,7 @@
" <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"
" </dict>\n"
-" </dict>\n"
+" </array>\n"
" <key>widget-deps</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
diff --git a/gtk/src/resources.plist b/gtk/src/resources.plist
index 63ead6603..2a9ddc706 100644
--- a/gtk/src/resources.plist
+++ b/gtk/src/resources.plist
@@ -5017,8 +5017,7 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</dict>
</dict>
<key>standard-presets</key>
- <dict>
- <key>Animation</key>
+ <array>
<dict>
<key>anamorphic</key>
<true />
@@ -5067,6 +5066,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>subtitle_lang</key>
@@ -5088,7 +5089,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string>ref=5:mixed-refs:bframes=6:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip:filter=2,2</string>
</dict>
- <key>AppleTV</key>
<dict>
<key>anamorphic</key>
<true />
@@ -5149,6 +5149,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>subtitle_lang</key>
@@ -5168,7 +5170,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string>bframes=3:ref=1:me=umh:no-fast-pskip=1:trellis=1:cabac=0</string>
</dict>
- <key>Bedlam</key>
<dict>
<key>anamorphic</key>
<true />
@@ -5217,6 +5218,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
<key>preset_type</key>
<integer>0</integer>
<key>subtitle_lang</key>
@@ -5238,7 +5241,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string>ref=16:mixed-refs:bframes=16:bime:weightb:b-rdo: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>
- <key>Blind</key>
<dict>
<key>anamorphic</key>
<false />
@@ -5287,6 +5289,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
@@ -5308,7 +5312,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string></string>
</dict>
- <key>Broke</key>
<dict>
<key>anamorphic</key>
<false />
@@ -5357,6 +5360,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
@@ -5378,7 +5383,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string>ref=3:mixed-refs:bframes=16:bime:weightb:b-rdo:b-pyramid:direct=auto:me=umh:trellis=1:analyse=all:8x8dct:no-fast-pskip</string>
</dict>
- <key>Classic</key>
<dict>
<key>anamorphic</key>
<false />
@@ -5427,6 +5431,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
@@ -5446,7 +5452,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string></string>
</dict>
- <key>Constant Quality Rate</key>
<dict>
<key>anamorphic</key>
<true />
@@ -5495,6 +5500,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
@@ -5516,7 +5523,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string>ref=3:mixed-refs:bframes=3:b-pyramid:b-rdo:bime:weightb:filter=-2,-1:trellis=1:analyse=all:8x8dct:me=umh</string>
</dict>
- <key>Deux Six Quatre</key>
<dict>
<key>anamorphic</key>
<true />
@@ -5565,6 +5571,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
<key>preset_type</key>
<integer>0</integer>
<key>subtitle_lang</key>
@@ -5586,7 +5594,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string>ref=5:mixed-refs:bframes=3:bime:weightb:b-rdo:b-pyramid:me=umh:subme=7:trellis=1:analyse=all:8x8dct:no-fast-pskip</string>
</dict>
- <key>Film</key>
<dict>
<key>anamorphic</key>
<true />
@@ -5635,6 +5642,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
@@ -5656,7 +5665,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string>ref=3:mixed-refs:bframes=6:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip</string>
</dict>
- <key>Normal</key>
<dict>
<key>anamorphic</key>
<true />
@@ -5705,6 +5713,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
@@ -5726,7 +5736,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string>ref=2:bframes=2:me=umh</string>
</dict>
- <key>PS3</key>
<dict>
<key>anamorphic</key>
<true />
@@ -5773,6 +5782,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
@@ -5792,7 +5803,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string>level=41:me=umh</string>
</dict>
- <key>PSP</key>
<dict>
<key>anamorphic</key>
<false />
@@ -5841,6 +5851,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
@@ -5860,7 +5872,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string></string>
</dict>
- <key>QuickTime</key>
<dict>
<key>anamorphic</key>
<true />
@@ -5909,6 +5920,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
@@ -5930,7 +5943,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string>ref=3:mixed-refs:bframes=3:bime:weightb:b-rdo:direct=auto:me=umh:analyse=all:trellis=1:no-fast-pskip</string>
</dict>
- <key>Television</key>
<dict>
<key>anamorphic</key>
<false />
@@ -5979,6 +5991,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
@@ -6000,7 +6014,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string>ref=3:mixed-refs:bframes=6:bime:weightb:direct=auto:b-pyramid:me=umh:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip</string>
</dict>
- <key>Xbox 360</key>
<dict>
<key>anamorphic</key>
<true />
@@ -6047,6 +6060,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
@@ -6066,7 +6081,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string>level=40:ref=2:mixed-refs:bframes=3:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:analyse=all:no-fast-pskip:filter=-2,-1</string>
</dict>
- <key>iPhone / iPod Touch</key>
<dict>
<key>anamorphic</key>
<false />
@@ -6117,6 +6131,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
@@ -6136,7 +6152,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<key>x264_options</key>
<string>level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:trellis=1</string>
</dict>
- <key>iPod High-Rez</key>
<dict>
<key>anamorphic</key>
<false />
@@ -6187,6 +6202,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
@@ -6206,7 +6223,6 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<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>
- <key>iPod Low-Rez</key>
<dict>
<key>anamorphic</key>
<false />
@@ -6257,6 +6273,8 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
</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>
@@ -6276,7 +6294,7 @@ R2RrUAAABBgBAQACAAAAQAAAABAAAAAQ////AP///wD///8A////AP///wD///8A////AP///wD///8A
<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>
+ </array>
<key>widget-deps</key>
<dict>
<key>anamorphic</key>
diff --git a/gtk/src/standard_presets.xml b/gtk/src/standard_presets.xml
index 37fc524da..5ae60679d 100644
--- a/gtk/src/standard_presets.xml
+++ b/gtk/src/standard_presets.xml
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
-<dict>
- <key>Animation</key>
+<array>
<dict>
+ <key>preset_name</key>
+ <string>Animation</string>
<key>anamorphic</key>
<true />
<key>autocrop</key>
@@ -72,8 +73,9 @@
<key>x264_options</key>
<string>ref=5:mixed-refs:bframes=6:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip:filter=2,2</string>
</dict>
- <key>AppleTV</key>
<dict>
+ <key>preset_name</key>
+ <string>AppleTV</string>
<key>anamorphic</key>
<true />
<key>autoscale</key>
@@ -152,8 +154,9 @@
<key>x264_options</key>
<string>bframes=3:ref=1:me=umh:no-fast-pskip=1:trellis=1:cabac=0</string>
</dict>
- <key>Bedlam</key>
<dict>
+ <key>preset_name</key>
+ <string>Bedlam</string>
<key>anamorphic</key>
<true />
<key>autocrop</key>
@@ -222,8 +225,9 @@
<key>x264_options</key>
<string>ref=16:mixed-refs:bframes=16:bime:weightb:b-rdo: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>
- <key>Blind</key>
<dict>
+ <key>preset_name</key>
+ <string>Blind</string>
<key>anamorphic</key>
<false />
<key>autocrop</key>
@@ -292,8 +296,9 @@
<key>x264_options</key>
<string></string>
</dict>
- <key>Broke</key>
<dict>
+ <key>preset_name</key>
+ <string>Broke</string>
<key>anamorphic</key>
<false />
<key>autocrop</key>
@@ -362,8 +367,9 @@
<key>x264_options</key>
<string>ref=3:mixed-refs:bframes=16:bime:weightb:b-rdo:b-pyramid:direct=auto:me=umh:trellis=1:analyse=all:8x8dct:no-fast-pskip</string>
</dict>
- <key>Classic</key>
<dict>
+ <key>preset_name</key>
+ <string>Classic</string>
<key>anamorphic</key>
<false />
<key>autocrop</key>
@@ -430,8 +436,9 @@
<key>x264_options</key>
<string></string>
</dict>
- <key>Constant Quality Rate</key>
<dict>
+ <key>preset_name</key>
+ <string>Constant Quality Rate</string>
<key>anamorphic</key>
<true />
<key>autocrop</key>
@@ -500,8 +507,9 @@
<key>x264_options</key>
<string>ref=3:mixed-refs:bframes=3:b-pyramid:b-rdo:bime:weightb:filter=-2,-1:trellis=1:analyse=all:8x8dct:me=umh</string>
</dict>
- <key>Deux Six Quatre</key>
<dict>
+ <key>preset_name</key>
+ <string>Deux Six Quatre</string>
<key>anamorphic</key>
<true />
<key>autocrop</key>
@@ -570,8 +578,9 @@
<key>x264_options</key>
<string>ref=5:mixed-refs:bframes=3:bime:weightb:b-rdo:b-pyramid:me=umh:subme=7:trellis=1:analyse=all:8x8dct:no-fast-pskip</string>
</dict>
- <key>Film</key>
<dict>
+ <key>preset_name</key>
+ <string>Film</string>
<key>anamorphic</key>
<true />
<key>autocrop</key>
@@ -640,8 +649,9 @@
<key>x264_options</key>
<string>ref=3:mixed-refs:bframes=6:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip</string>
</dict>
- <key>Normal</key>
<dict>
+ <key>preset_name</key>
+ <string>Normal</string>
<key>anamorphic</key>
<true />
<key>autocrop</key>
@@ -710,8 +720,9 @@
<key>x264_options</key>
<string>ref=2:bframes=2:me=umh</string>
</dict>
- <key>PS3</key>
<dict>
+ <key>preset_name</key>
+ <string>PS3</string>
<key>anamorphic</key>
<true />
<key>autoscale</key>
@@ -776,8 +787,9 @@
<key>x264_options</key>
<string>level=41:me=umh</string>
</dict>
- <key>PSP</key>
<dict>
+ <key>preset_name</key>
+ <string>PSP</string>
<key>anamorphic</key>
<false />
<key>autocrop</key>
@@ -844,8 +856,9 @@
<key>x264_options</key>
<string></string>
</dict>
- <key>QuickTime</key>
<dict>
+ <key>preset_name</key>
+ <string>QuickTime</string>
<key>anamorphic</key>
<true />
<key>autocrop</key>
@@ -914,8 +927,9 @@
<key>x264_options</key>
<string>ref=3:mixed-refs:bframes=3:bime:weightb:b-rdo:direct=auto:me=umh:analyse=all:trellis=1:no-fast-pskip</string>
</dict>
- <key>Television</key>
<dict>
+ <key>preset_name</key>
+ <string>Television</string>
<key>anamorphic</key>
<false />
<key>autocrop</key>
@@ -984,8 +998,9 @@
<key>x264_options</key>
<string>ref=3:mixed-refs:bframes=6:bime:weightb:direct=auto:b-pyramid:me=umh:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip</string>
</dict>
- <key>Xbox 360</key>
<dict>
+ <key>preset_name</key>
+ <string>Xbox 360</string>
<key>anamorphic</key>
<true />
<key>autoscale</key>
@@ -1050,8 +1065,9 @@
<key>x264_options</key>
<string>level=40:ref=2:mixed-refs:bframes=3:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:analyse=all:no-fast-pskip:filter=-2,-1</string>
</dict>
- <key>iPhone / iPod Touch</key>
<dict>
+ <key>preset_name</key>
+ <string>iPhone / iPod Touch</string>
<key>anamorphic</key>
<false />
<key>autocrop</key>
@@ -1120,8 +1136,9 @@
<key>x264_options</key>
<string>level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:trellis=1</string>
</dict>
- <key>iPod High-Rez</key>
<dict>
+ <key>preset_name</key>
+ <string>iPod High-Rez</string>
<key>anamorphic</key>
<false />
<key>autocrop</key>
@@ -1190,8 +1207,9 @@
<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>
- <key>iPod Low-Rez</key>
<dict>
+ <key>preset_name</key>
+ <string>iPod Low-Rez</string>
<key>anamorphic</key>
<false />
<key>autocrop</key>
@@ -1260,5 +1278,5 @@
<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>
+</array>
</plist>