<object class="GtkListBox" id="subtitle_selected_lang">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Create a list of languages you would like to select subtitles for.
+
+The first language in this list is your "preferred" language and will be used
+for determining subtitle selection settings when there is foreign audio.</property>
</object>
</child>
</object>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip_text" translatable="yes">Closed captions are text subtitles that can be added to any container as a soft subtitle track (not burned)</property>
+ <property name="tooltip_text" translatable="yes">Closed captions are text subtitles that can be added to any container as a soft subtitle track</property>
<property name="halign">start</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="subtitle_def_widget_changed_cb" swapped="no"/>
</object>
</child>
+ <child>
+ <object class="GtkBox" id="subtitle_burn_box">
+ <property name="orientation">horizontal</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkLabel" id="sub_burn_behavior_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="label" translatable="yes">Burn-In Behavior:</property>
+ <property name="justify">right</property>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="SubtitleBurnBehavior">
+ <property name="visible">True</property>
+ <property name="valign">GTK_ALIGN_CENTER</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Set the behavior of subtitle "Burn-In".
+
+Burned-In subtitles are part of the video and can not be disabled during playback.
+Only one subtitle track can be burned! Since conflicts can occur, the first chosen wins.</property>
+ <signal name="changed" handler="subtitle_def_widget_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="subtitle_additional_burn_box">
+ <property name="orientation">horizontal</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkLabel" id="sub_additional_burn_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="label" translatable="yes">Burn-In for deficient players:</property>
+ <property name="justify">right</property>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="SubtitleBurnDVDSub">
+ <property name="label" translatable="yes">DVD Subtitles</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="tooltip_text" translatable="yes">Burn the first selected DVD subtitle track. All other DVD subtitle tracks will be discarded.
+Use this option if your player software or device does not support DVD subtitles.
+
+Only one subtitle track can be burned! Since conflicts can occur, the first chosen wins.</property>
+ <property name="halign">start</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="subtitle_def_widget_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="SubtitleBurnBDSub">
+ <property name="label" translatable="yes">Blu-ray Subtitles</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="tooltip_text" translatable="yes">Burn the first selected Blu-ray subtitle track. All other Blu-ray subtitle tracks will be discarded.
+Use this option if your player software or device does not support Blu-ray subtitles.
+
+Only one subtitle track can be burned! Since conflicts can occur, the first chosen wins.</property>
+ <property name="halign">start</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="subtitle_def_widget_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="sub_burn_warning_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes"><small>* Only one of the above subtitle burn options will be applied, starting with the top.</small></property>
+ <property name="tooltip_text" translatable="yes">Only one subtitle track can be burned! Since conflicts can occur, the first chosen wins.</property>
+ <property name="use_markup">True</property>
+ <property name="justify">left</property>
+ </object>
+ <packing>
+ <property name="position">6</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="position">5</property>
<object class="GtkListBox" id="subtitle_selected_lang">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Create a list of languages you would like to select subtitles for.
+
+The first language in this list is your "preferred" language and will be used
+for determining subtitle selection settings when there is foreign audio.</property>
</object>
</child>
</object>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip_text" translatable="yes">Closed captions are text subtitles that can be added to any container as a soft subtitle track (not burned)</property>
+ <property name="tooltip_text" translatable="yes">Closed captions are text subtitles that can be added to any container as a soft subtitle track</property>
<property name="halign">start</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="subtitle_def_widget_changed_cb" swapped="no"/>
</object>
+ <packing>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="subtitle_burn_box">
+ <property name="orientation">horizontal</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkLabel" id="sub_burn_behavior_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="label" translatable="yes">Burn-In Behavior*:</property>
+ <property name="justify">right</property>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="SubtitleBurnBehavior">
+ <property name="visible">True</property>
+ <property name="valign">GTK_ALIGN_CENTER</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Set the behavior of subtitle "Burn-In".
+
+Burned-In subtitles are part of the video and can not be disabled during playback.
+Only one subtitle track can be burned! Since conflicts can occur, the first chosen wins.</property>
+ <signal name="changed" handler="subtitle_def_widget_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="subtitle_additional_burn_box">
+ <property name="orientation">horizontal</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkLabel" id="sub_additional_burn_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="label" translatable="yes">Burn-In for deficient players*:</property>
+ <property name="justify">right</property>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="SubtitleBurnDVDSub">
+ <property name="label" translatable="yes">DVD Subtitles</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="tooltip_text" translatable="yes">Burn the first selected DVD subtitle track. All other DVD subtitle tracks will be discarded.
+Use this option if your player software or device does not support DVD subtitles.
+
+Only one subtitle track can be burned! Since conflicts can occur, the first chosen wins.</property>
+ <property name="halign">start</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="subtitle_def_widget_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="SubtitleBurnBDSub">
+ <property name="label" translatable="yes">Blu-ray Subtitles</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="tooltip_text" translatable="yes">Burn the first selected Blu-ray subtitle track. All other Blu-ray subtitle tracks will be discarded.
+Use this option if your player software or device does not support Blu-ray subtitles.
+
+Only one subtitle track can be burned! Since conflicts can occur, the first chosen wins.</property>
+ <property name="halign">start</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="subtitle_def_widget_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="sub_burn_warning_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes"><small>* Only one of the above subtitle burn options will be applied, starting with the top.</small></property>
+ <property name="tooltip_text" translatable="yes">Only one subtitle track can be burned! Since conflicts can occur, the first chosen wins.</property>
+ <property name="use_markup">True</property>
+ <property name="justify">left</property>
+ </object>
+ <packing>
+ <property name="position">6</property>
+ </packing>
</child>
</object>
<packing>
<object class="GtkListBox" id="subtitle_selected_lang">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Create a list of languages you would like to select subtitles for.
+
+The first language in this list is your "preferred" language and will be used
+for determining subtitle selection settings when there is foreign audio.</property>
</object>
</child>
</object>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip_text" translatable="yes">Closed captions are text subtitles that can be added to any container as a soft subtitle track (not burned)</property>
+ <property name="tooltip_text" translatable="yes">Closed captions are text subtitles that can be added to any container as a soft subtitle track</property>
<property name="halign">start</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="subtitle_def_widget_changed_cb" swapped="no"/>
</object>
</child>
+ <child>
+ <object class="GtkBox" id="subtitle_burn_box">
+ <property name="orientation">horizontal</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkLabel" id="sub_burn_behavior_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="label" translatable="yes">Burn-In Behavior:</property>
+ <property name="justify">right</property>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="SubtitleBurnBehavior">
+ <property name="visible">True</property>
+ <property name="valign">GTK_ALIGN_CENTER</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Set the behavior of subtitle "Burn-In".
+
+Burned-In subtitles are part of the video and can not be disabled during playback.
+Only one subtitle track can be burned! Since conflicts can occur, the first chosen wins.</property>
+ <signal name="changed" handler="subtitle_def_widget_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="subtitle_additional_burn_box">
+ <property name="orientation">horizontal</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkLabel" id="sub_additional_burn_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="label" translatable="yes">Burn-In for deficient players:</property>
+ <property name="justify">right</property>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="SubtitleBurnDVDSub">
+ <property name="label" translatable="yes">DVD Subtitles</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="tooltip_text" translatable="yes">Burn the first selected DVD subtitle track. All other DVD subtitle tracks will be discarded.
+Use this option if your player software or device does not support DVD subtitles.
+
+Only one subtitle track can be burned! Since conflicts can occur, the first chosen wins.</property>
+ <property name="halign">start</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="subtitle_def_widget_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="SubtitleBurnBDSub">
+ <property name="label" translatable="yes">Blu-ray Subtitles</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="tooltip_text" translatable="yes">Burn the first selected Blu-ray subtitle track. All other Blu-ray subtitle tracks will be discarded.
+Use this option if your player software or device does not support Blu-ray subtitles.
+
+Only one subtitle track can be burned! Since conflicts can occur, the first chosen wins.</property>
+ <property name="halign">start</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="subtitle_def_widget_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="sub_burn_warning_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes"><small>* Only one of the above subtitle burn options will be applied, starting with the top.</small></property>
+ <property name="tooltip_text" translatable="yes">Only one subtitle track can be burned! Since conflicts can occur, the first chosen wins.</property>
+ <property name="use_markup">True</property>
+ <property name="justify">left</property>
+ </object>
+ <packing>
+ <property name="position">6</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="position">5</property>
d_subtitle_track_sel_opts
};
+static options_map_t d_subtitle_burn_opts[] =
+{
+ {N_("None"), "none", 0, "0"},
+ {N_("Foreign Audio Subtitle Track"), "foreign", 1, "1"},
+ {N_("First Selected Track"), "first", 2, "2"},
+ {N_("Foreign Audio, then First Selected Track"), "foreign_first", 3, "3"},
+};
+combo_opts_t subtitle_burn_opts =
+{
+ sizeof(d_subtitle_burn_opts)/sizeof(options_map_t),
+ d_subtitle_burn_opts
+};
+
static options_map_t d_audio_track_sel_opts[] =
{
{N_("None"), "none", 0, "0"},
combo_name_map_t combo_name_map[] =
{
{"SubtitleTrackSelectionBehavior", &subtitle_track_sel_opts},
+ {"SubtitleBurnBehavior", &subtitle_burn_opts},
{"AudioTrackSelectionBehavior", &audio_track_sel_opts},
{"PtoPType", &point_to_point_opts},
{"WhenComplete", &when_complete_opts},
subtitle_track_opts_set(ud->builder, "SubtitleTrack", user_data);
small_opts_set(ud->builder, "VideoQualityGranularity", &vqual_granularity_opts);
small_opts_set(ud->builder, "SubtitleTrackSelectionBehavior", &subtitle_track_sel_opts);
+ small_opts_set(ud->builder, "SubtitleBurnBehavior", &subtitle_burn_opts);
small_opts_set(ud->builder, "AudioTrackSelectionBehavior", &audio_track_sel_opts);
small_opts_set(ud->builder, "PtoPType", &point_to_point_opts);
small_opts_set(ud->builder, "WhenComplete", &when_complete_opts);
<false />
<key>SubtitleAddForeignAudioSubtitle</key>
<false />
+ <key>SubtitleBurnBehavior</key>
+ <string>none</string>
+ <key>SubtitleBurnDVDSub</key>
+ <false />
+ <key>SubtitleBurnBDSub</key>
+ <false />
<key>VideoTurboTwoPass</key>
<false />
<key>UsesPictureFilters</key>
gint ii, count;
subtitle_list = ghb_settings_get_value(settings, "subtitle_list");
+ subsettings = ghb_array_get_nth(subtitle_list, index);
+ if (subsettings != NULL)
+ {
+ int track = ghb_settings_get_int(subsettings, "SubtitleTrack");
+ if (track == -1)
+ {
+ // Allow 2 tracks to be marked burned when one is
+ // foreign audio search. Extra burned track will be
+ // sanitized away if foreign audio search actually finds
+ // something.
+ return;
+ }
+ }
count = ghb_array_len(subtitle_list);
for (ii = 0; ii < count; ii++)
{
if (ii != index)
{
subsettings = ghb_array_get_nth(subtitle_list, ii);
- ghb_settings_set_boolean(subsettings, "SubtitleBurned", FALSE);
+ int track = ghb_settings_get_int(subsettings, "SubtitleTrack");
+ if (track != -1)
+ {
+ // Allow 2 tracks to be marked burned when one is
+ // foreign audio search. Extra burned track will be
+ // sanitized away if foreign audio search actually finds
+ // something.
+ ghb_settings_set_boolean(subsettings, "SubtitleBurned", FALSE);
+ }
}
}
}
int mux,
gboolean default_track,
gboolean srt,
+ gboolean burn,
gboolean *burned)
{
int source = 0;
source = SRTSUB;
}
- if (*burned && !hb_subtitle_can_pass(source, mux))
+ burn |= !hb_subtitle_can_pass(source, mux);
+
+ if (*burned && burn)
{
// Can only burn one. Skip others that must be burned.
return NULL;
subtitle_set_track_description(settings, subsettings);
- if (!hb_subtitle_can_pass(source, mux))
+ if (burn)
{
ghb_settings_set_boolean(subsettings, "SubtitleBurned", TRUE);
- *burned = TRUE;
+ if (track != -1)
+ {
+ // Allow 2 tracks to be marked burned when one is
+ // foreign audio search. Extra burned track will be
+ // sanitized away if foreign audio search actually finds
+ // something.
+ *burned = TRUE;
+ }
}
else
{
gboolean *used;
const gchar *audio_lang, *pref_lang = NULL;
gboolean foreign_audio_search, foreign_audio_subs;
+ gboolean burn_foreign, burn_first, burn_dvd, burn_bd;
gboolean one_burned = FALSE;
const GValue *lang_list;
used = g_malloc0(sub_count * sizeof(gboolean));
+ int burn_behavior;
+ burn_behavior = ghb_settings_combo_int(settings, "SubtitleBurnBehavior");
+ burn_foreign = burn_behavior == 1 || burn_behavior == 3;
+ burn_first = burn_behavior == 2 || burn_behavior == 3;
+ burn_dvd = ghb_settings_get_boolean(settings, "SubtitleBurnDVDSub");
+ burn_bd = ghb_settings_get_boolean(settings, "SubtitleBurnBDSub");
+
if (foreign_audio_subs &&
(audio_lang == NULL || strncmp(audio_lang, pref_lang, 4)))
{
track = ghb_find_subtitle_track(title, pref_lang, 0);
if (track > 0)
{
+ gboolean burn;
+ hb_subtitle_t *subtitle;
+ subtitle = hb_list_item(title->list_subtitle, track);
+ burn = (subtitle->source == VOBSUB && burn_dvd) ||
+ (subtitle->source == PGSSUB && burn_bd) ||
+ burn_foreign || burn_first;
used[track] = TRUE;
subtitle_add_track(ud, settings, title, track, mux->format,
- TRUE, FALSE, &one_burned);
+ !burn, FALSE, burn, &one_burned);
+ burn_first &= !burn;
}
}
(audio_lang != NULL && !strncmp(audio_lang, pref_lang, 4)))
{
// Add search for foreign audio segments
+ gboolean burn = burn_foreign || burn_first;
subtitle_add_track(ud, settings, title, -1, mux->format,
- TRUE, FALSE, &one_burned);
+ !burn, FALSE, burn, &one_burned);
+ burn_first &= !burn;
}
if (behavior != 0)
{
if (!used[track])
{
+ gboolean burn;
+ hb_subtitle_t *subtitle;
+ subtitle = hb_list_item(title->list_subtitle, track);
+ burn = (subtitle->source == VOBSUB && burn_dvd) ||
+ (subtitle->source == PGSSUB && burn_bd) ||
+ burn_first;
used[track] = TRUE;
subtitle_add_track(ud, settings, title, track, mux->format,
- FALSE, FALSE, &one_burned);
+ FALSE, FALSE, burn, &one_burned);
+ burn_first &= !burn;
}
next_track = track + 1;
if (behavior == 2)
{
used[track] = TRUE;
subtitle_add_track(ud, settings, title, track, mux->format,
- FALSE, FALSE, &one_burned);
+ FALSE, FALSE, burn_first, &one_burned);
}
}
g_free(used);
subsettings == NULL && track < count; track++)
{
subsettings = subtitle_add_track(ud, ud->settings, title, track,
- mux->format, FALSE, FALSE, &one_burned);
+ mux->format, FALSE, FALSE, FALSE, &one_burned);
}
if (subsettings == NULL)
{
subsettings = subtitle_add_track(ud, ud->settings, title, 0,
- mux->format, FALSE, TRUE, &one_burned);
+ mux->format, FALSE, TRUE, FALSE, &one_burned);
}
ghb_add_subtitle_to_ui(ud, subsettings);
for (track = 0; track < count; track++)
{
subtitle_add_track(ud, ud->settings, title, track, mux->format,
- FALSE, FALSE, &one_burned);
+ FALSE, FALSE, FALSE, &one_burned);
}
subtitle_refresh_list_ui(ud);
ghb_live_reset(ud);