OSDN Git Service

LinGui: set minimum bitrate to 192kbps when codec is faac and mix is 6-ch
authorjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Wed, 18 Nov 2009 19:39:05 +0000 (19:39 +0000)
committerjstebbins <jstebbins@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Wed, 18 Nov 2009 19:39:05 +0000 (19:39 +0000)
If you ask faac for less than 192kbps with 6ch audio, you will get 192
anyway.  This throws off target size estimates if target size was used.

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

gtk/src/audiohandler.c
gtk/src/hb-backend.c
gtk/src/hb-backend.h

index 39d54c1..fbe5e90 100644 (file)
@@ -47,7 +47,7 @@ ghb_adjust_audio_rate_combos(signal_user_data_t *ud)
 
        if (ghb_audio_is_passthru (acodec))
        {
-               ghb_set_default_bitrate_opts (ud->builder, -1);
+               ghb_set_default_bitrate_opts (ud->builder, 0, -1);
                if (ghb_get_audio_info (&ainfo, titleindex, audioindex))
                {
                        gint br = ainfo.bitrate / 1000;
@@ -70,12 +70,13 @@ ghb_adjust_audio_rate_combos(signal_user_data_t *ud)
        }
        else if (acodec == HB_ACODEC_FAAC)
        {
-               gint br, last;
+               gint br, last = 160, first = 0;
 
                if (mix == HB_AMIXDOWN_6CH)
+               {
+                       first = 192;
                        last = 448;
-               else
-                       last = 160;
+               }
 
                widget = GHB_WIDGET(ud->builder, "AudioBitrate");
                gval = ghb_widget_value(widget);
@@ -83,11 +84,13 @@ ghb_adjust_audio_rate_combos(signal_user_data_t *ud)
                ghb_value_free(gval);
                if (br > last)
                        ghb_ui_update(ud, "AudioBitrate", ghb_int64_value(last));
-               ghb_set_default_bitrate_opts (ud->builder, last);
+               if (br < first)
+                       ghb_ui_update(ud, "AudioBitrate", ghb_int64_value(first));
+               ghb_set_default_bitrate_opts (ud->builder, first, last);
        }
        else
        {
-               ghb_set_default_bitrate_opts (ud->builder, -1);
+               ghb_set_default_bitrate_opts (ud->builder, 0, -1);
        }
 }
 
index 5d43d46..7ac7172 100644 (file)
@@ -2677,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;
@@ -2685,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);
@@ -2698,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);
@@ -2748,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;
index e2470da..92b006f 100644 (file)
@@ -133,7 +133,8 @@ gint ghb_get_default_acodec(void);
 gboolean ghb_get_audio_info(
        ghb_audio_info_t *ainfo, gint titleindex, gint audioindex);
 void ghb_set_passthru_bitrate_opts(GtkBuilder *builder, gint bitrate);
-void ghb_set_default_bitrate_opts(GtkBuilder *builder, gint last_rate);
+void ghb_set_default_bitrate_opts(
+       GtkBuilder *builder, gint first_rate, gint last_rate);
 void ghb_grey_combo_options(GtkBuilder *builder);
 void ghb_update_ui_combo_box(
        signal_user_data_t *ud, const gchar *name, gint user_data, gboolean all);