Klaus Schmidinger wrote:
Boguslaw Juza wrote:

I have found small bug: When I have record channel witch multiple audio track - f.e. tracks witch language codes: A1, A2, A3, A4, and then
I replay it, when I'm choosing audio track, I have to choose:
POL, A1, A2, A3. POL plays A1 track, A1 plays A2 track etc...
PL (polish) is my preffered language in EPG menu, but there was no PL-track in this channel.

I was able to (sort of) reproduce this with the EURONEWS channel
on Astra:


This channel also has several audio tracks, but in its event data
it only lists the first two tracks. The tracks in the event data have
a type of 0x01, while VDR in its cRecordingInfo::cRecordingInfo()
function looks for tracks with type 0x03. Since VDR is only interested
in whether this is a Dolby track or not, I've modified cComponents::GetComponent()

Please try the attached patch to see if it helps.

Note that this will only help for newly created recordings.
Existing recordings may already have the tracks garbled in their
info.vdr files.

Actually here's a more elaborate patch.
It also explicitly checks for the audio stream.
Wouldn't make a difference right now, but if we have more
streams later, it might be necessary.

--- epg.c	2006/08/05 10:04:17	1.79
+++ epg.c	2006/10/07 13:47:28
@@ -87,7 +87,8 @@
 tComponent *cComponents::GetComponent(int Index, uchar Stream, uchar Type)
   for (int i = 0; i < numComponents; i++) {
-      if (components[i].stream == Stream && components[i].type == Type) {
+      // In case of an audio stream the 'type' check actually just distinguishes between "normal" and "Dolby Digital":
+      if (components[i].stream == Stream && (Stream != 2 || (components[i].type < 5) == (Type < 5))) {
          if (!Index--)
             return &components[i];
vdr mailing list

Reply via email to