Google
  Web www.spinics.net

Re: Bug in pat.c (VDR 1.7.27) - possible fix attached

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


On 09.04.2012 17:49, Patrick Boettcher wrote:
On Monday 09 April 2012 13:39:36 Dominic Evans wrote:
On 9 April 2012 10:40, Klaus Schmidinger<Klaus.Schmidinger@xxxxxxx>
wrote:
+                          //
http://www.smpte-ra.org/mpegreg/mpegreg.html +
  ...
+                          case 0x44434949: // STREAMTYPE_USER_PRIVATE
- DigiCipher II VIDEO (ANSI/SCTE 57)

There is no entry for 44-43-49-49 on the given page.

It wasn't me who added this stream-type check, I just re-applied the checks
how they were done before.

No big deal, I was just wondering.

I have adopted your patch in the attached form.
Maybe you (and/or Rolf) would like to verify it.

Klaus
--- pat.c	2012/03/02 10:56:45	2.17
+++ pat.c	2012/04/09 11:49:39	2.18
@@ -456,11 +456,28 @@
                          }
                       }
                       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;
+              // see http://www.smpte-ra.org/mpegreg/mpegreg.html for the codes used below
+              case 0x80: { // STREAMTYPE_USER_PRIVATE - DigiCipher II VIDEO (ANSI/SCTE 57)
+                      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;
+                                 switch (rd->getFormatIdentifier()) {
+                                   case 0x44434949: // 'DCII' aka. DigiCipher II
+                                        Vpid = esPid;
+                                        Ppid = pmt.getPCRPid();
+                                        Vtype = 0x02; // compression based upon MPEG-2
+                                        ProcessCaDescriptors = true;
+                                        break;
+                                   default: ;
+                                   }
+                                 }
+                                 break;
+                            default: ;
+                            }
+                          }
+                      }
                       break;
               case 0x81: // STREAMTYPE_USER_PRIVATE - ATSC A/53 AUDIO (ANSI/SCTE 57)
                       {
@@ -495,7 +512,6 @@
                           switch (d->getDescriptorTag()) {
                             case SI::RegistrationDescriptorTag: {
                                  SI::RegistrationDescriptor *rd = (SI::RegistrationDescriptor *)d;
-                                 // http://www.smpte-ra.org/mpegreg/mpegreg.html
                                  switch (rd->getFormatIdentifier()) {
                                    case 0x41432D33: // 'AC-3'
                                         IsAc3 = true;
_______________________________________________
vdr mailing list
vdr@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

[Linux Media]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Devices]     [Big List of Linux Books]     [Fedora Users]     [Webcams]     [Fedora Women]     [ALSA Devel]     [Linux USB]

Powered by Linux