X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=gtk%2Fsrc%2Fx264handler.c;h=72883d85a7cb002daa23958649a149ffe373eb1b;hb=4b72a63eb61a01275493c4bfb51ba02152d1c5e1;hp=2368801a6fde82fb52e068ef990f83cf491a8010;hpb=fdb09bb478a03a07f7de8c19a1ee4d75832533c8;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/gtk/src/x264handler.c b/gtk/src/x264handler.c index 2368801a..72883d85 100644 --- a/gtk/src/x264handler.c +++ b/gtk/src/x264handler.c @@ -42,6 +42,38 @@ x264_widget_changed_cb(GtkWidget *widget, signal_user_data_t *ud) } G_MODULE_EXPORT void +x264_slider_changed_cb(GtkWidget *widget, signal_user_data_t *ud) +{ + ghb_widget_to_setting(ud->settings, widget); + + // Lock slider values to multiples of step_increment + GtkAdjustment * adj = gtk_range_get_adjustment(GTK_RANGE(widget)); + gdouble step = gtk_adjustment_get_step_increment(adj); + gdouble val = gtk_range_get_value(GTK_RANGE(widget)); + gdouble new_val = ((int)((val + step / 2) / step)) * step; + gdouble diff = val - new_val; + if ( diff > 0.0001 || diff < -0.0001 ) + { + gtk_range_set_value(GTK_RANGE(widget), new_val); + } + else if (!ignore_options_update) + { + ignore_options_update = TRUE; + x264_opt_update(ud, widget); + ignore_options_update = FALSE; + } + ghb_check_dependency(ud, widget, NULL); + ghb_clear_presets_selection(ud); +} + +G_MODULE_EXPORT gchar* +x264_format_slider_cb(GtkScale *scale, gdouble val, signal_user_data_t *ud) +{ + return g_strdup_printf("%-6.6g", val); +} + + +G_MODULE_EXPORT void x264_me_changed_cb(GtkWidget *widget, signal_user_data_t *ud) { gint me; @@ -1006,10 +1038,6 @@ sanitize_x264opts(signal_user_data_t *ud, const gchar *options) { x264_remove_opt(split, x264_bpyramid_syns); } - if (!ghb_settings_get_boolean(ud->settings, "x264_cabac")) - { - x264_remove_opt(split, x264_trellis_syns); - } // Remove entries that match the defaults for (ii = 0; split[ii] != NULL; ii++) {