mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Added LinkageDescriptor handling to 'libsi'
This commit is contained in:
parent
89ecc6b452
commit
2a11c183b5
3
HISTORY
3
HISTORY
@ -2572,7 +2572,8 @@ Video Disk Recorder Revision History
|
|||||||
branches are tested, cable and terrestrial need to be tested by somebody who
|
branches are tested, cable and terrestrial need to be tested by somebody who
|
||||||
actually has such equipment.
|
actually has such equipment.
|
||||||
|
|
||||||
2004-01-11: Version 1.3.2
|
2004-01-12: Version 1.3.2
|
||||||
|
|
||||||
- Fixed resetting the EPG data versions after changing the preferred languages
|
- Fixed resetting the EPG data versions after changing the preferred languages
|
||||||
(thanks to Teemu Rantanen for reporting this one and helping to debug it).
|
(thanks to Teemu Rantanen for reporting this one and helping to debug it).
|
||||||
|
- Added LinkageDescriptor handling to 'libsi' (thanks to Marcel Wiesweg).
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* the Free Software Foundation; either version 2 of the License, or *
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
* (at your option) any later version. *
|
* (at your option) any later version. *
|
||||||
* *
|
* *
|
||||||
* $Id: descriptor.c 1.2 2003/12/13 10:42:05 kls Exp $
|
* $Id: descriptor.c 1.3 2004/01/12 16:17:20 kls Exp $
|
||||||
* *
|
* *
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -492,6 +492,28 @@ void MultilingualServiceNameDescriptor::Name::Parse() {
|
|||||||
name.setData(data+offset, mid->service_name_length);
|
name.setData(data+offset, mid->service_name_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LinkageDescriptor::Parse() {
|
||||||
|
unsigned int offset=0;
|
||||||
|
data.setPointerAndOffset<const descr_linkage>(s, offset);
|
||||||
|
privateData.assign(data.getData(offset), getLength()-offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
int LinkageDescriptor::getTransportStreamId() const {
|
||||||
|
return HILO(s->transport_stream_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
int LinkageDescriptor::getOriginalNetworkId() const {
|
||||||
|
return HILO(s->original_network_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
int LinkageDescriptor::getServiceId() const {
|
||||||
|
return HILO(s->service_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
LinkageType LinkageDescriptor::getLinkageType() const {
|
||||||
|
return (LinkageType)s->linkage_type;
|
||||||
|
}
|
||||||
|
|
||||||
void ApplicationSignallingDescriptor::Parse() {
|
void ApplicationSignallingDescriptor::Parse() {
|
||||||
entryLoop.setData(data+sizeof(descr_application_signalling), getLength()-sizeof(descr_application_signalling));
|
entryLoop.setData(data+sizeof(descr_application_signalling), getLength()-sizeof(descr_application_signalling));
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* the Free Software Foundation; either version 2 of the License, or *
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
* (at your option) any later version. *
|
* (at your option) any later version. *
|
||||||
* *
|
* *
|
||||||
* $Id: descriptor.h 1.2 2003/12/13 10:42:08 kls Exp $
|
* $Id: descriptor.h 1.3 2004/01/12 16:17:47 kls Exp $
|
||||||
* *
|
* *
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -361,6 +361,19 @@ protected:
|
|||||||
virtual void Parse();
|
virtual void Parse();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class LinkageDescriptor : public Descriptor {
|
||||||
|
public:
|
||||||
|
int getTransportStreamId() const;
|
||||||
|
int getOriginalNetworkId() const;
|
||||||
|
int getServiceId() const;
|
||||||
|
LinkageType getLinkageType() const;
|
||||||
|
CharArray privateData;
|
||||||
|
protected:
|
||||||
|
virtual void Parse();
|
||||||
|
private:
|
||||||
|
const descr_linkage *s;
|
||||||
|
};
|
||||||
|
|
||||||
//a descriptor currently unimplemented in this library
|
//a descriptor currently unimplemented in this library
|
||||||
class UnimplementedDescriptor : public Descriptor {
|
class UnimplementedDescriptor : public Descriptor {
|
||||||
protected:
|
protected:
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* the Free Software Foundation; either version 2 of the License, or *
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
* (at your option) any later version. *
|
* (at your option) any later version. *
|
||||||
* *
|
* *
|
||||||
* $Id: si.c 1.4 2004/01/05 11:04:17 kls Exp $
|
* $Id: si.c 1.5 2004/01/12 22:19:34 kls Exp $
|
||||||
* *
|
* *
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -320,6 +320,9 @@ Descriptor *Descriptor::getDescriptor(CharArray da, DescriptorTagDomain domain)
|
|||||||
case ApplicationSignallingDescriptorTag:
|
case ApplicationSignallingDescriptorTag:
|
||||||
d=new ApplicationSignallingDescriptor();
|
d=new ApplicationSignallingDescriptor();
|
||||||
break;
|
break;
|
||||||
|
case LinkageDescriptorTag:
|
||||||
|
d=new LinkageDescriptor();
|
||||||
|
break;
|
||||||
|
|
||||||
//note that it is no problem to implement one
|
//note that it is no problem to implement one
|
||||||
//of the unimplemented descriptors.
|
//of the unimplemented descriptors.
|
||||||
@ -348,7 +351,6 @@ Descriptor *Descriptor::getDescriptor(CharArray da, DescriptorTagDomain domain)
|
|||||||
case VBITeletextDescriptorTag:
|
case VBITeletextDescriptorTag:
|
||||||
case CountryAvailabilityDescriptorTag:
|
case CountryAvailabilityDescriptorTag:
|
||||||
case MocaicDescriptorTag:
|
case MocaicDescriptorTag:
|
||||||
case LinkageDescriptorTag:
|
|
||||||
case TeletextDescriptorTag:
|
case TeletextDescriptorTag:
|
||||||
case TelephoneDescriptorTag:
|
case TelephoneDescriptorTag:
|
||||||
case LocalTimeOffsetDescriptorTag:
|
case LocalTimeOffsetDescriptorTag:
|
||||||
|
18
libsi/si.h
18
libsi/si.h
@ -6,7 +6,7 @@
|
|||||||
* the Free Software Foundation; either version 2 of the License, or *
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
* (at your option) any later version. *
|
* (at your option) any later version. *
|
||||||
* *
|
* *
|
||||||
* $Id: si.h 1.5 2004/01/09 15:59:53 kls Exp $
|
* $Id: si.h 1.6 2004/01/12 16:19:11 kls Exp $
|
||||||
* *
|
* *
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -154,6 +154,18 @@ enum RunningStatus { RunningStatusUndefined = 0,
|
|||||||
RunningStatusRunning = 4
|
RunningStatusRunning = 4
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum LinkageType { LinkageTypeInformationService = 0x01,
|
||||||
|
LinkageTypeEPGService = 0x02,
|
||||||
|
LinkageTypeCaReplacementService = 0x03,
|
||||||
|
LinkageTypeTSContainingCompleteNetworkBouquetSi = 0x04,
|
||||||
|
LinkageTypeServiceReplacementService = 0x05,
|
||||||
|
LinkageTypeDataBroadcastService = 0x06,
|
||||||
|
LinkageTypeRCSMap = 0x07,
|
||||||
|
LinkageTypeMobileHandover = 0x08,
|
||||||
|
LinkageTypeSystemSoftwareUpdateService = 0x09,
|
||||||
|
LinkageTypeTSContainingSsuBatOrNit = 0x0A
|
||||||
|
};
|
||||||
|
|
||||||
/* Some principles:
|
/* Some principles:
|
||||||
- Objects that return references to other objects contained in their data must make sure
|
- Objects that return references to other objects contained in their data must make sure
|
||||||
that the returned objects have been parsed.
|
that the returned objects have been parsed.
|
||||||
@ -167,6 +179,7 @@ public:
|
|||||||
Object(CharArray &d);
|
Object(CharArray &d);
|
||||||
//can only be called once since data is immutable
|
//can only be called once since data is immutable
|
||||||
void setData(const unsigned char*data, unsigned int size, bool doCopy=true);
|
void setData(const unsigned char*data, unsigned int size, bool doCopy=true);
|
||||||
|
CharArray getData() { return data; }
|
||||||
virtual int getLength() = 0;
|
virtual int getLength() = 0;
|
||||||
protected:
|
protected:
|
||||||
CharArray data;
|
CharArray data;
|
||||||
@ -224,9 +237,6 @@ private:
|
|||||||
class LoopElement : public Object {
|
class LoopElement : public Object {
|
||||||
};
|
};
|
||||||
|
|
||||||
class SubStructure : public LoopElement {
|
|
||||||
};
|
|
||||||
|
|
||||||
class Descriptor : public LoopElement {
|
class Descriptor : public LoopElement {
|
||||||
public:
|
public:
|
||||||
virtual int getLength();
|
virtual int getLength();
|
||||||
|
Loading…
Reference in New Issue
Block a user