X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=gtk%2Fsrc%2Faudiohandler.c;h=39d54c10935ed3bf2a6b7b71bc692712b4c2396e;hb=b9de509bdbecf022aeade8c57e33e7ffe3f56cf6;hp=29700ca5dd66d595e964e81ce49497e7589f1270;hpb=c8fd41085882c99882260b7af3a6045b7f1f9ad6;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/gtk/src/audiohandler.c b/gtk/src/audiohandler.c index 29700ca5..39d54c10 100644 --- a/gtk/src/audiohandler.c +++ b/gtk/src/audiohandler.c @@ -52,7 +52,10 @@ ghb_adjust_audio_rate_combos(signal_user_data_t *ud) { gint br = ainfo.bitrate / 1000; // Set the values for bitrate and samplerate to the input rates - ghb_set_passthru_bitrate_opts (ud->builder, br); + if (br >= 8) + ghb_set_passthru_bitrate_opts (ud->builder, br); + else + br = 160; ghb_ui_update(ud, "AudioBitrate", ghb_int64_value(br)); ghb_ui_update(ud, "AudioSamplerate", ghb_int64_value(0)); ghb_ui_update(ud, "AudioMixdown", ghb_int64_value(0)); @@ -65,17 +68,22 @@ ghb_adjust_audio_rate_combos(signal_user_data_t *ud) } ghb_ui_update(ud, "AudioTrackDRCSlider", ghb_double_value(0)); } - else if (acodec == HB_ACODEC_FAAC && mix != HB_AMIXDOWN_6CH) + else if (acodec == HB_ACODEC_FAAC) { - gint br; + gint br, last; + + if (mix == HB_AMIXDOWN_6CH) + last = 448; + else + last = 160; widget = GHB_WIDGET(ud->builder, "AudioBitrate"); gval = ghb_widget_value(widget); br = ghb_lookup_combo_int("AudioBitrate", gval); ghb_value_free(gval); - if (br > 160) - ghb_ui_update(ud, "AudioBitrate", ghb_int64_value(160)); - ghb_set_default_bitrate_opts (ud->builder, 160); + if (br > last) + ghb_ui_update(ud, "AudioBitrate", ghb_int64_value(last)); + ghb_set_default_bitrate_opts (ud->builder, last); } else { @@ -129,7 +137,7 @@ ghb_set_pref_audio(gint titleindex, signal_user_data_t *ud) source_lang = ghb_get_source_audio_lang(titleindex, 0); } if (source_lang == NULL) - source_lang = ghb_settings_get_string(ud->settings, "SourceAudioLang"); + source_lang = ghb_settings_get_string(ud->settings, "PreferredLanguage"); pref_audio = ghb_settings_get_value(ud->settings, "AudioList"); @@ -192,6 +200,7 @@ ghb_set_pref_audio(gint titleindex, signal_user_data_t *ud) titleindex, track, acodec_code, mix_code); ghb_ui_update(ud, "AudioMixdown", ghb_int64_value(mix_code)); } + ghb_adjust_audio_rate_combos(ud); ghb_ui_update(ud, "AudioTrackDRCSlider", drc); } } @@ -232,8 +241,8 @@ get_selected_asettings(signal_user_data_t *ud) return asettings; } -static void -audio_list_refresh_selected(signal_user_data_t *ud) +void +ghb_audio_list_refresh_selected(signal_user_data_t *ud) { GtkTreeView *treeview; GtkTreePath *treepath; @@ -245,13 +254,14 @@ audio_list_refresh_selected(signal_user_data_t *ud) GValue *asettings = NULL; const GValue *audio_list; - g_debug("audio_list_refresh_selected ()"); + g_debug("ghb_audio_list_refresh_selected ()"); treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "audio_list")); selection = gtk_tree_view_get_selection (treeview); if (gtk_tree_selection_get_selected(selection, &store, &iter)) { const gchar *track, *codec, *br, *sr, *mix; gchar *s_drc, *s_track, *s_codec, *s_br, *s_sr, *s_mix; + gint itrack, icodec; gdouble drc; // Get the row number treepath = gtk_tree_model_get_path (store, &iter); @@ -266,7 +276,9 @@ audio_list_refresh_selected(signal_user_data_t *ud) asettings = ghb_array_get_nth(audio_list, row); track = ghb_settings_combo_option(asettings, "AudioTrack"); + itrack = ghb_settings_combo_int(asettings, "AudioTrack"); codec = ghb_settings_combo_option(asettings, "AudioEncoder"); + icodec = ghb_settings_combo_int(asettings, "AudioEncoder"); br = ghb_settings_combo_option(asettings, "AudioBitrate"); sr = ghb_settings_combo_option(asettings, "AudioSamplerate"); mix = ghb_settings_combo_option(asettings, "AudioMixdown"); @@ -282,6 +294,9 @@ audio_list_refresh_selected(signal_user_data_t *ud) else s_drc = g_strdup_printf("%.1f", drc); + if (icodec == HB_ACODEC_MASK) + codec = ghb_select_audio_codec_str(ud, itrack); + gtk_list_store_set(GTK_LIST_STORE(store), &iter, // These are displayed in list 0, track, @@ -337,28 +352,15 @@ audio_codec_changed_cb(GtkWidget *widget, signal_user_data_t *ud) } ghb_adjust_audio_rate_combos(ud); ghb_grey_combo_options (ud->builder); - ghb_check_dependency(ud, widget); + ghb_check_dependency(ud, widget, NULL); prev_acodec = acodec_code; asettings = get_selected_asettings(ud); if (asettings != NULL) { ghb_widget_to_setting(asettings, widget); - audio_list_refresh_selected(ud); - } - - const GValue *audio_list; - audio_list = ghb_settings_get_value(ud->settings, "audio_list"); - if (ghb_ac3_in_audio_list (audio_list)) - { - gchar *container; - - container = ghb_settings_get_string(ud->settings, "FileFormat"); - if (strcmp(container, "mp4") == 0) - { - ghb_ui_update(ud, "FileFormat", ghb_string_value("m4v")); - } - g_free(container); + ghb_audio_list_refresh_selected(ud); } + ghb_update_destination_extension(ud); ghb_live_reset(ud); } @@ -369,7 +371,7 @@ audio_track_changed_cb(GtkWidget *widget, signal_user_data_t *ud) g_debug("audio_track_changed_cb ()"); ghb_adjust_audio_rate_combos(ud); - ghb_check_dependency(ud, widget); + ghb_check_dependency(ud, widget, NULL); ghb_grey_combo_options(ud->builder); asettings = get_selected_asettings(ud); if (asettings != NULL) @@ -377,7 +379,7 @@ audio_track_changed_cb(GtkWidget *widget, signal_user_data_t *ud) const gchar *track; ghb_widget_to_setting(asettings, widget); - audio_list_refresh_selected(ud); + ghb_audio_list_refresh_selected(ud); track = ghb_settings_combo_option(asettings, "AudioTrack"); ghb_settings_set_string(asettings, "AudioTrackDescription", track); } @@ -391,12 +393,12 @@ audio_mix_changed_cb(GtkWidget *widget, signal_user_data_t *ud) g_debug("audio_mix_changed_cb ()"); ghb_adjust_audio_rate_combos(ud); - ghb_check_dependency(ud, widget); + ghb_check_dependency(ud, widget, NULL); asettings = get_selected_asettings(ud); if (asettings != NULL) { ghb_widget_to_setting(asettings, widget); - audio_list_refresh_selected(ud); + ghb_audio_list_refresh_selected(ud); } ghb_live_reset(ud); } @@ -407,12 +409,12 @@ audio_widget_changed_cb(GtkWidget *widget, signal_user_data_t *ud) GValue *asettings; g_debug("audio_widget_changed_cb ()"); - ghb_check_dependency(ud, widget); + ghb_check_dependency(ud, widget, NULL); asettings = get_selected_asettings(ud); if (asettings != NULL) { ghb_widget_to_setting(asettings, widget); - audio_list_refresh_selected(ud); + ghb_audio_list_refresh_selected(ud); } ghb_live_reset(ud); } @@ -433,12 +435,12 @@ drc_widget_changed_cb(GtkWidget *widget, gdouble val, signal_user_data_t *ud) drc = g_strdup_printf("%.1f", val); gtk_label_set_text(label, drc); g_free(drc); - ghb_check_dependency(ud, widget); + ghb_check_dependency(ud, widget, NULL); asettings = get_selected_asettings(ud); if (asettings != NULL) { ghb_widget_to_setting(asettings, widget); - audio_list_refresh_selected(ud); + ghb_audio_list_refresh_selected(ud); } ghb_live_reset(ud); } @@ -453,7 +455,7 @@ subtitle_changed_cb(GtkWidget *widget, signal_user_data_t *ud) const gchar *name = gtk_widget_get_name(widget); g_debug("subtitle_changed_cb () %s", name); ghb_widget_to_setting(ud->settings, widget); - ghb_check_dependency(ud, widget); + ghb_check_dependency(ud, widget, NULL); ghb_live_reset(ud); } @@ -487,6 +489,7 @@ add_to_audio_list(signal_user_data_t *ud, GValue *settings) GtkTreeSelection *selection; const gchar *track, *codec, *br, *sr, *mix; gchar *s_drc, *s_track, *s_codec, *s_br, *s_sr, *s_mix; + gint icodec, itrack; gdouble drc; g_debug("add_to_audio_list ()"); @@ -495,7 +498,9 @@ add_to_audio_list(signal_user_data_t *ud, GValue *settings) store = GTK_LIST_STORE(gtk_tree_view_get_model(treeview)); track = ghb_settings_combo_option(settings, "AudioTrack"); + itrack = ghb_settings_combo_int(settings, "AudioTrack"); codec = ghb_settings_combo_option(settings, "AudioEncoder"); + icodec = ghb_settings_combo_int(settings, "AudioEncoder"); br = ghb_settings_combo_option(settings, "AudioBitrate"); sr = ghb_settings_combo_option(settings, "AudioSamplerate"); mix = ghb_settings_combo_option(settings, "AudioMixdown"); @@ -511,6 +516,10 @@ add_to_audio_list(signal_user_data_t *ud, GValue *settings) else s_drc = g_strdup_printf("%.1f", drc); + if (icodec == HB_ACODEC_MASK) + { + codec = ghb_select_audio_codec_str(ud, itrack); + } gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, @@ -616,6 +625,7 @@ audio_add_clicked_cb(GtkWidget *xwidget, signal_user_data_t *ud) { gtk_widget_set_sensitive(xwidget, FALSE); } + ghb_update_destination_extension(ud); } G_MODULE_EXPORT void