X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=gtk%2Fsrc%2Fhb-backend.c;h=7ac71720b3a5d4dd4ee08303cf679bc5cd61b5c2;hb=80330e859f794e9ae218d54260c70e961f1af204;hp=bf2ff7b944707b07a9596632f033c0a445273d07;hpb=701a385b2d3ad4c95d3d16d62212fbc9078ac2de;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/gtk/src/hb-backend.c b/gtk/src/hb-backend.c index bf2ff7b9..7ac71720 100644 --- a/gtk/src/hb-backend.c +++ b/gtk/src/hb-backend.c @@ -1494,7 +1494,7 @@ init_combo_box(GtkBuilder *builder, const gchar *name) cell = GTK_CELL_RENDERER(gtk_cell_renderer_text_new()); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), cell, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), cell, - "text", 0, "sensitive", 1, NULL); + "markup", 0, "sensitive", 1, NULL); } else { // Combo box entry @@ -1508,6 +1508,7 @@ audio_samplerate_opts_set(GtkBuilder *builder, const gchar *name, hb_rate_t *rat GtkTreeIter iter; GtkListStore *store; gint ii; + gchar *str; g_debug("audio_samplerate_opts_set ()\n"); store = get_combo_box_store(builder, name); @@ -1515,7 +1516,7 @@ audio_samplerate_opts_set(GtkBuilder *builder, const gchar *name, hb_rate_t *rat // Add an item for "Same As Source" gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, - 0, "Same as source", + 0, "Same as source", 1, TRUE, 2, "source", 3, 0.0, @@ -1524,13 +1525,15 @@ audio_samplerate_opts_set(GtkBuilder *builder, const gchar *name, hb_rate_t *rat for (ii = 0; ii < count; ii++) { gtk_list_store_append(store, &iter); + str = g_strdup_printf("%s", rates[ii].string); gtk_list_store_set(store, &iter, - 0, rates[ii].string, + 0, str, 1, TRUE, 2, rates[ii].string, 3, (gdouble)rates[ii].rate, 4, rates[ii].string, -1); + g_free(str); } } @@ -1588,13 +1591,14 @@ mix_opts_set(GtkBuilder *builder, const gchar *name) GtkTreeIter iter; GtkListStore *store; gint ii; + gchar *str; g_debug("mix_opts_set ()\n"); store = get_combo_box_store(builder, name); gtk_list_store_clear(store); gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, - 0, "None", + 0, "None", 1, TRUE, 2, "none", 3, 0.0, @@ -1603,13 +1607,16 @@ mix_opts_set(GtkBuilder *builder, const gchar *name) for (ii = 0; ii < hb_audio_mixdowns_count; ii++) { gtk_list_store_append(store, &iter); + str = g_strdup_printf("%s", + hb_audio_mixdowns[ii].human_readable_name); gtk_list_store_set(store, &iter, - 0, hb_audio_mixdowns[ii].human_readable_name, + 0, str, 1, TRUE, 2, hb_audio_mixdowns[ii].short_name, 3, (gdouble)hb_audio_mixdowns[ii].amixdown, 4, hb_audio_mixdowns[ii].internal_name, -1); + g_free(str); } } @@ -1781,6 +1788,7 @@ audio_track_opts_set(GtkBuilder *builder, const gchar *name, gint titleindex) hb_audio_config_t * audio; gint ii; gint count = 0; + gchar *str; g_debug("audio_track_opts_set ()\n"); store = get_combo_box_store(builder, name); @@ -1811,7 +1819,7 @@ audio_track_opts_set(GtkBuilder *builder, const gchar *name, gint titleindex) // No audio. set some default gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, - 0, "No Audio", + 0, "No Audio", 1, TRUE, 2, "none", 3, -1.0, @@ -1828,13 +1836,15 @@ audio_track_opts_set(GtkBuilder *builder, const gchar *name, gint titleindex) { audio = (hb_audio_config_t *) hb_list_audio_config_item( title->list_audio, ii ); gtk_list_store_append(store, &iter); + str = g_strdup_printf("%s", audio->lang.description); gtk_list_store_set(store, &iter, - 0, audio->lang.description, + 0, str, 1, TRUE, 2, index_str[ii], 3, (gdouble)ii, 4, index_str[ii], -1); + g_free(str); audio_track_opts.map[ii].option = audio->lang.description, audio_track_opts.map[ii].shortOpt = index_str[ii]; audio_track_opts.map[ii].ivalue = ii; @@ -2283,6 +2293,33 @@ generic_opts_set(GtkBuilder *builder, const gchar *name, combo_opts_t *opts) } } +static void +small_opts_set(GtkBuilder *builder, const gchar *name, combo_opts_t *opts) +{ + GtkTreeIter iter; + GtkListStore *store; + gint ii; + gchar *str; + + g_debug("generic_opts_set ()\n"); + if (name == NULL || opts == NULL) return; + store = get_combo_box_store(builder, name); + gtk_list_store_clear(store); + for (ii = 0; ii < opts->count; ii++) + { + gtk_list_store_append(store, &iter); + str = g_strdup_printf("%s", opts->map[ii].option); + gtk_list_store_set(store, &iter, + 0, str, + 1, TRUE, + 2, opts->map[ii].shortOpt, + 3, opts->map[ii].ivalue, + 4, opts->map[ii].svalue, + -1); + g_free(str); + } +} + combo_opts_t* find_combo_table(const gchar *name) { @@ -2454,7 +2491,7 @@ ghb_update_ui_combo_box( generic_opts_set(ud->builder, "PictureDecomb", &decomb_opts); generic_opts_set(ud->builder, "PictureDenoise", &denoise_opts); generic_opts_set(ud->builder, "VideoEncoder", &vcodec_opts); - generic_opts_set(ud->builder, "AudioEncoder", &acodec_opts); + small_opts_set(ud->builder, "AudioEncoder", &acodec_opts); generic_opts_set(ud->builder, "x264_direct", &direct_opts); generic_opts_set(ud->builder, "x264_b_adapt", &badapt_opts); generic_opts_set(ud->builder, "x264_me", &me_opts); @@ -2619,14 +2656,14 @@ audio_bitrate_opts_add(GtkBuilder *builder, const gchar *name, gint rate) GtkListStore *store; gchar *str; - g_debug("audio_rate_opts_add ()\n"); + g_debug("audio_bitrate_opts_add ()\n"); if (rate < 8) return; store = get_combo_box_store(builder, name); if (!find_combo_item_by_int(GTK_TREE_MODEL(store), rate, &iter)) { - str = g_strdup_printf ("%d", rate); + str = g_strdup_printf ("%d", rate); gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, str, @@ -2640,7 +2677,11 @@ audio_bitrate_opts_add(GtkBuilder *builder, const gchar *name, gint rate) } static void -audio_bitrate_opts_clean(GtkBuilder *builder, const gchar *name, gint last_rate) +audio_bitrate_opts_clean( + GtkBuilder *builder, + const gchar *name, + gint first_rate, + gint last_rate) { GtkTreeIter iter; GtkListStore *store; @@ -2648,6 +2689,7 @@ audio_bitrate_opts_clean(GtkBuilder *builder, const gchar *name, gint last_rate) gboolean done = FALSE; gint ii = 0; guint last = (guint)last_rate; + guint first = (guint)first_rate; g_debug("audio_bitrate_opts_clean ()\n"); store = get_combo_box_store(builder, name); @@ -2661,7 +2703,7 @@ audio_bitrate_opts_clean(GtkBuilder *builder, const gchar *name, gint last_rate) { done = !gtk_list_store_remove(store, &iter); } - else if (ivalue > last) + else if (ivalue < first || ivalue > last) { ii++; gtk_list_store_set(store, &iter, 1, FALSE, -1); @@ -2683,6 +2725,7 @@ audio_bitrate_opts_set(GtkBuilder *builder, const gchar *name) GtkTreeIter iter; GtkListStore *store; gint ii; + gchar *str; g_debug("audio_bitrate_opts_set ()\n"); store = get_combo_box_store(builder, name); @@ -2690,13 +2733,16 @@ audio_bitrate_opts_set(GtkBuilder *builder, const gchar *name) for (ii = 0; ii < hb_audio_bitrates_count; ii++) { gtk_list_store_append(store, &iter); + str = g_strdup_printf ("%s", + hb_audio_bitrates[ii].string); gtk_list_store_set(store, &iter, - 0, hb_audio_bitrates[ii].string, + 0, str, 1, TRUE, 2, hb_audio_bitrates[ii].string, 3, (gdouble)hb_audio_bitrates[ii].rate, 4, hb_audio_bitrates[ii].string, -1); + g_free(str); } } @@ -2707,9 +2753,12 @@ ghb_set_passthru_bitrate_opts(GtkBuilder *builder, gint bitrate) } void -ghb_set_default_bitrate_opts(GtkBuilder *builder, gint last_rate) +ghb_set_default_bitrate_opts( + GtkBuilder *builder, + gint first_rate, + gint last_rate) { - audio_bitrate_opts_clean(builder, "AudioBitrate", last_rate); + audio_bitrate_opts_clean(builder, "AudioBitrate", first_rate, last_rate); } static ghb_status_t hb_status; @@ -3114,7 +3163,12 @@ ghb_set_scale(signal_user_data_t *ud, gint mode) if (busy) return; busy = TRUE; - + if (!ud->dont_clear_presets && (keep_width || keep_height)) + { + ghb_settings_set_int(ud->settings, "PictureWidth", 0); + ghb_settings_set_int(ud->settings, "PictureHeight", 0); + } + // First configure widgets mod = ghb_settings_combo_int(ud->settings, "PictureModulus"); pic_par = ghb_settings_combo_int(ud->settings, "PicturePAR"); @@ -3250,7 +3304,7 @@ ghb_set_scale(signal_user_data_t *ud, gint mode) job->anamorphic.dar_height = 0; if (keep_height && pic_par == 2) - width = ((double)height * crop_width / crop_height) + 0.5; + width = ((double)height * crop_width / crop_height) + mod / 2; job->width = width; job->height = height; job->maxWidth = max_width; @@ -3501,7 +3555,7 @@ ghb_validate_filters(signal_user_data_t *ud) if (!decomb_deint && index == 1) { str = ghb_settings_get_string(ud->settings, "PictureDeinterlaceCustom"); - if (!ghb_validate_filter_string(str, 4)) + if (!ghb_validate_filter_string(str, -1)) { message = g_strdup_printf( "Invalid Deinterlace Settings:\n\n%s\n", @@ -3518,7 +3572,7 @@ ghb_validate_filters(signal_user_data_t *ud) if (index == 1) { str = ghb_settings_get_string(ud->settings, "PictureDetelecineCustom"); - if (!ghb_validate_filter_string(str, 6)) + if (!ghb_validate_filter_string(str, -1)) { message = g_strdup_printf( "Invalid Detelecine Settings:\n\n%s\n", @@ -3535,7 +3589,7 @@ ghb_validate_filters(signal_user_data_t *ud) if (decomb_deint && index == 1) { str = ghb_settings_get_string(ud->settings, "PictureDecombCustom"); - if (!ghb_validate_filter_string(str, 15)) + if (!ghb_validate_filter_string(str, -1)) { message = g_strdup_printf( "Invalid Decomb Settings:\n\n%s\n", @@ -3552,7 +3606,7 @@ ghb_validate_filters(signal_user_data_t *ud) if (index == 1) { str = ghb_settings_get_string(ud->settings, "PictureDenoiseCustom"); - if (!ghb_validate_filter_string(str, 4)) + if (!ghb_validate_filter_string(str, -1)) { message = g_strdup_printf( "Invalid Denoise Settings:\n\n%s\n", @@ -4309,7 +4363,6 @@ add_job(hb_handle_t *h, GValue *js, gint unique_id, gint titleindex) dest_str = ghb_settings_get_string(js, "destination"); job->file = dest_str; - job->crf = ghb_settings_get_boolean(js, "constant_rate_factor"); const GValue *subtitle_list; gint subtitle;