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
Anders wrote:
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