[FFmpeg-devel] [PATCH] Add optional NIT table generation

Dominguez Bonini, David david.dominguez at ikusi.com
Fri May 14 14:10:22 EEST 2021


Hi,

> Hi Marton,
> 
> Il 2021-05-12 19:18 Marton Balint ha scritto:
> > On Wed, 12 May 2021, Ubaldo Porcheddu wrote:
> >
> >> Hi Marton,
> >>
> >>>> +    }
> >>>> +
> >>>> +    //private data
> >>>> +    desc_len += 6 + 2;
> >>>> +    *q++ = 0x5F;
> >>>> +    *q++ = 4;
> >>>> +    *q++ = 0x00;
> >>>> +    *q++ = 0x00;
> >>>> +    put16(&q, 40);
> >>>
> >>> What are these?
> >>
> >> I didn't find any official document about it but this seems to be the
> >> way many national (FR,IT,UK) broadcasters are writing the virtual
> >> channel private data header and the one recognized by many popular tv
> >> on the market.
> >
> > But this looks like a separate descriptor from the virtual channels
> > (logical_channel_descriptor).
> 
> I think it is better to remove it until it is more clear what it does,
> or maybe we add an extra mpegts flag like "nit_lcn_extra" ?
> 

The private data specifier descriptor is needed for the TV to correctly process the LCN descriptor. When it is needed, you have to include both or none. 
Also, in the Scandinavian countries, that use the NORDIG spec, the LCN descriptor has a different format, though I think the European format may still be understood.

Specs can be found here for NORDIG : https://nordig.org/wp-content/uploads/2017/03/NorDig-Unified_ver_2_6.pdf

Specs for the European LCN can be found here, it's the French spec, but the rest are the same: https://www.csa.fr/web/index.php/content/download/253685/723620/version/1/file/CSA-Signalling-Profilev3.4.pdf
 
Specs for the Australian LCN descriptor can be found here: https://www.freetv.com.au/wp-content/uploads/2019/08/OP-41-LCN-Descriptor-Issue-8-July-2016.pdf

The rules, as far as I know them are:

NORDIG --> Private Data Specifier = 0x00000029,  LCN Descriptor Tag = 0x83 (legacy), 0x87 (Nordig version)
United Kingdom --> Private Data Specifier = 0x0000233A,  LCN Descriptor Tag = 0x83
Rest of Europe + Most of the World --> Private Data Specifier = 0x00000028,  LCN Descriptor Tag = 0x83
Australia --> _Do_not_include_Private_data_specifier_descriptor_ , LCN Descriptor Tag = 0x83

My suggestion would be to add an "LCN_mode" parameters, with values: NO_LCN, Australia,UK,Nordig, etc

Regards

David




More information about the ffmpeg-devel mailing list