diff options
Diffstat (limited to 'libsi')
-rw-r--r-- | libsi/descriptor.c | 10 | ||||
-rw-r--r-- | libsi/descriptor.h | 11 | ||||
-rw-r--r-- | libsi/si.c | 6 |
3 files changed, 23 insertions, 4 deletions
diff --git a/libsi/descriptor.c b/libsi/descriptor.c index 4f4ef341..a72ec009 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 1.3 2004/01/12 16:17:20 kls Exp $ + * $Id: descriptor.c 1.4 2004/01/24 14:49:00 kls Exp $ * * ***************************************************************************/ @@ -514,6 +514,14 @@ LinkageType LinkageDescriptor::getLinkageType() const { return (LinkageType)s->linkage_type; } +void ISO639LanguageDescriptor::Parse() { + unsigned int offset=0; + data.setPointerAndOffset<const descr_iso_639_language>(s, offset); + languageCode[0]=s->lang_code1; + languageCode[1]=s->lang_code2; + languageCode[2]=s->lang_code3; +} + void ApplicationSignallingDescriptor::Parse() { entryLoop.setData(data+sizeof(descr_application_signalling), getLength()-sizeof(descr_application_signalling)); } diff --git a/libsi/descriptor.h b/libsi/descriptor.h index 3eb90fa2..ed38239f 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 1.3 2004/01/12 16:17:47 kls Exp $ + * $Id: descriptor.h 1.4 2004/01/24 14:49:00 kls Exp $ * * ***************************************************************************/ @@ -374,6 +374,15 @@ private: const descr_linkage *s; }; +class ISO639LanguageDescriptor : public Descriptor { +public: + char languageCode[3]; +protected: + virtual void Parse(); +private: + const descr_iso_639_language *s; +}; + //a descriptor currently unimplemented in this library class UnimplementedDescriptor : public Descriptor { protected: @@ -6,7 +6,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: si.c 1.5 2004/01/12 22:19:34 kls Exp $ + * $Id: si.c 1.6 2004/01/24 14:49:00 kls Exp $ * * ***************************************************************************/ @@ -323,6 +323,9 @@ Descriptor *Descriptor::getDescriptor(CharArray da, DescriptorTagDomain domain) case LinkageDescriptorTag: d=new LinkageDescriptor(); break; + case ISO639LanguageDescriptorTag: + d=new ISO639LanguageDescriptor(); + break; //note that it is no problem to implement one //of the unimplemented descriptors. @@ -335,7 +338,6 @@ Descriptor *Descriptor::getDescriptor(CharArray da, DescriptorTagDomain domain) case DataStreamAlignmentDescriptorTag: case TargetBackgroundGridDescriptorTag: case VideoWindowDescriptorTag: - case ISO639LanguageDescriptorTag: case SystemClockDescriptorTag: case MultiplexBufferUtilizationDescriptorTag: case CopyrightDescriptorTag: |