diff options
Diffstat (limited to 'libsi')
-rw-r--r-- | libsi/Makefile | 3 | ||||
-rw-r--r-- | libsi/descriptor.c | 13 | ||||
-rw-r--r-- | libsi/descriptor.h | 12 | ||||
-rw-r--r-- | libsi/headers.h | 14 | ||||
-rw-r--r-- | libsi/si.c | 6 | ||||
-rw-r--r-- | libsi/util.h | 3 |
6 files changed, 44 insertions, 7 deletions
diff --git a/libsi/Makefile b/libsi/Makefile index 1472a3b..37be2f6 100644 --- a/libsi/Makefile +++ b/libsi/Makefile @@ -1,7 +1,7 @@ # # Makefile for a libsi # -# $Id: Makefile 2.0 2006/05/26 10:40:19 kls Exp $ +# $Id: Makefile 2.1 2010/11/07 13:31:05 kls Exp $ ### The C++ compiler and options: @@ -11,6 +11,7 @@ AR = ar ARFLAGS = ru RANLIB = ranlib +include ../Make.global -include ../Make.config ### The directory environment: diff --git a/libsi/descriptor.c b/libsi/descriptor.c index 06b22dc..59f636a 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 2.0 2007/02/03 11:45:58 kls Exp $ + * $Id: descriptor.c 2.1 2010/11/01 15:24:31 kls Exp $ * * ***************************************************************************/ @@ -1032,4 +1032,15 @@ void MHP_ApplicationIconsDescriptor::Parse() { data.setPointerAndOffset<const descr_application_icons_descriptor_end>(s, offset); } +int RegistrationDescriptor::getFormatIdentifier() const { + return HILOHILO(s->format_identifier); +} + +void RegistrationDescriptor::Parse() { + int offset=0; + data.setPointerAndOffset<const descr_registration>(s, offset); + if (checkSize(getLength()-offset)) + privateData.assign(data.getData(offset), getLength()-offset); +} + } //end of namespace diff --git a/libsi/descriptor.h b/libsi/descriptor.h index 7df076e..4f2e41b 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 2.0 2007/02/03 11:45:58 kls Exp $ + * $Id: descriptor.h 2.1 2010/11/01 15:24:32 kls Exp $ * * ***************************************************************************/ @@ -660,6 +660,16 @@ private: const descr_application_icons_descriptor_end *s; }; +class RegistrationDescriptor : public Descriptor { +public: + int getFormatIdentifier() const; + CharArray privateData; +protected: + virtual void Parse(); +private: + const descr_registration *s; +}; + } //end of namespace #endif //LIBSI_TABLE_H diff --git a/libsi/headers.h b/libsi/headers.h index 1e09d6c..3ec35de 100644 --- a/libsi/headers.h +++ b/libsi/headers.h @@ -10,7 +10,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: headers.h 2.0 2007/02/03 11:45:58 kls Exp $ + * $Id: headers.h 2.1 2010/11/01 15:24:32 kls Exp $ * * ***************************************************************************/ @@ -2006,6 +2006,18 @@ struct item_premiere_content_transmission_time { u_char start_time_s :8; }; +/* 0x05 registration_descriptor */ + +#define DESCR_REGISTRATION_LEN 6 +struct descr_registration { + u_char descriptor_tag :8; + u_char descriptor_length :8; + u_char format_identifier_hi_hi :8; + u_char format_identifier_hi_lo :8; + u_char format_identifier_lo_hi :8; + u_char format_identifier_lo_lo :8; +}; + } //end of namespace #endif //LIBSI_HEADERS_H @@ -6,7 +6,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: si.c 2.2 2010/02/13 10:31:52 kls Exp $ + * $Id: si.c 2.3 2010/11/01 15:24:32 kls Exp $ * * ***************************************************************************/ @@ -606,6 +606,9 @@ Descriptor *Descriptor::getDescriptor(CharArray da, DescriptorTagDomain domain, case ExtensionDescriptorTag: d=new ExtensionDescriptor(); break; + case RegistrationDescriptorTag: + d=new RegistrationDescriptor(); + break; //note that it is no problem to implement one //of the unimplemented descriptors. @@ -614,7 +617,6 @@ Descriptor *Descriptor::getDescriptor(CharArray da, DescriptorTagDomain domain, case VideoStreamDescriptorTag: case AudioStreamDescriptorTag: case HierarchyDescriptorTag: - case RegistrationDescriptorTag: case DataStreamAlignmentDescriptorTag: case TargetBackgroundGridDescriptorTag: case VideoWindowDescriptorTag: diff --git a/libsi/util.h b/libsi/util.h index 4862672..e9134cd 100644 --- a/libsi/util.h +++ b/libsi/util.h @@ -6,7 +6,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: util.h 2.1 2008/05/22 10:49:08 kls Exp $ + * $Id: util.h 2.2 2010/11/01 15:24:32 kls Exp $ * * ***************************************************************************/ @@ -19,6 +19,7 @@ #include <time.h> #define HILO(x) (x##_hi << 8 | x##_lo) +#define HILOHILO(x) (x##_hi_hi << 24 | x##_hi_lo << 16 | x##_lo_hi << 8 | x##_lo_lo) #define BCD_TIME_TO_SECONDS(x) ((3600 * ((10*((x##_h & 0xF0)>>4)) + (x##_h & 0xF))) + \ (60 * ((10*((x##_m & 0xF0)>>4)) + (x##_m & 0xF))) + \ ((10*((x##_s & 0xF0)>>4)) + (x##_s & 0xF))) |