summaryrefslogtreecommitdiffstats
path: root/gtk/src/videohandler.c
diff options
context:
space:
mode:
authorJohn Stebbins <[email protected]>2016-05-29 09:43:56 -0600
committerJohn Stebbins <[email protected]>2016-05-29 09:46:12 -0600
commit1db4f9898de375ee7d83fdf56e2af5de3ef53671 (patch)
tree09508f3552acd9d169f312529d95e0cc2364315e /gtk/src/videohandler.c
parentaae64bbd7be3907633e833d30edde605a5887de1 (diff)
vpx: add encoder presets
presets are veryfast - deadline=good:cpu-used=5 faster - deadline=good:cpu-used=4 fast - deadline=good:cpu-used=3 medium - deadline=good:cpu-used=2 slow - deadline=good:cpu-used=1 slower - deadline=good:cpu-used=0 veryslow - deadline=best:cpu-used=0
Diffstat (limited to 'gtk/src/videohandler.c')
-rw-r--r--gtk/src/videohandler.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/gtk/src/videohandler.c b/gtk/src/videohandler.c
index 10724f333..0ef8ec1bb 100644
--- a/gtk/src/videohandler.c
+++ b/gtk/src/videohandler.c
@@ -40,6 +40,26 @@ int ghb_get_video_encoder(GhbValue *settings)
return hb_video_encoder_get_from_name(encoder);
}
+void ghb_set_video_preset(GhbValue *settings, int encoder, const char * preset)
+{
+ const char * const * videoPresets;
+ int ii;
+
+ videoPresets = hb_video_encoder_get_presets(encoder);
+ for (ii = 0; preset && videoPresets && videoPresets[ii]; ii++)
+ {
+ if (!strcasecmp(preset, videoPresets[ii]))
+ {
+ ghb_dict_set_int(settings, "VideoPresetSlider", ii);
+ break;
+ }
+ }
+ if (preset != NULL)
+ {
+ ghb_dict_set_string(settings, "VideoPreset", preset);
+ }
+}
+
G_MODULE_EXPORT void
vcodec_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
@@ -79,6 +99,9 @@ vcodec_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
gtk_range_set_range(GTK_RANGE(presetSlider), 0, count-1);
}
+ ghb_set_video_preset(ud->settings, encoder, "medium");
+ GhbValue *gval = ghb_dict_get_value(ud->settings, "VideoPresetSlider");
+ ghb_ui_settings_update(ud, ud->settings, "VideoPresetSlider", gval);
// Advanced options are only for x264
if (!(encoder & HB_VCODEC_X264_MASK))