DAB-Radio
DAB-Radio copied to clipboard
Fix bugs relating to incorrect implementation of DAB database
Description
- Issue bringing this to attention: https://github.com/williamyang98/DAB-Radio/pull/12
- Service components do not map to a single subchannel
- Relevant data files:
- https://github.com/HeisensOppings/DAB-Rawfiles
- dab.2021-12-16T14_26_44_664
Example of bug/issue
Regarding fig 0/5 handling of service component language
TODO The current FIG 0/5 handler assumes a 1:1 mapping between subchannel_id and service components. However, some real-world cases involve multiple components sharing the same ID This is a rough suggestion — Not sure if this is the best way to integrate with the current updater model.
Proposed fix
I'll have to check the doc to see what's suppose to happen, it's been a while since I've touched the DAB standard and I've been busy with other things so it'll probably be a while before I can't do some of this. For future reference I believe this is where the relevant documentation should be:
- Document: ETSI EN 300 401
- Regarding
Fig Type 0 Ext 5as described in the TODO the specification has- Section 5.2.2.1 - Fig type 0 data field contains P/D flag which specifies if service identifiers are 16bit or 32bit format
- Service identifier is not present in fig type 0 header so I assume this is for any service identifiers that come after the header
- Section 8.1.2 - Service component language (Fig type 0 extension 5)
- List of languages and associated subchannels or service components (Figure 37: Structure of service component language field)
- Short form: Sub channel id to language pair
- Long form: Service component to language pair
- Section 5.2.2.1 - Fig type 0 data field contains P/D flag which specifies if service identifiers are 16bit or 32bit format
- For service component id we just set language for that service component
- For subchannel id since we have many service components associated with it we should probably set the languages for all of them
- Will need to fix other places where we assume a subchannel corresponds to a single service component