[dvblast-devel] D-Book LCN descriptors

Jeremy Poulter jeremy.poulter at oregan.net
Thu Oct 18 11:56:47 CEST 2012


Hi,

I have been looking at implementing support for parsing the LCN
descriptor for UK DVB-T and to my supprise most of it was already there
but for a different standard. In the D-Book LCN is tag 0x83 with private
data specifier of 0x233a where as what is currently implented is the
IEC/CENELEC 62 216 standard where the only difference (in the actual
data) is the latter has 1 bit that specifies if the channel is vissible
or not and the private data specifier is 0x0028.

So my question is what would be the correct way of implementing support
for this? I currently have a hack in descl_print that also checks for
the private data specifier being 0x233a but I suspect a prefered way
would be to duplicate desc_83p28.h as desc_83p233a.h, update the API
names and remove the visible bit parsing.

Cheers,

Jeremy
-------------- next part --------------
diff --git a/dvb/si/desc_83p28.h b/dvb/si/desc_83p28.h
index 7adf7cc..d416b42 100644
--- a/dvb/si/desc_83p28.h
+++ b/dvb/si/desc_83p28.h
@@ -103,7 +103,7 @@ static inline void desc83p28_print(uint8_t *p_desc, f_print pf_print,
             break;
         default:
             pf_print(opaque,
-            "    - desc %hhu lcn sid=%hu%s lcn=%hu", desc_get_tag(p_desc),
+            "    - desc %hhx lcn sid=%hu%s lcn=%hu", desc_get_tag(p_desc),
             desc83p28n_get_sid(p_desc_n),
             desc83p28n_get_visible(p_desc_n) ? " visible" : "",
             desc83p28n_get_lcn(p_desc_n));
diff --git a/mpeg/psi/descs_print.h b/mpeg/psi/descs_print.h
index a568e4e..8bf272a 100644
--- a/mpeg/psi/descs_print.h
+++ b/mpeg/psi/descs_print.h
@@ -55,8 +55,8 @@ static inline void descl_print(uint8_t *p_descl, uint16_t i_length,
         j++;
 
         desc_print_begin(p_desc, pf_print, print_opaque, i_print_type);
-
-        if (i_private_data_specifier == 0x28) {
+        if (i_private_data_specifier == 0x28 || 
+            i_private_data_specifier == 0x233a) {
             /* EICTA */
             switch (i_tag) {
 #define CASE_DESC(id)                                                       \


More information about the dvblast-devel mailing list