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

Marton Balint cus at passwd.hu
Sun May 16 12:36:58 EEST 2021



On Fri, 14 May 2021, Dominguez Bonini, David wrote:

> 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

Thanks for this, I agree with your suggestion.

It probably also makes sense to split the feature in two patches:

patch 1 adds support the nit flag (I think it is shorter than emit_nit) 
without LCN.

patch 2 add support for various lcn modes:
-lcn_mode (none|nordig|nordig_legacy|uk|australia|world).
And this would enable lcn generation in the NIT.

Regards,
Marton


More information about the ffmpeg-devel mailing list