On 03/07/08 12:26, Rolf Ahrenberg wrote:
On Thu, 6 Mar 2008, Klaus Schmidinger wrote:
None of these two is specified as "for the hard of hearing".
Well, as Jouni already told, the Dutch is used here on YLE channels for hard of hearing purposes. :)
Maybe this is what's causing the problems here. While this makes sense for audio, it might not be that useful for subtitles. I guess some change in cDevice::EnsureSubtitleTrack() needs to be done to fix this.
I guess this kind of small change would be enough. IMO, the subtitles should be shown only if a preferred language matches.
--- device.c.orig 2008-03-07 13:18:09.000000000 +0200 +++ device.c 2008-03-07 13:18:49.000000000 +0200 @@ -1096,7 +1096,7 @@ void cDevice::EnsureSubtitleTrack(void) { if (Setup.DisplaySubtitles) {
eTrackType PreferredTrack = ttSubtitleFirst;
eTrackType PreferredTrack = ttNone; int LanguagePreference = -1; for (int i = ttSubtitleFirst; i <= ttSubtitleLast; i++) { const tTrackId *TrackId = GetTrack(eTrackType(i));
Actually I believe we also need to initialize LanguagePreference to a "high value". The full patch I'll add for version 1.6.0 is this:
--- device.c 2008/02/23 13:09:01 1.155 +++ device.c 2008/03/07 15:26:23 @@ -1096,8 +1096,8 @@ void cDevice::EnsureSubtitleTrack(void) { if (Setup.DisplaySubtitles) { - eTrackType PreferredTrack = ttSubtitleFirst; - int LanguagePreference = -1; + eTrackType PreferredTrack = ttNone; + int LanguagePreference = INT_MAX; // higher than the maximum possible value for (int i = ttSubtitleFirst; i <= ttSubtitleLast; i++) { const tTrackId *TrackId = GetTrack(eTrackType(i)); if (TrackId && TrackId->id && I18nIsPreferredLanguage(Setup.SubtitleLanguages, TrackId->language, LanguagePreference))
With this, if I set the preferred subtitle language to Finnish (suomi), Petri's example works as expected: the narrator is not subtitled, while the woman is.
Please verify and let me know if this works for you, too - and doesn't break anything else.
Klaus