These are chat archives for Opendigitalradio/mmbTools

22nd
Mar 2016
Nick Piggott
@nickpiggott
Mar 22 2016 11:02
etisnoop - I did a fresh compile on a new VM today, using gcc 4.7.2, and it's throwing errors over the type in sprintf() commands when variables are being cast to PRId64. I got errors in the new fig0_21.cpp and fig0_24.cpp, but I'm struggling to find a type that sprintf() will accept? %llu and %lu both failed? Any other suggestions? If I can fix it up, I'll commit the changes.
Gabriel
@vvombat
Mar 22 2016 11:59
@nickpiggott Thx for the answer! I think i'll have to change the configparser.cpp in ODR-DabMux than to mimik the specification in that part.
@mpbraendli As far as i understood DAB+ one component can be linked / used by more than one service. E.g. one TPEG component can be linked to more than one service. E.g. HR TPEG (HR = a german radio channel) is linked to HR1, HR2, HR3 etc. in the same ensemble. But in ODR-DabMux the configparser is limited to link a component to one service.
Matthias P. Braendli
@mpbraendli
Mar 22 2016 13:52

@nickpiggott printf issue: There is no %XYZ that works for all architectures, both 32 and 64 bits. That's why PRId64 was invented. Please don't remove PRId64, but add something like

#ifndef PRId64
#define PRId64 "%lld" // or something you find out is better
#endif

at the beginning. We better live with a warning and a potential misprintf that with a compile failure.

About the component issue, before you jump into the code. Are you certain it is not like this?

service_radio_foo - component_audio - subchannel_audio
service_radio_foo - component_tpeg    - subchannel_tpeg

Because you can do this with the config.

Gabriel
@vvombat
Mar 22 2016 14:14
@mpbraendli The ODR-DabMux's MuxElements.h describes in line 292 the class DabComponent. Each Component object holds only one Service ID as parameter (line 305). The "problem" with TPEG is it's not a subchannel in the DAB+ protocol, it's located in the FIDC / FIC. ETSI EN 300 401 page 47 - figure 21. I hope i didn't get it wrong but as far as i can see it is not possible to mimic this constellation with ODR-DabMux. If im wrong: I'm sorry for the misunderstanding in this chat. :/
Nick Piggott
@nickpiggott
Mar 22 2016 15:06
@mpbraendli @vvombat Similarly, it was possible on the command line parser to specify one packet-mode EPG service as being a common component of several different audio services. (In the UK, the EPG is usually a single service carrying EPG info for multiple services on the multiplex)
@mpbraendli OK, I understand the problem now. I thought it was a problem with string replacement in sprintf(), but it's actually a missing definition of PRId64. My C experience is weak.
Matthias P. Braendli
@mpbraendli
Mar 22 2016 15:31
Thanks for the reference to the figure in EN 300 401. I'll have a look later!