summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY1
-rw-r--r--libsi/descriptor.c10
-rw-r--r--libsi/descriptor.h11
-rw-r--r--libsi/si.c6
4 files changed, 24 insertions, 4 deletions
diff --git a/HISTORY b/HISTORY
index f7bc526c..01a68943 100644
--- a/HISTORY
+++ b/HISTORY
@@ -2614,3 +2614,4 @@ Video Disk Recorder Revision History
2004-01-24: Version 1.3.3
- Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
+- Added ISO639LanguageDescriptor to 'libsi'.
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:
diff --git a/libsi/si.c b/libsi/si.c
index 4342097f..0aa9c524 100644
--- a/libsi/si.c
+++ b/libsi/si.c
@@ -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: