summaryrefslogtreecommitdiff
path: root/libsi/descriptor.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2013-10-30 10:18:26 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2013-10-30 10:18:26 +0100
commit512cd24e5396bf2d027ff6dd698ad77f9b266ff5 (patch)
treefab44cf1937b474e61c4769e1e8d35286ecd2fe7 /libsi/descriptor.c
parent83a8d5a5617e0d54025a41fae69bf0105b25a2a4 (diff)
downloadvdr-512cd24e5396bf2d027ff6dd698ad77f9b266ff5.tar.gz
vdr-512cd24e5396bf2d027ff6dd698ad77f9b266ff5.tar.bz2
Added code for parsing LCN and AVC descriptors to libsi
Diffstat (limited to 'libsi/descriptor.c')
-rw-r--r--libsi/descriptor.c99
1 files changed, 98 insertions, 1 deletions
diff --git a/libsi/descriptor.c b/libsi/descriptor.c
index 07429b54..f763d62b 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.4 2012/01/11 11:35:17 kls Exp $
+ * $Id: descriptor.c 3.1 2013/10/30 10:16:18 kls Exp $
* *
***************************************************************************/
@@ -922,6 +922,48 @@ int T2DeliverySystemDescriptor::getTfsFlag() const {
return extended_data_flag ? s->tfs_flag : -1;
}
+void LogicalChannelDescriptor::Parse() {
+ //this descriptor is only a header and a loop
+ logicalChannelLoop.setData(data+sizeof(descr_logical_channel), getLength()-sizeof(descr_logical_channel));
+}
+
+int LogicalChannelDescriptor::LogicalChannel::getServiceId() const {
+ return HILO(s->service_id);
+}
+
+int LogicalChannelDescriptor::LogicalChannel::getVisibleServiceFlag() const {
+ return s->visible_service_flag;
+}
+
+int LogicalChannelDescriptor::LogicalChannel::getLogicalChannelNumber() const {
+ return HILO(s->logical_channel_number);
+}
+
+void LogicalChannelDescriptor::LogicalChannel::Parse() {
+ s=data.getData<const item_logical_channel>();
+}
+
+void HdSimulcastLogicalChannelDescriptor::Parse() {
+ //this descriptor is only a header and a loop
+ hdSimulcastLogicalChannelLoop.setData(data+sizeof(descr_hd_simulcast_logical_channel), getLength()-sizeof(descr_hd_simulcast_logical_channel));
+}
+
+int HdSimulcastLogicalChannelDescriptor::HdSimulcastLogicalChannel::getServiceId() const {
+ return HILO(s->service_id);
+}
+
+int HdSimulcastLogicalChannelDescriptor::HdSimulcastLogicalChannel::getVisibleServiceFlag() const {
+ return s->visible_service_flag;
+}
+
+int HdSimulcastLogicalChannelDescriptor::HdSimulcastLogicalChannel::getLogicalChannelNumber() const {
+ return HILO(s->logical_channel_number);
+}
+
+void HdSimulcastLogicalChannelDescriptor::HdSimulcastLogicalChannel::Parse() {
+ s=data.getData<const item_hd_simulcast_logical_channel>();
+}
+
int PremiereContentTransmissionDescriptor::getOriginalNetworkId() const {
return HILO(s->original_network_id);
}
@@ -1145,4 +1187,59 @@ void RegistrationDescriptor::Parse() {
privateData.assign(data.getData(offset), getLength()-offset);
}
+int AVCDescriptor::getProfileIdc() const {
+ return s->profile_idc;
+}
+
+int AVCDescriptor::getConstraintSet0Flag() const {
+ return s->constraint_set0_flag;
+}
+
+int AVCDescriptor::getConstraintSet1Flag() const {
+ return s->constraint_set1_flag;
+}
+
+int AVCDescriptor::getConstraintSet2Flag() const {
+ return s->constraint_set2_flag;
+}
+
+int AVCDescriptor::getConstraintSet3Flag() const {
+ return s->constraint_set3_flag;
+}
+
+int AVCDescriptor::getConstraintSet4Flag() const {
+ return s->constraint_set4_flag;
+}
+
+int AVCDescriptor::getConstraintSet5Flag() const {
+ return s->constraint_set5_flag;
+}
+
+int AVCDescriptor::getAVCCompatibleFlags() const {
+ return s->avc_compatible_flags;
+}
+
+int AVCDescriptor::getLevelIdc() const {
+ return s->level_idc;
+}
+
+int AVCDescriptor::getAVCStillPresent() const {
+ return s->avc_still_present;
+}
+
+int AVCDescriptor::getAVC24HourPictureFlag() const {
+ return s->avc_24_hour_picture_flag;
+}
+
+int AVCDescriptor::getFramePackingSEINotPresentFlag() const {
+ return s->frame_packing_sei_not_present_flag;
+}
+
+void AVCDescriptor::Parse() {
+ int offset=0;
+ data.setPointerAndOffset<const descr_avc>(s, offset);
+ if (checkSize(getLength()-offset))
+ privateData.assign(data.getData(offset), getLength()-offset);
+}
+
} //end of namespace