Opendigitalradio / ODR-DabMux

ODR-DabMux is a DAB (Digital Audio Broadcasting) multiplexer, part of the ODR-mmbTools.
https://www.opendigitalradio.org
Other
48 stars 35 forks source link

DAB with protection level EEP_A 1-4 #35

Closed KuntzeM closed 5 years ago

KuntzeM commented 5 years ago

Hi,

I try to create etis with different bitrates and codecs. Is DAB (audio, musicam) with protection EEP_A 1-4 supported? I created with DAB+ different etis. There are working fine. But with DAB, I got an eti without Audio.

Could it be that I did something wrong?

Thanks in advanced!

dab.mux:

general {
    dabmode 1
    nbframes 2500
    syslog false
    writescca false
    tist false
    managementport 0
}

remotecontrol {
    telnetport 0
}

ensemble {
    id 0x0001
    ecc 0xE0
    international-table 1
    local-time-offset auto
    label "CodecEnsemble"
    shortlabel "CodecEns"
}

services {
    Service1 {
        id 0xD001
        label "CodecService"
        shortlabel "CodecSer"
        language 0x00
        pty 0
    }
}

subchannels {
    Subchannel1 {
        id 1
        type audio
        inputfile "tcp://*:9001"
        bitrate 48
        protection-profile EEP_A
        protection 1
        zmq-buffer 40
        zmq-prebuffering 20
    }

}

components {
    Comp1 {
        service Service1
        subchannel Subchannel1
        type 0
    }
}

outputs {
    fifo "file:///home/mathias/DABc_48kHz_048kbit_MonoFull_EEP1A_SONG_V01.eti?type=raw"
    throttle "simul://"
}

created eti: DABc_48kHz_048kbit_MonoFull_EEP1A_SONG_V01.zip

andimik commented 5 years ago

Why do you want to use EEP with mp2? To simulate the Swedish DAB?

KuntzeM commented 5 years ago

We try to test a system with all possible bitrate/samplerate/codec/protection level combination. It's like robustness test. The most combinations works, but this one was unsuccesfull. (I'm using the software DAB.Scout3 as reference system. It has problems too. The service has no audio.)

mpbraendli commented 5 years ago

Hi, we had a discussion about this on the mailing list not so long ago, but I didn't investigate it further as it is not a scenario that is common or encouraged.

But I understand it makes sense for your application. I would invite you to analyse your ETI with etisnoop and dablin, try to decode the services with those tools. Let me know.

It would be neat to get it working but it's not a priority for me, and I hope you'll understand I won't investigate myself. But I'd be glad to support you in the investigations.

andimik commented 5 years ago

Unfortunately I don't know a Swedish user who could make an eti file for your purpose.

KuntzeM commented 5 years ago

Hi, sorry for my late answer. I was on a business trip and after them sick.

With DABlin I got the follow output. The eti is playable, but no audio is hearable.

DABlin v1.8.0 - capital DAB experience
Plays a DAB/DAB+ audio service from a frame-aligned ETI-NI stream.
  https://github.com/Opendigitalradio/dablin

SDLOutput: using SDL version '2.0.8'
ETISource: reading from 'DABc_48kHz_048kbit_MonoFull_EEP1A_SONG_V01.eti'
FICDecoder: SubChId  1: start   0 CUs, size  72 CUs, PL EEP 1-A =  48 kBit/s
FICDecoder: SId 0xD001: audio service (SubChId  1, DAB+, primary)
FICDecoder: SId 0xD001, SCIdS  0: MSC service component (SubChId  1)
FICDecoder: EId 0x0001: ensemble label 'CodecEnsemble'
FICDecoder: SId 0xD001: programme service label 'CodecService'`

With etisnoob I got the the follow output: eti_analyse.txt The analysis is finished with an error:

Incomplete frame in ETI file!
ETI file read error

I know that this problem does not have the highest priority. If you find time, it would be nice if you look at this problem again.

Thank you very much for your efforts!

EDIT: I see the audio service is set to DAB+ in the FIC. But the mux configuration and audioenc parameter are set to "DAB classic" (musicam).

FICDecoder: SId 0xD001: audio service (SubChId 1, DAB+, primary)

mpbraendli commented 5 years ago

Interesting observation, indeed FIG 0/2 seems to set ASCTy to the value for DAB+.

The erroneous code seems to be here: https://github.com/Opendigitalradio/ODR-DabMux/blob/next/src/DabMultiplexer.cpp#L281 It implicitly associates EEP to DAB+ and UEP to DAB.

To fix this:

And while we're at it:

I won't have time to look into this soon, so if you or anybody else would like to do these changes, please go for it! (and let me know)

mpbraendli commented 5 years ago

Can you try with the next branch to see if it works for you?

I'll go check if there's a cast somewhere and will remove FIDC now.

KuntzeM commented 5 years ago

Hi, I checked the fix with the next branch, too. It works. Thank you!