From 0f63ea2be68823d63f140c67ddb3e6a07de8969d Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Sat, 7 Jan 2012 07:28:44 -0200 Subject: [PATCH] utils/dvb: Add support for LCN descriptor While this descriptor appears on several places, it took some time to discover the format for it. Finally found it at: http://mumudvb.braice.net/mumudrupal/sites/default/files/Specifiche_LCN.pdf Signed-off-by: Mauro Carvalho Chehab --- utils/dvb/descriptors.c | 18 ++++++++++++++++++ utils/dvb/descriptors.h | 6 ++++++ 2 files changed, 24 insertions(+) diff --git a/utils/dvb/descriptors.c b/utils/dvb/descriptors.c index e75f0d6..287e12d 100644 --- a/utils/dvb/descriptors.c +++ b/utils/dvb/descriptors.c @@ -80,6 +80,9 @@ static const char *descriptors[] = { [CUE_identifier_descriptor] = "CUE_identifier_descriptor", + [component_name_descriptor] = "component_name_descriptor", + [logical_channel_number_descriptor] = "logical_channel_number_descriptor", + [conditional_access_descriptor] = "conditional_access_descriptor", [copyright_descriptor] = "copyright_descriptor", [carousel_id_descriptor] = "carousel_id_descriptor", @@ -272,10 +275,25 @@ static void parse_descriptor(struct dvb_descriptors *dvb_desc, case XAIT_location_descriptor: case FTA_content_management_descriptor: case extension_descriptor: + case CUE_identifier_descriptor: + case component_name_descriptor: /* FIXME: Add parser */ break; + case logical_channel_number_descriptor: + { + int i; + const unsigned char *p = &buf[2]; + for (i = 0; i < dlen; i+= 4, p+= 4) { + if (dvb_desc->verbose) + printf("Service ID: 0x%04x, LCN: %d\n", + p[0] << 8 | p[1], + (p[2] << 8 | p[3]) & 0x3ff); + } + break; + } + case conditional_access_descriptor: case copyright_descriptor: case carousel_id_descriptor: diff --git a/utils/dvb/descriptors.h b/utils/dvb/descriptors.h index e967e98..5febfa5 100644 --- a/utils/dvb/descriptors.h +++ b/utils/dvb/descriptors.h @@ -79,6 +79,12 @@ enum descriptors { /* SCTE 35 2004 */ CUE_identifier_descriptor = 0x8a, + /* From http://www.etherguidesystems.com/Help/SDOs/ATSC/Semantics/Descriptors/Default.aspx */ + component_name_descriptor = 0xa3, + + /* From http://www.coolstf.com/tsreader/descriptors.html */ + logical_channel_number_descriptor = 0x83, + /* ISDB Descriptors, as defined on ABNT NBR 15603-1 2007 */ conditional_access_descriptor = 0x09, -- 2.7.4