Ticket #13382: 20190122-dvb-sdt-descriptors.patch

File 20190122-dvb-sdt-descriptors.patch, 2.1 KB (added by Klaas de Waal, 8 years ago)
  • mythtv/libs/libmythtv/mpeg/dvbtables.cpp

    diff --git a/mythtv/libs/libmythtv/mpeg/dvbtables.cpp b/mythtv/libs/libmythtv/mpeg/dvbtables.cpp
    index fd9c18a267..0ba0e3dde2 100644
    a b QString ServiceDescriptionTable::toString(void) const  
    128128                MPEGDescriptor::Parse(ServiceDescriptors(i),
    129129                                      ServiceDescriptorsLength(i));
    130130            for (uint j = 0; j < desc.size(); j++)
    131                 str.append(QString("    %1\n")
    132                            .arg(MPEGDescriptor(desc[j]).toString()));
     131            {
     132                // Descriptors 0x80 to 0xFE are user defined, see
     133                // Final draft ETSI EN 300 468 v1.13.1 (2012-04)
     134                // Table 12: "Possible location of descriptors", page 33)
     135                if(MPEGDescriptor(desc[j]).DescriptorTag() < 0x80)
     136                {
     137                    str.append(QString("    %1\n")
     138                               .arg(MPEGDescriptor(desc[j]).toString()));
     139                }
     140                else
     141                {
     142                    QString udd = "Invalid Descriptor";
     143                    if (MPEGDescriptor(desc[j]).IsValid())
     144                    {
     145                        udd = QString("User Defined Descriptor (0x%1) length(%2). Dumping\n")
     146                            .arg(MPEGDescriptor(desc[j]).DescriptorTag(),2,16,QChar('0'))
     147                            .arg(MPEGDescriptor(desc[j]).DescriptorLength());
     148                        udd.append(MPEGDescriptor(desc[j]).hexdump());
     149                    }
     150                    str.append(QString("    %1\n").arg(udd));
     151                }
     152            }
    133153        }
    134154    }
    135155    return str;
  • mythtv/libs/libmythtv/mpeg/mpegdescriptors.h

    diff --git a/mythtv/libs/libmythtv/mpeg/mpegdescriptors.h b/mythtv/libs/libmythtv/mpeg/mpegdescriptors.h
    index 2ae824572d..6f42dfd46a 100644
    a b class MTV_PUBLIC MPEGDescriptor  
    271271
    272272  protected:
    273273    const unsigned char *_data;
     274
     275  public:
    274276    QString hexdump(void) const;
    275277};
    276278