summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gtk/src/audiohandler.c48
-rw-r--r--gtk/src/hb-backend.c64
-rw-r--r--gtk/src/internal_defaults.xml2
-rw-r--r--gtk/src/queuehandler.c2
4 files changed, 44 insertions, 72 deletions
diff --git a/gtk/src/audiohandler.c b/gtk/src/audiohandler.c
index 9364bd276..456458e29 100644
--- a/gtk/src/audiohandler.c
+++ b/gtk/src/audiohandler.c
@@ -283,8 +283,6 @@ ghb_adjust_audio_rate_combos(signal_user_data_t *ud)
const hb_title_t *title;
gint track, acodec, select_acodec, mix;
hb_audio_config_t *aconfig;
- GtkWidget *widget;
- GValue *gval;
gint bitrate;
gint sr = 48000;
@@ -297,11 +295,7 @@ ghb_adjust_audio_rate_combos(signal_user_data_t *ud)
title_id = ghb_settings_get_int(ud->settings, "title");
title = ghb_lookup_title(title_id, &titleindex);
- widget = GHB_WIDGET(ud->builder, "AudioTrack");
- gval = ghb_widget_value(widget);
- track = ghb_lookup_combo_int("AudioTrack", gval);
- ghb_value_free(gval);
-
+ track = ghb_settings_get_int(ud->settings, "AudioTrack");
acodec = ghb_settings_audio_encoder_codec(ud->settings, "AudioEncoder");
mix = ghb_settings_mixdown_mix(ud->settings, "AudioMixdown");
bitrate = ghb_settings_audio_bitrate_rate(ud->settings, "AudioBitrate");
@@ -759,8 +753,8 @@ audio_refresh_list_row_ui(
gchar *s_drc, *s_gain, *s_br_quality, *s_sr, *s_track_name;
gdouble drc, gain;
hb_audio_config_t *aconfig;
- int titleindex, track, sr;
- int title_id;
+ int track, sr;
+ int title_id, titleindex;
const hb_title_t *title;
const hb_encoder_t *encoder;
@@ -774,7 +768,7 @@ audio_refresh_list_row_ui(
}
- s_track = ghb_settings_combo_option(settings, "AudioTrack");
+ s_track = aconfig->lang.description;
encoder = ghb_settings_audio_encoder(settings, "AudioEncoder");
double quality = ghb_settings_get_double(settings, "AudioTrackQuality");
@@ -809,9 +803,8 @@ audio_refresh_list_row_ui(
s_track_name = ghb_settings_get_string(settings, "AudioTrackName");
- info_src = g_strdup_printf("%s (%.4gkHz)",
- s_track,
- (double)aconfig->in.samplerate / 1000);
+ info_src = g_strdup_printf("%d - %s (%.4gkHz)",
+ track + 1, s_track, (double)aconfig->in.samplerate / 1000);
if (aconfig->in.bitrate > 0)
{
info_src_2 = g_strdup_printf(
@@ -1068,14 +1061,29 @@ audio_track_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
asettings = audio_get_selected_settings(ud, NULL);
if (asettings != NULL)
{
- const gchar *track;
-
ghb_widget_to_setting(asettings, widget);
audio_deps(ud, asettings, widget);
ghb_audio_list_refresh_selected(ud);
- track = ghb_settings_combo_option(asettings, "AudioTrack");
- ghb_settings_set_string(asettings, "AudioTrackDescription", track);
ghb_live_reset(ud);
+
+ // Update the track description used by the queue
+ int title_id, titleindex;
+ const hb_title_t *title;
+ int track;
+ hb_audio_config_t *aconfig;
+
+ title_id = ghb_settings_get_int(ud->settings, "title");
+ title = ghb_lookup_title(title_id, &titleindex);
+ track = ghb_settings_get_int(ud->settings, "AudioTrack");
+ aconfig = ghb_get_audio_info(title, track);
+ if (aconfig != NULL)
+ {
+ char *desc;
+ desc = g_strdup_printf("%d - %s", track + 1,
+ aconfig->lang.description);
+ ghb_settings_set_string(asettings, "AudioTrackDescription", desc);
+ g_free(desc);
+ }
}
}
@@ -1387,8 +1395,10 @@ audio_add_to_settings(GValue *settings, GValue *asettings)
aconfig = ghb_get_audio_info(title, track);
if (aconfig != NULL)
{
- ghb_settings_set_string(asettings, "AudioTrackDescription",
- aconfig->lang.description);
+ char *desc;
+ desc = g_strdup_printf("%d - %s", track + 1, aconfig->lang.description);
+ ghb_settings_set_string(asettings, "AudioTrackDescription", desc);
+ g_free(desc);
}
GValue *aname;
diff --git a/gtk/src/hb-backend.c b/gtk/src/hb-backend.c
index 1ce5d7b3d..69847365e 100644
--- a/gtk/src/hb-backend.c
+++ b/gtk/src/hb-backend.c
@@ -369,12 +369,6 @@ combo_opts_t subtitle_opts =
NULL
};
-combo_opts_t audio_track_opts =
-{
- 0,
- NULL
-};
-
typedef struct
{
const gchar *name;
@@ -406,7 +400,6 @@ combo_name_map_t combo_name_map[] =
{"x264_analyse", &analyse_opts},
{"x264_trellis", &trellis_opts},
{"SubtitleTrack", &subtitle_opts},
- {"AudioTrack", &audio_track_opts},
{NULL, NULL}
};
@@ -1091,21 +1084,14 @@ grey_mix_opts(signal_user_data_t *ud, gint acodec, gint64 layout)
void
ghb_grey_combo_options(signal_user_data_t *ud)
{
- GtkWidget *widget;
gint track, title_id, titleindex, acodec, fallback;
const hb_title_t *title;
hb_audio_config_t *aconfig = NULL;
- GValue *gval;
title_id = ghb_settings_get_int(ud->settings, "title");
title = ghb_lookup_title(title_id, &titleindex);
- widget = GHB_WIDGET (ud->builder, "title");
- gval = ghb_widget_value(widget);
- ghb_value_free(gval);
- widget = GHB_WIDGET (ud->builder, "AudioTrack");
- gval = ghb_widget_value(widget);
- track = ghb_lookup_combo_int("AudioTrack", gval);
- ghb_value_free(gval);
+
+ track = ghb_settings_get_int(ud->settings, "AudioTrack");
aconfig = ghb_get_audio_info(title, track);
const char *mux_id;
@@ -2153,30 +2139,11 @@ audio_track_opts_set(GtkBuilder *builder, const gchar *name, const hb_title_t *t
{
count = hb_list_count( title->list_audio );
}
- if (count > 100) count = 100;
- if (audio_track_opts.map)
- {
- for (ii = 0; ii < audio_track_opts.count; ii++)
- {
- if (audio_track_opts.map[ii].option)
- g_free(audio_track_opts.map[ii].option);
- }
- g_free(audio_track_opts.map);
- }
- if (count > 0)
- {
- audio_track_opts.count = count;
- audio_track_opts.map = g_malloc(count*sizeof(options_map_t));
- }
- else
- {
- audio_track_opts.count = 1;
- audio_track_opts.map = g_malloc(sizeof(options_map_t));
- }
if( count <= 0 )
{
// No audio. set some default
gtk_list_store_append(store, &iter);
+
str = g_strdup_printf("<small>%s</small>", _("No Audio"));
gtk_list_store_set(store, &iter,
0, str,
@@ -2186,32 +2153,25 @@ audio_track_opts_set(GtkBuilder *builder, const gchar *name, const hb_title_t *t
4, "none",
-1);
g_free(str);
- audio_track_opts.map[0].option = g_strdup("No Audio");
- audio_track_opts.map[0].shortOpt = "none";
- audio_track_opts.map[0].ivalue = -1;
- audio_track_opts.map[0].svalue = "none";
return;
}
- index_str_init(count-1);
for (ii = 0; ii < count; ii++)
{
- audio = (hb_audio_config_t *) hb_list_audio_config_item( title->list_audio, ii );
gtk_list_store_append(store, &iter);
- char *tmp = g_strdup_printf("%d - %s", ii + 1, audio->lang.description);
- str = g_strdup_printf("<small>%s</small>", tmp);
+
+ char idx[4];
+ audio = hb_list_audio_config_item(title->list_audio, ii);
+ str = g_strdup_printf("<small>%d - %s</small>",
+ ii + 1, audio->lang.description);
+ snprintf(idx, 4, "%d", ii);
gtk_list_store_set(store, &iter,
0, str,
1, TRUE,
- 2, index_str[ii],
+ 2, idx,
3, (gdouble)ii,
- 4, index_str[ii],
+ 4, idx,
-1);
g_free(str);
- audio_track_opts.map[ii].option = g_strdup(tmp);
- g_free(tmp);
- audio_track_opts.map[ii].shortOpt = index_str[ii];
- audio_track_opts.map[ii].ivalue = ii;
- audio_track_opts.map[ii].svalue = index_str[ii];
}
gtk_combo_box_set_active (combo, 0);
}
@@ -4177,7 +4137,7 @@ ghb_validate_audio(GValue *settings)
int track, codec;
asettings = ghb_array_get_nth(audio_list, ii);
- track = ghb_settings_combo_int(asettings, "AudioTrack");
+ track = ghb_settings_get_int(asettings, "AudioTrack");
codec = ghb_settings_audio_encoder_codec(asettings, "AudioEncoder");
if (codec == HB_ACODEC_AUTO_PASS)
continue;
diff --git a/gtk/src/internal_defaults.xml b/gtk/src/internal_defaults.xml
index c8430fda4..2e87927d0 100644
--- a/gtk/src/internal_defaults.xml
+++ b/gtk/src/internal_defaults.xml
@@ -17,6 +17,8 @@
<string>192</string>
<key>AudioEncoder</key>
<string>copy:ac3</string>
+ <key>AudioTrack</key>
+ <integer>0</integer>
<key>AudioTrackQualityEnable</key>
<false />
<key>AudioTrackQuality</key>
diff --git a/gtk/src/queuehandler.c b/gtk/src/queuehandler.c
index 87853a836..2c5000891 100644
--- a/gtk/src/queuehandler.c
+++ b/gtk/src/queuehandler.c
@@ -574,7 +574,7 @@ add_to_queue_list(signal_user_data_t *ud, GValue *settings, GtkTreeIter *piter)
if (audio_encoder->codec & HB_ACODEC_PASS_FLAG)
{
- XPRINT("<small>%s, Encoder: %s</small>\n",
+ XPRINT("<small>%s --> Encoder: %s</small>\n",
track, audio_encoder->name);
}
else