diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 70ac90d8..14ddedb3 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -3575,6 +3575,8 @@ Helmut Binder for fixing processing the last entry in the scan list of the EIT scanner for fixing processing transponder data in the NIT for fixing triggering the SDT filter when parsing the NIT + for reporting a bug in processing SI::T2DeliverySystemDescriptor when typecasting it + over an SI::ExtensionDescriptor Ulrich Eckhardt for reporting a problem with shutdown after user inactivity in case a plugin is diff --git a/HISTORY b/HISTORY index 9d027eb3..21315b2c 100644 --- a/HISTORY +++ b/HISTORY @@ -9383,3 +9383,5 @@ Video Disk Recorder Revision History - Added support for EAC3 audio from other sources (thanks to Jürgen Schneider). - No longer logging tuning timeouts for transponders that are announced in the NIT but are not currently broadcasting. +- Fixed processing SI::T2DeliverySystemDescriptor when typecasting it over an + SI::ExtensionDescriptor (reported by Helmut Binder). diff --git a/libsi/descriptor.c b/libsi/descriptor.c index f763d62b..6b00fc77 100644 --- a/libsi/descriptor.c +++ b/libsi/descriptor.c @@ -6,7 +6,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: descriptor.c 3.1 2013/10/30 10:16:18 kls Exp $ + * $Id: descriptor.c 4.1 2019/03/15 16:12:43 kls Exp $ * * ***************************************************************************/ @@ -870,6 +870,11 @@ int S2SatelliteDeliverySystemDescriptor::getScramblingSequenceIndex() const { void ExtensionDescriptor::Parse() { int offset=0; data.setPointerAndOffset(s, offset); + extended_data_flag = s->descriptor_length > 0x04; +} + +int ExtensionDescriptor::getExtendedDataFlag() const { + return extended_data_flag; } int ExtensionDescriptor::getExtensionDescriptorTag() const { diff --git a/libsi/descriptor.h b/libsi/descriptor.h index 30c9f6b1..3c8b0f90 100644 --- a/libsi/descriptor.h +++ b/libsi/descriptor.h @@ -6,7 +6,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: descriptor.h 3.2 2014/02/08 12:44:17 kls Exp $ + * $Id: descriptor.h 4.1 2019/03/15 16:12:09 kls Exp $ * * ***************************************************************************/ @@ -529,11 +529,13 @@ private: class ExtensionDescriptor : public Descriptor { public: + int getExtendedDataFlag() const; int getExtensionDescriptorTag() const; protected: virtual void Parse(); private: const descr_extension *s; + int extended_data_flag; }; class T2DeliverySystemDescriptor : public Descriptor {