MCPcopy Create free account
hub / github.com/HandBrake/HandBrake / audio_def_set_limits

Function audio_def_set_limits

gtk/src/audiohandler.c:2196–2251  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2194}
2195
2196static void
2197audio_def_set_limits (signal_user_data_t *ud, GtkWidget *widget, gboolean set_default)
2198{
2199 GtkListBoxRow *row = audio_settings_get_row(widget);
2200 gint index = gtk_list_box_row_get_index(row);
2201
2202 GhbValue *alist = ghb_dict_get_value(ud->settings, "AudioList");
2203 int count = ghb_array_len(alist);
2204 if (index < 0 || index >= count)
2205 return;
2206
2207 GhbValue *adict = ghb_array_get(alist, index);
2208
2209 int codec = ghb_settings_audio_encoder_codec(adict, "AudioEncoder");
2210 int fallback = ghb_settings_audio_encoder_codec(ud->settings,
2211 "AudioEncoderFallback");
2212 gdouble quality = ghb_dict_get_double(adict, "AudioTrackQuality");
2213
2214 // Allow quality settings if the current encoder supports quality
2215 // or if the encoder is auto-passthru and the fallback encoder
2216 // supports quality.
2217 gboolean sensitive =
2218 hb_audio_quality_get_default(codec) != HB_INVALID_AUDIO_QUALITY ||
2219 (codec == HB_ACODEC_AUTO_PASS &&
2220 hb_audio_quality_get_default(fallback) != HB_INVALID_AUDIO_QUALITY);
2221 audio_def_settings_quality_set_sensitive(GTK_WIDGET(row), sensitive);
2222
2223 int enc;
2224 if (sensitive)
2225 {
2226 enc = codec;
2227 if (hb_audio_quality_get_default(codec) == HB_INVALID_AUDIO_QUALITY)
2228 {
2229 enc = fallback;
2230 }
2231 audio_quality_update_limits(
2232 find_widget(GTK_WIDGET(row), "AudioTrackQualityX"),
2233 enc, set_default, quality);
2234 }
2235
2236 enc = codec;
2237 if (enc & HB_ACODEC_PASS_FLAG)
2238 {
2239 enc = ghb_select_fallback(ud->settings, enc);
2240 }
2241 int sr = ghb_settings_audio_samplerate_rate(adict, "AudioSamplerate");
2242 int mix = ghb_settings_mixdown_mix(adict, "AudioMixdown");
2243 int low, high;
2244 hb_audio_bitrate_get_limits(enc, sr, mix, &low, &high);
2245 GtkWidget *w = find_widget(GTK_WIDGET(row), "AudioBitrate");
2246 ghb_audio_bitrate_opts_filter(GTK_COMBO_BOX(w), low, high);
2247 w = find_widget(GTK_WIDGET(row), "AudioMixdown");
2248 ghb_mix_opts_filter(GTK_COMBO_BOX(w), enc);
2249 w = find_widget(GTK_WIDGET(row), "AudioSamplerate");
2250 ghb_audio_samplerate_opts_filter(GTK_COMBO_BOX(w), enc);
2251}
2252
2253static void

Tested by

no test coverage detected