From b2812b7e71b4b5ef038045f48a5697a4dd063192 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Wed, 15 Jun 2011 21:29:03 +0200 Subject: Added support for "content identifier descriptor" and "default authority descriptor" to 'libsi' --- libsi/descriptor.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'libsi/descriptor.c') diff --git a/libsi/descriptor.c b/libsi/descriptor.c index 59f636a3..06a58c0a 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.1 2010/11/01 15:24:31 kls Exp $ + * $Id: descriptor.c 2.2 2011/06/15 21:26:00 kls Exp $ * * ***************************************************************************/ @@ -643,6 +643,33 @@ void ServiceIdentifierDescriptor::Parse() { textualServiceIdentifier.setData(data+sizeof(descr_service_identifier), getLength()-sizeof(descr_service_identifier)); } +void ContentIdentifierDescriptor::Parse() { + identifierLoop.setData(data+sizeof(descr_content_identifier), getLength()-sizeof(descr_content_identifier)); +} + +void ContentIdentifierDescriptor::Identifier::Parse() { + int offset=0; + data.setPointerAndOffset(s, offset); + if (s->crid_location == 0) { + identifier.setData(data+(offset-1), s->crid_length); + } + else { + identifier.setData(data+(offset-1), 2); + } +} + +int ContentIdentifierDescriptor::Identifier::getCridType() const { + return s->crid_type; +} + +int ContentIdentifierDescriptor::Identifier::getCridLocation() const { + return s->crid_location; +} + +void DefaultAuthorityDescriptor::Parse() { + DefaultAuthority.setData(data+sizeof(descr_default_authority), getLength()-sizeof(descr_default_authority)); +} + void MultilingualNameDescriptor::Parse() { nameLoop.setData(data+sizeof(descr_multilingual_network_name), getLength()-sizeof(descr_multilingual_network_name)); } -- cgit v1.2.3