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)
{
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"));
}
{
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;
}
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)
{
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);
void
ghb_settings_close()
{
- //if (internalPlist)
- //ghb_value_free(internalPlist);
+ if (internalPlist)
+ ghb_value_free(internalPlist);
if (presetsPlist)
ghb_value_free(presetsPlist);
if (prefsPlist)
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");
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
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);
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();
}
}
" </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"
" <key>preset_description</key>\n"
" <string>HandBrake'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"
"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"
" <string>HandBrake'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"
" <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"
" <string>HandBrake's settings maxed out for slowest encoding and"
" highest quality. Use at your own risk. So slow it's not just insa"
"ne...it'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"
"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"
" <key>preset_description</key>\n"
" <string>HandBrake's preset for impatient people who don'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"
" <key>x264_options</key>\n"
" <string></string>\n"
" </dict>\n"
-" <key>Broke</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <false />\n"
" <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>\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>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"
" <key>preset_description</key>\n"
" <string>HandBrake'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"
" <key>x264_options</key>\n"
" <string></string>\n"
" </dict>\n"
-" <key>Constant Quality Rate</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <true />\n"
" <string>HandBrake'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"
" <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"
"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>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"
" </array>\n"
" <key>preset_description</key>\n"
" <string>HandBrake'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"
"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"
" </array>\n"
" <key>preset_description</key>\n"
" <string>HandBrake'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"
" <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"
" <key>preset_description</key>\n"
" <string>HandBrake'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"
" <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"
" <key>preset_description</key>\n"
" <string>HandBrake'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"
" <key>x264_options</key>\n"
" <string></string>\n"
" </dict>\n"
-" <key>QuickTime</key>\n"
" <dict>\n"
" <key>anamorphic</key>\n"
" <true />\n"
" <string>HandBrake's high quality settings for use with QuickTim"
"e. It can be slow, so use it when the Normal preset doesn'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>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"
" <key>preset_description</key>\n"
" <string>HandBrake'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>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"
" <key>preset_description</key>\n"
" <string>HandBrake'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"
"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"
" <key>preset_description</key>\n"
" <string>HandBrake'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>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"
" <key>preset_description</key>\n"
" <string>HandBrake'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>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"
" <string>HandBrake'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>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"
</dict>
</dict>
<key>standard-presets</key>
- <dict>
- <key>Animation</key>
+ <array>
<dict>
<key>anamorphic</key>
<true />
</array>
<key>preset_description</key>
<string>HandBrake'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>
<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 />
</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_name</key>
+ <string>AppleTV</string>
<key>preset_type</key>
<integer>0</integer>
<key>subtitle_lang</key>
<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 />
</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_name</key>
+ <string>Bedlam</string>
<key>preset_type</key>
<integer>0</integer>
<key>subtitle_lang</key>
<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 />
</array>
<key>preset_description</key>
<string>HandBrake's preset for impatient people who don't care about picture quality.</string>
+ <key>preset_name</key>
+ <string>Blind</string>
<key>preset_type</key>
<integer>0</integer>
<key>subtitle_lang</key>
<key>x264_options</key>
<string></string>
</dict>
- <key>Broke</key>
<dict>
<key>anamorphic</key>
<false />
</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>Broke</string>
<key>preset_type</key>
<integer>0</integer>
<key>subtitle_lang</key>
<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 />
</array>
<key>preset_description</key>
<string>HandBrake'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>
<key>x264_options</key>
<string></string>
</dict>
- <key>Constant Quality Rate</key>
<dict>
<key>anamorphic</key>
<true />
</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>Constant Quality Rate</string>
<key>preset_type</key>
<integer>0</integer>
<key>subtitle_lang</key>
<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 />
</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_name</key>
+ <string>Deux Six Quatre</string>
<key>preset_type</key>
<integer>0</integer>
<key>subtitle_lang</key>
<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 />
</array>
<key>preset_description</key>
<string>HandBrake's preset for feature films.</string>
+ <key>preset_name</key>
+ <string>Film</string>
<key>preset_type</key>
<integer>0</integer>
<key>subtitle_lang</key>
<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 />
</array>
<key>preset_description</key>
<string>HandBrake's normal, default settings.</string>
+ <key>preset_name</key>
+ <string>Normal</string>
<key>preset_type</key>
<integer>0</integer>
<key>subtitle_lang</key>
<key>x264_options</key>
<string>ref=2:bframes=2:me=umh</string>
</dict>
- <key>PS3</key>
<dict>
<key>anamorphic</key>
<true />
</array>
<key>preset_description</key>
<string>HandBrake'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>
<key>x264_options</key>
<string>level=41:me=umh</string>
</dict>
- <key>PSP</key>
<dict>
<key>anamorphic</key>
<false />
</array>
<key>preset_description</key>
<string>HandBrake'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>
<key>x264_options</key>
<string></string>
</dict>
- <key>QuickTime</key>
<dict>
<key>anamorphic</key>
<true />
</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_name</key>
+ <string>QuickTime</string>
<key>preset_type</key>
<integer>0</integer>
<key>subtitle_lang</key>
<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 />
</array>
<key>preset_description</key>
<string>HandBrake'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>
<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 />
</array>
<key>preset_description</key>
<string>HandBrake'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>
<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 />
</array>
<key>preset_description</key>
<string>HandBrake'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>
<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 />
</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_name</key>
+ <string>iPod High-Rez</string>
<key>preset_type</key>
<integer>0</integer>
<key>subtitle_lang</key>
<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 />
</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>
+ <key>preset_name</key>
+ <string>iPod Low-Rez</string>
<key>preset_type</key>
<integer>0</integer>
<key>subtitle_lang</key>
<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>
<?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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>