Anders wrote:
After an upgrade to 1.3.34 all works just fine while viewing Eurosport and Nickelodeon.
But if I make a recording from Eurosport och Nickelodeon and replay that recording I get audio channels "1" and "2" instead of the "nor+fin" and "sve+dan" i get during wathcing live tv.
Is this expected behaviour or have I overlooked somethins else?
Regards, Anders
Having no language code at all during replay is a problem that I'll try to fix. However, I'm afraid the two different language codes for one PID are a fundamental problem.
While in live tv the channel data can indicate that there are two different languages on one audio PID, the EPG data for stream components doesn't seem to have this capability (or at least I haven't found it, yet).
In pat.c, cPatFilter::Process(), we have
for (SI::Loop::Iterator it; ld->languageLoop.getNext(l, it); ) { if (*ld->languageCode != '-') { // some use "---" to indicate "none" if (n > 0) *s++ = '+'; strn0cpy(s, I18nNormalizeLanguageCode(l.languageCode), MAXLANGCODE1); s += strlen(s); if (n++ > 1) break; } }
where for a single PID there can be two language codes. In eit.c, cEIT::cEIT(), on the other hand, there is
case SI::ComponentDescriptorTag: { SI::ComponentDescriptor *cd = (SI::ComponentDescriptor *)d; uchar Stream = cd->getStreamContent(); uchar Type = cd->getComponentType(); if (1 <= Stream && Stream <= 2 && Type != 0) { if (!Components) Components = new cComponents; char buffer[256]; Components->SetComponent(Components->NumComponents(), cd->getStreamContent(), cd->getComponentType(), I18nNormalizeLanguageCode(cd->languageCode), cd->description.getText(buffer, sizeof(buffer))); } }
where we get only _one_ language code for each component. Maybe it would be feasible to check the language codes of the stream components against those of the channel data at the moment the recording starts, and overwrite the stream component data with the PID data. This, though, would require the tComponent::language member to be changed to 8 byte length so that it can hold abc+def style language codes - but that's the least problem.
Any comments?
Klaus
-----Ursprungligt meddelande----- Från: anders@sandell.net [mailto:anders@sandell.net] Skickat: den 7 oktober 2005 21:32 Till: vdr@linuxtv.org Ämne: Re: [vdr] Different languaghes on right/left channel
Quoting Antti Hartikainen ami+vdr@ah.fi:
To clarify:
After looking closer at the audio-menu:
On Eurosport there are two audio PID's "sve" which has
swedish on the
left channel and danish on the right and "nor" which has
finnish on
the left channel and norwegian on the right channel. I have chosen Swedish as my preferred languaghe and VDR correctly select
the audio
PID labeled as "sve". That PID has two langughes, and i have to select right or left channel
in the VDR
audio menu to avoid audio in swedish AND norwegian at the
same time.
My problem is that VDR does not seem to save my choice which means that i have to go into the audio menu and select left channel everytime i want to see Eurosport. The same applies to Nickelodeon.
Whats your vdr version?
From 1.3.32 changelog:
- Changed the audio PID language codes to hold up to two 3 letter
codes, separated by '+', to store separate languages broadcast in two
channel audio mode.
Works fine for me at Eurosport from 1W (chooses finnish
audio as it is
preferred).
I am running 1.3.23 here, guess I have to upgrade then ....
I completely missed that changelog, sorry.