Opendigitalradio/ODR-DabMux

protection modes B missing in the ParserConfigfile.cpp

Closed this issue · 9 comments

In the DAB longform subchannels (EEP), two protection modes are available: A (multiples of 8kbps) and B (multiples of 32kbps). While 3A is generally used, B mode can be useful in some cases.
From the original CRC-mmbtools, the 2 options are available in the commande line but the option is missing when using the configfile of ODR-mmbtools.
(protection->longForm.option in the code)

Which are the cmdline options to switch between the two ?

The long form is enabled if a subchannel is defined using -A (MPEG Audio subchannel). The configuration file parser has the same behaviour. There is no dedicated option for switching between the long and short form.

Would it make sense to add a dedicated switch ? Are both forms suitable for all subchannel types ?

ping

It's not about short or long form but the error protection in the long form that can be A or B. It is controlled by the flag -p in CRC-DabMux (see http://www.opendigitalradio.org/CRC-DabMux_man_page )
For example, if you put -p 3 it will be 3A that is chosen (if in EEP) but it can be also -p 3B. This is not reflected in ODR-DabMux config file.

I don't see how that can work. The argument to the -p option is converted to an integer:
https://github.com/Opendigitalradio/ODR-DabMux/blob/master/src/ParserCmdline.cpp#L579

So -p 3B is actually invalid.

The manpage also doesn't mention this.

I will look at the standard to see what it would imply to add this option.

Effectively then I am wrong saying it was available from the command line maybe I mixed the mod and the mux, I remember the mod didn't implement the A or B longform option it and then Pascal Charest from CRC added it in the modulator.
However looking at the code of the mux in the different files, it seems the option had been foreseen (if you search for "protection->option" ). In any case, this stays an enhancement (this issue was not posted as a bug). Look at page 6.2.1 and 11.3.2 of ETSI EN 300 410 for more information on long form options.

All ok. Can you have a look at dabmod about this ?

I'll look into the standard and try to add this option.

Look at what ? I'm pretty sure DabMod supports it.
If you look at the code here https://github.com/Opendigitalradio/ODR-DabMod/blob/master/src/SubchannelSource.cpp#L74 , we can see that both are implemented. On the mux, it's mainly a matter of signalling (and handling of input options).
While B mode is rarely used because of the nx32kbps constrain, it can be useful to gain some space at the cost of a lower protection.

commit ca7dd07 adds an option to the config file. Can you close this issue if you think it's ok like this ?

ping