gint
ghb_find_subtitle_track(
- gint titleindex,
- const gchar *lang,
- gint source,
- GHashTable *track_indices)
+ gint titleindex,
+ const gchar * lang,
+ gboolean burn,
+ gboolean force,
+ gint source,
+ GHashTable * track_indices)
{
hb_list_t * list;
hb_title_t * title;
continue;
subtitle = (hb_subtitle_t*)hb_list_item( title->list_subtitle, ii );
- if ((strcmp(lang, subtitle->iso639_2) == 0) ||
- (strcmp(lang, "und") == 0))
+ if (((burn || force) && (subtitle->source == VOBSUB)) &&
+ ((strcmp(lang, subtitle->iso639_2) == 0) ||
+ (strcmp(lang, "und") == 0)))
{
used[ii] = TRUE;
return ii;
void ghb_add_all_subtitles(signal_user_data_t *ud, gint titleindex);
gint ghb_find_pref_subtitle_track(const gchar *lang);
gint ghb_find_subtitle_track(
- gint titleindex, const gchar *lang, gint source, GHashTable *track_indices);
+ gint titleindex, const gchar *lang, gboolean burn,
+ gboolean force, gint source, GHashTable *track_indices);
gint ghb_pick_subtitle_track(signal_user_data_t *ud);
gint ghb_find_cc_track(gint titleindex);
gint ghb_longest_title(void);
for (ii = 0; ii < count; ii++)
{
gint source;
+ gboolean force, burn;
subtitle = ghb_array_get_nth(pref_subtitle, ii);
lang = ghb_settings_get_string(subtitle, "SubtitleLanguage");
source = ghb_settings_get_int(subtitle, "SubtitleSource");
+ burn = ghb_settings_get_boolean(subtitle, "SubtitleBurned");
+ force = ghb_settings_get_boolean(subtitle, "SubtitleForced");
// If there are multiple subtitles using the same language, then
// select sequential tracks for each. The hash keeps track
// of the tracks used for each language.
- track = ghb_find_subtitle_track(titleindex, lang, source, track_indices);
+ track = ghb_find_subtitle_track(titleindex, lang, burn,
+ force, source, track_indices);
g_free(lang);
if (track >= -1)
{
GValue *settings;
gboolean burn;
- track = ghb_find_subtitle_track(titleindex, pref_lang, VOBSUB, track_indices);
+ track = ghb_find_subtitle_track(titleindex, pref_lang, FALSE, FALSE, VOBSUB, track_indices);
if (track >= -1)
{
burn = mustBurn(ud, track);