OSDN Git Service

LinGui: bundle the standard presets in the exe. eliminates installing
authorjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sun, 24 Aug 2008 02:10:15 +0000 (02:10 +0000)
committerjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sun, 24 Aug 2008 02:10:15 +0000 (02:10 +0000)
a separate file.

git-svn-id: svn://localhost/HandBrake/trunk@1651 b64f7644-9d1e-0410-96f1-a4d463321fa5

gtk/src/Makefile.am
gtk/src/callbacks.c
gtk/src/settings.c
gtk/src/standard_presets.h [new file with mode: 0644]

index 884b155..a942f16 100644 (file)
@@ -56,7 +56,6 @@ icons =       \
        hb-working4.16.png \
        hb-working5.16.png 
 
-hb_data = standard_presets
 hb_menu = ghb.desktop
 
 builderdir = $(datadir)/ghb/builder
@@ -115,9 +114,6 @@ uninstall-local:
                fi; \
                rm -f $(DESTDIR)/$(datadir)/icons/hicolor/$$SIZE/apps/$$FILE; \
        done
-       for file in $(hb_data); do \
-               rm -f $(DESTDIR)/$(datadir)/ghb/$$file; \
-       done
        rm -f $(DESTDIR)/$(datadir)/applications/$(hb_menu)
 
 gtk_update_icon_cache = gtk-update-icon-cache -f -t $(DESTDIR)/$(datadir)/icons/hicolor
@@ -138,10 +134,6 @@ install-data-local:
                mkdir -p $(DESTDIR)/$(datadir)/icons/hicolor/$$SIZE/apps/; \
                $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)/$(datadir)/icons/hicolor/$$SIZE/apps/$$FILE; \
        done
-       for file in $(hb_data); do \
-               mkdir -p $(DESTDIR)/$(datadir)/ghb/; \
-               $(INSTALL_DATA) $(srcdir)/$$file $(DESTDIR)/$(datadir)/ghb/$$file; \
-       done
        @-if test -n "$(DESTDIR)/$(datadir)"; then \
                echo "Updating Gtk icon cache."; \
                $(gtk_update_icon_cache); \
index 0043aac..192ee0e 100644 (file)
@@ -1912,6 +1912,7 @@ ghb_select_preset(GtkBuilder *builder, const gchar *preset)
        GtkTreeIter iter;
        gchar *tpreset;
        gboolean done;
+       gboolean foundit = FALSE;
        
        g_debug("select_preset()\n");
        if (preset == NULL) return;
@@ -1926,11 +1927,17 @@ ghb_select_preset(GtkBuilder *builder, const gchar *preset)
                        if (strcmp(preset, tpreset) == 0)
                        {
                                gtk_tree_selection_select_iter (selection, &iter);
+                               foundit = TRUE;
                                break;
                        }
                        done = !gtk_tree_model_iter_next(store, &iter);
                } while (!done);
        }
+       if (!foundit)
+       {
+               gtk_tree_model_get_iter_first(store, &iter);
+               gtk_tree_selection_select_iter (selection, &iter);
+       }
 }
 
 static void
index f42f9f1..989d1d3 100644 (file)
@@ -862,6 +862,9 @@ dump_settings(GHashTable *settings)
 const gchar defaultSettings[] =
 #include "internal_defaults.h"
 ;
+const gchar standardPresets[] =
+#include "standard_presets.h"
+;
 
 typedef struct
 {
@@ -1478,68 +1481,43 @@ ghb_prefs_load(signal_user_data_t *ud)
 void
 ghb_presets_reload(signal_user_data_t *ud)
 {
-       gchar *config;
        GKeyFile *keyFile;
+       gboolean res;
 
        g_debug("ghb_presets_reload()\n");
        keyFile = g_key_file_new();
+       g_key_file_load_from_data( keyFile, standardPresets, 
+                                                         sizeof(standardPresets), G_KEY_FILE_NONE, NULL);
+
+       gchar **groups, **keys;
+       gchar *value;
+       gint ii, jj;
 
-       config = g_strdup_printf ("./standard_presets");
-       if (!g_file_test(config, G_FILE_TEST_IS_REGULAR))
+       // Merge the keyfile contents into our presets
+       groups = g_key_file_get_groups(keyFile, NULL);
+       // First remove any existing groups with the same names
+       for (ii = 0; groups[ii] != NULL; ii++)
        {
-               g_free(config);
-       
-               const gchar* const *dirs;
-               gint ii;
-               dirs = g_get_system_data_dirs();
-               if (dirs != NULL)
-               {
-                       for (ii = 0; dirs[ii] != NULL; ii++)
-                       {
-                               config = g_strdup_printf("%s/ghb/standard_presets", dirs[ii]);
-                               if (g_file_test(config, G_FILE_TEST_IS_REGULAR))
-                               {
-                                       break;
-                               }
-                               g_free(config);
-                               config = NULL;
-                       }
-               }
+               g_key_file_remove_group(presetsKeyFile, groups[ii], NULL);
        }
-       if (config != NULL)
+       for (ii = 0; groups[ii] != NULL; ii++)
        {
-               gchar **groups, **keys;
-               gchar *value;
-               gint ii, jj;
-
-               g_key_file_load_from_file( keyFile, config, 
-                                                                 G_KEY_FILE_KEEP_COMMENTS, NULL);
-               // Merge the keyfile contents into our presets
-               groups = g_key_file_get_groups(keyFile, NULL);
-               // First remove any existing groups with the same names
-               for (ii = 0; groups[ii] != NULL; ii++)
-               {
-                       g_key_file_remove_group(presetsKeyFile, groups[ii], NULL);
-               }
-               for (ii = 0; groups[ii] != NULL; ii++)
+               keys = g_key_file_get_keys(keyFile, groups[ii], NULL, NULL);
+               for (jj = 0; keys[jj] != NULL; jj++)
                {
-                       keys = g_key_file_get_keys(keyFile, groups[ii], NULL, NULL);
-                       for (jj = 0; keys[jj] != NULL; jj++)
+                       GError *err = NULL;
+                       value = g_key_file_get_string(
+                               keyFile, groups[ii], keys[jj], &err);
+                       if (value && !err)
                        {
-                               GError *err = NULL;
-                               value = g_key_file_get_string(
-                                       keyFile, groups[ii], keys[jj], &err);
-                               if (value && !err)
-                               {
-                                       g_key_file_set_string(
-                                               presetsKeyFile, groups[ii], keys[jj], value);
-                               }
-                               if (value) g_free(value);
+                               g_key_file_set_string(
+                                       presetsKeyFile, groups[ii], keys[jj], value);
                        }
-                       g_strfreev(keys);
+                       if (value) g_free(value);
                }
-               g_strfreev(groups);
+               g_strfreev(keys);
        }
+       g_strfreev(groups);
        g_key_file_free(keyFile);
        build_presets_list(ud->settings);
 }
@@ -1555,37 +1533,17 @@ ghb_presets_load(signal_user_data_t *ud)
        dir = g_get_user_config_dir();
        config = g_strdup_printf ("%s/ghb/presets", dir);
 
-       if (!g_file_test(config, G_FILE_TEST_IS_REGULAR))
-       {
-               g_free(config);
-               config = g_strdup_printf ("./standard_presets");
-               if (!g_file_test(config, G_FILE_TEST_IS_REGULAR))
-               {
-                       g_free(config);
-               
-                       const gchar* const *dirs;
-                       gint ii;
-                       dirs = g_get_system_data_dirs();
-                       if (dirs != NULL)
-                       {
-                               for (ii = 0; dirs[ii] != NULL; ii++)
-                               {
-                                       config = g_strdup_printf("%s/ghb/standard_presets", dirs[ii]);
-                                       if (g_file_test(config, G_FILE_TEST_IS_REGULAR))
-                                       {
-                                               break;
-                                       }
-                                       g_free(config);
-                                       config = NULL;
-                               }
-                       }
-               }
-       }
-       if (config != NULL)
+       if (g_file_test(config, G_FILE_TEST_IS_REGULAR))
        {
                g_key_file_load_from_file( presetsKeyFile, config, 
                                                                  G_KEY_FILE_KEEP_COMMENTS, NULL);
        }
+       else
+       {
+               g_key_file_load_from_data( presetsKeyFile, standardPresets, 
+                                                         sizeof(standardPresets), G_KEY_FILE_NONE, NULL);
+       }
+       g_free(config);
        build_presets_list(ud->settings);
 }
 
diff --git a/gtk/src/standard_presets.h b/gtk/src/standard_presets.h
new file mode 100644 (file)
index 0000000..bfdfc05
--- /dev/null
@@ -0,0 +1,605 @@
+"\n"
+"[Animation]\n"
+"preset_description=HandBrake's settings for cartoons, anime, and CGI.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=faac\n"
+"pref_audio_bitrate=160\n"
+"pref_audio_rate=source\n"
+"pref_audio_mix=dpl2\n"
+"pref_audio_drc=1\n"
+"chapter_markers=1\n"
+"container=mkv\n"
+"autocrop=1\n"
+"autoscale=1\n"
+"max_width=0\n"
+"max_height=0\n"
+"anamorphic=1\n"
+"keep_aspect=0\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=slower\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=1\n"
+"turbo=1\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=1000\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=ref=5:mixed-refs:bframes=6:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=5:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip:filter=2,2\n"
+"\n"
+"[AppleTV]\n"
+"preset_description=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.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=faac,ac3\n"
+"pref_audio_bitrate=160,160\n"
+"pref_audio_rate=48,source\n"
+"pref_audio_mix=dpl2,none\n"
+"pref_audio_drc=1,1\n"
+"chapter_markers=1\n"
+"container=mp4\n"
+"large_mp4=1\n"
+"autoscale=1\n"
+"max_width=0\n"
+"max_height=0\n"
+"anamorphic=1\n"
+"keep_aspect=0\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=0\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=2500\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=bframes=3:ref=1:subme=5:me=umh:no-fast-pskip=1:trellis=1:cabac=0\n"
+"\n"
+"[Bedlam]\n"
+"preset_description=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.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=ac3\n"
+"pref_audio_bitrate=160\n"
+"pref_audio_rate=source\n"
+"pref_audio_mix=none\n"
+"pref_audio_drc=1\n"
+"chapter_markers=1\n"
+"container=mkv\n"
+"autocrop=1\n"
+"autoscale=1\n"
+"max_width=0\n"
+"max_height=0\n"
+"anamorphic=1\n"
+"keep_aspect=0\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=1\n"
+"turbo=1\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=1800\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=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\n"
+"\n"
+"[Blind]\n"
+"preset_description=HandBrake's preset for impatient people who don't care about picture quality.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=faac\n"
+"pref_audio_bitrate=128\n"
+"pref_audio_rate=source\n"
+"pref_audio_mix=dpl2\n"
+"pref_audio_drc=1\n"
+"chapter_markers=1\n"
+"container=mp4\n"
+"autocrop=1\n"
+"autoscale=0\n"
+"max_width=512\n"
+"max_height=0\n"
+"anamorphic=0\n"
+"keep_aspect=1\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=ffmpeg\n"
+"two_pass=0\n"
+"turbo=0\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=512\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=\n"
+"\n"
+"[Broke]\n"
+"preset_description=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.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=faac\n"
+"pref_audio_bitrate=128\n"
+"pref_audio_rate=source\n"
+"pref_audio_mix=dpl2\n"
+"pref_audio_drc=1\n"
+"chapter_markers=1\n"
+"container=mp4\n"
+"autocrop=1\n"
+"autoscale=0\n"
+"max_width=640\n"
+"max_height=0\n"
+"anamorphic=0\n"
+"keep_aspect=1\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=1\n"
+"turbo=1\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_target=1\n"
+"video_bitrate=1600\n"
+"video_target_size=695\n"
+"video_quality=64\n"
+"x264_options=ref=3:mixed-refs:bframes=16:bime:weightb:b-rdo:b-pyramid:direct=auto:me=umh:subme=6:trellis=1:analyse=all:8x8dct:no-fast-pskip\n"
+"\n"
+"[Classic]\n"
+"preset_description=HandBrake's traditional, faster, lower-quality settings.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=faac\n"
+"pref_audio_bitrate=160\n"
+"pref_audio_rate=source\n"
+"pref_audio_mix=dpl2\n"
+"pref_audio_drc=1\n"
+"chapter_markers=0\n"
+"container=mp4\n"
+"autocrop=1\n"
+"autoscale=1\n"
+"max_width=0\n"
+"max_height=0\n"
+"anamorphic=0\n"
+"keep_aspect=1\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=ffmpeg\n"
+"two_pass=0\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=1000\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=\n"
+"\n"
+"[Constant Quality Rate]\n"
+"preset_description=HandBrake's preset for consistently excellent quality in one pass, with the downside of entirely unpredictable file sizes and bitrates.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=ac3\n"
+"pref_audio_bitrate=160\n"
+"pref_audio_rate=source\n"
+"pref_audio_mix=none\n"
+"pref_audio_drc=1\n"
+"chapter_markers=1\n"
+"container=mkv\n"
+"autocrop=1\n"
+"autoscale=1\n"
+"max_width=0\n"
+"max_height=0\n"
+"anamorphic=1\n"
+"keep_aspect=0\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=0\n"
+"turbo=0\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_constant=1\n"
+"video_bitrate=2000\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=ref=3:mixed-refs:bframes=3:b-pyramid:b-rdo:bime:weightb:filter=-2,-1:subme=6:trellis=1:analyse=all:8x8dct:me=umh\n"
+"\n"
+"[Deux Six Quatre]\n"
+"preset_description=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.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=ac3\n"
+"pref_audio_bitrate=160\n"
+"pref_audio_rate=source\n"
+"pref_audio_mix=none\n"
+"pref_audio_drc=1\n"
+"chapter_markers=1\n"
+"container=mkv\n"
+"autocrop=1\n"
+"autoscale=1\n"
+"max_width=0\n"
+"max_height=0\n"
+"anamorphic=1\n"
+"keep_aspect=0\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=1\n"
+"turbo=1\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=1600\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=ref=5:mixed-refs:bframes=3:bime:weightb:b-rdo:b-pyramid:me=umh:subme=7:trellis=1:analyse=all:8x8dct:no-fast-pskip\n"
+"\n"
+"[Film]\n"
+"preset_description=HandBrake's preset for feature films.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=ac3\n"
+"pref_audio_bitrate=160\n"
+"pref_audio_rate=source\n"
+"pref_audio_mix=none\n"
+"pref_audio_drc=1\n"
+"chapter_markers=1\n"
+"container=mkv\n"
+"autocrop=1\n"
+"autoscale=1\n"
+"max_width=0\n"
+"max_height=0\n"
+"anamorphic=1\n"
+"keep_aspect=0\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=1\n"
+"turbo=1\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=1800\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=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\n"
+"\n"
+"[iPhone / iPod Touch]\n"
+"preset_description=HandBrake's settings for the iPhone and iPod Touch.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=faac\n"
+"pref_audio_bitrate=128\n"
+"pref_audio_rate=48\n"
+"pref_audio_mix=dpl2\n"
+"pref_audio_drc=1\n"
+"chapter_markers=1\n"
+"container=mp4\n"
+"ipod_file=1\n"
+"autocrop=1\n"
+"autoscale=0\n"
+"max_width=480\n"
+"max_height=0\n"
+"anamorphic=0\n"
+"keep_aspect=1\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=0\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=960\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=level=30:cabac=0:ref=1:analyse=all:me=umh:subme=6:no-fast-pskip=1:trellis=1\n"
+"\n"
+"[iPod High-Rez]\n"
+"preset_description=HandBrake's high resolution settings for the iPod. Good video quality, great for viewing on a TV using your iPod\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=faac\n"
+"pref_audio_bitrate=160\n"
+"pref_audio_rate=48\n"
+"pref_audio_mix=dpl2\n"
+"pref_audio_drc=1\n"
+"chapter_markers=1\n"
+"container=mp4\n"
+"ipod_file=1\n"
+"autocrop=1\n"
+"autoscale=0\n"
+"max_width=640\n"
+"max_height=0\n"
+"anamorphic=0\n"
+"keep_aspect=1\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=0\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=1500\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1\n"
+"\n"
+"[iPod Low-Rez]\n"
+"preset_description=HandBrake's low resolution settings for the iPod. Optimized for great playback on the iPod screen, with smaller file size.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=faac\n"
+"pref_audio_bitrate=160\n"
+"pref_audio_rate=48\n"
+"pref_audio_mix=dpl2\n"
+"pref_audio_drc=1\n"
+"chapter_markers=1\n"
+"container=mp4\n"
+"ipod_file=1\n"
+"autocrop=1\n"
+"autoscale=0\n"
+"max_width=320\n"
+"max_height=0\n"
+"anamorphic=0\n"
+"keep_aspect=1\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=0\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=700\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1\n"
+"\n"
+"[Normal]\n"
+"preset_description=HandBrake's normal, default settings.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=faac\n"
+"pref_audio_bitrate=160\n"
+"pref_audio_rate=source\n"
+"pref_audio_mix=dpl2\n"
+"pref_audio_drc=1\n"
+"chapter_markers=1\n"
+"container=mp4\n"
+"autocrop=1\n"
+"autoscale=1\n"
+"max_width=0\n"
+"max_height=0\n"
+"anamorphic=1\n"
+"keep_aspect=0\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=1\n"
+"turbo=1\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=1500\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=ref=2:bframes=2:subme=5:me=umh\n"
+"\n"
+"[PSP]\n"
+"preset_description=HandBrake's settings for the Sony PlayStation Portable.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=faac\n"
+"pref_audio_bitrate=128\n"
+"pref_audio_rate=48\n"
+"pref_audio_mix=dpl2\n"
+"pref_audio_drc=1\n"
+"chapter_markers=1\n"
+"container=mp4\n"
+"autocrop=1\n"
+"autoscale=0\n"
+"max_width=368\n"
+"max_height=208\n"
+"anamorphic=0\n"
+"keep_aspect=1\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=ffmpeg\n"
+"two_pass=0\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=1024\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=\n"
+"\n"
+"[PS3]\n"
+"preset_description=HandBrake's settings for the Sony PlayStation 3.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=faac\n"
+"pref_audio_bitrate=160\n"
+"pref_audio_rate=48\n"
+"pref_audio_mix=dpl2\n"
+"pref_audio_drc=1\n"
+"chapter_markers=0\n"
+"container=mp4\n"
+"autoscale=1\n"
+"max_width=0\n"
+"max_height=0\n"
+"anamorphic=1\n"
+"keep_aspect=0\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=0\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=2500\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=level=41:subme=5:me=umh\n"
+"\n"
+"[QuickTime]\n"
+"preset_description=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.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=faac\n"
+"pref_audio_bitrate=160\n"
+"pref_audio_rate=source\n"
+"pref_audio_mix=dpl2\n"
+"pref_audio_drc=1\n"
+"chapter_markers=1\n"
+"container=mp4\n"
+"autocrop=1\n"
+"autoscale=1\n"
+"max_width=0\n"
+"max_height=0\n"
+"anamorphic=1\n"
+"keep_aspect=0\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=1\n"
+"turbo=1\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=2000\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=ref=3:mixed-refs:bframes=3:bime:weightb:b-rdo:direct=auto:me=umh:subme=5:analyse=all:trellis=1:no-fast-pskip\n"
+"\n"
+"[Television]\n"
+"preset_description=HandBrake's settings for video from television.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=faac\n"
+"pref_audio_bitrate=160\n"
+"pref_audio_rate=source\n"
+"pref_audio_mix=dpl2\n"
+"pref_audio_drc=1\n"
+"chapter_markers=1\n"
+"container=mkv\n"
+"autocrop=1\n"
+"autoscale=1\n"
+"max_width=0\n"
+"max_height=0\n"
+"anamorphic=0\n"
+"keep_aspect=1\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=slower\n"
+"denoise=1\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=1\n"
+"turbo=1\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=1300\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=ref=3:mixed-refs:bframes=6:bime:weightb:direct=auto:b-pyramid:me=umh:subme=6:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip\n"
+"\n"
+"[Xbox 360]\n"
+"preset_description=HandBrake's settings for the Microsoft Xbox 360.\n"
+"preset_type=0\n"
+"subtitle_lang=none\n"
+"pref_audio_codec=faac\n"
+"pref_audio_bitrate=160\n"
+"pref_audio_rate=48\n"
+"pref_audio_mix=dpl2\n"
+"pref_audio_drc=1\n"
+"chapter_markers=0\n"
+"container=mp4\n"
+"autoscale=1\n"
+"max_width=0\n"
+"max_height=0\n"
+"anamorphic=1\n"
+"keep_aspect=0\n"
+"detelecine=0\n"
+"decomb=0\n"
+"deinterlace=none\n"
+"denoise=0\n"
+"grayscale=0\n"
+"deblock=0\n"
+"video_codec=x264\n"
+"two_pass=0\n"
+"variable_frame_rate=0\n"
+"framerate=source\n"
+"vquality_type_bitrate=1\n"
+"video_bitrate=2000\n"
+"video_target_size=700\n"
+"video_quality=64\n"
+"x264_options=level=40:ref=2:mixed-refs:bframes=3:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=5:analyse=all:no-fast-pskip:filter=-2,-1\n"