Hi, I located a small bug which has been introduced in 1.7.18 (at least I think so). Reading the Changes file I could not determine which change caused it, but the problem is the following. In pat.c: if the PMT of a service has a stream of stream-type 128 (0x80) the vpid is overridden with the PID signalled in the Elementary-PID-field of this stream. This happens to be the case here in France for some of the DVB- T services. It breaks 2 channels (France 2 and France 5) when channel- updates is at least configured to "update PIDs". The code which is doing that is described as "STREAMTYPE_USER_PRIVATE - DigiCipher II VIDEO (ANSI/SCTE 57)" which before was only applied when the stream had a certain descriptor and there a certain type. The attached patch resets the code to do exactly that for STREAMTYPE 0x80 - though can't check whether the digiCipher-stuff is still working. Please consider applying soon. Thanks, -- Patrick http://www.kernellabs.com/
diff --git a/pat.c b/pat.c index d9b93f6..f0d0024 100644 --- a/pat.c +++ b/pat.c @@ -456,12 +456,30 @@ void cPatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length } } break; - case 0x80: // STREAMTYPE_USER_PRIVATE - DigiCipher II VIDEO (ANSI/SCTE 57) - Vpid = esPid; - Ppid = pmt.getPCRPid(); - Vtype = 0x02; // compression based upon MPEG-2 - ProcessCaDescriptors = true; - break; + case 0x80: { + SI::Descriptor *d; + for (SI::Loop::Iterator it; (d = stream.streamDescriptors.getNext(it)); ) { + switch (d->getDescriptorTag()) { + case SI::RegistrationDescriptorTag: { + SI::RegistrationDescriptor *rd = (SI::RegistrationDescriptor *)d; + // http://www.smpte-ra.org/mpegreg/mpegreg.html + switch (rd->getFormatIdentifier()) { + case 0x44434949: // STREAMTYPE_USER_PRIVATE - DigiCipher II VIDEO (ANSI/SCTE 57) + Vpid = esPid; + Ppid = pmt.getPCRPid(); + Vtype = 0x02; // compression based upon MPEG-2 + ProcessCaDescriptors = true; + break; + default: + break; + } + } break; + default: + break; + } + } + } break; + case 0x81: // STREAMTYPE_USER_PRIVATE - ATSC A/53 AUDIO (ANSI/SCTE 57) { char lang[MAXLANGCODE1] = { 0 };
_______________________________________________ vdr mailing list vdr@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr