KejPi / AbracaDABra

Abraca DAB radio: DAB/DAB+ Software Defined Radio (SDR)
MIT License
68 stars 8 forks source link

wrong codec detection - therefore no audio #24

Closed andimik closed 2 years ago

andimik commented 2 years ago

I have realized that the audio codec is very often not detected correctly and therefore I don't get a sound, no DLS and no SLS slideshow.

grafik

This should be HE-AAC, not AAC-LC, same here:

grafik

grafik

The console says for instance

=== MCI complete
AAC-LC 32 kHz mono
Output SR = 32000, channels = 2

I wonder the line

Muting... [available 2880 samples]

because then there is no following

Unmuting audio

for such silent audio services.

I need to try several other services before I get a sound. Switching back to the previous service may result (= not always) in correct codec detection and I may get audio.

This following screenshot was taken after 10 attempts ...

grafik

And I tried both, RTLTCP and RTLSDR. And it seems, rawfiles are not affected.

Hint: I don't think this is the issue #17

andimik commented 2 years ago

1.1.5

Strange new bug (in 1.1.5 only) detected:

I can hardly listen to any DAB+ station (AAC) when its bitrate is exactly 80 kBit (lots, lots, lots of attempts to get a sound). I have tried many files from Germany (Bayern), Norway (nearly all public ones from NRK have 80 kBit), Czech Republic (including yours, for example EVROPA 2, FREKVENCE 1) and live reception from Austria (Technikum ONE) and Slovenia (Rock Radio)

For all those 80 kBit stations I nearly always (99% of all attempts) get

21:45:11.518578 [I] : RS detected uncorrectable errors

The rest works.

Hint: 80 kBit mp2 works for my very old RAW-recordings (Irish RTE from 2017, RAI Südtirol from 2016), on the other hand.

1.1.2

80 kBit bug not existing

KejPi commented 2 years ago

I do not have 80kbps issue on my Linux machine (tried with 7A raw file shared before) and I am running out of ideas. The same code works under Windows, Mac and my Linux machine but not on your HW running the same Ubuntu 22.04. It is very difficult to find problem that I cannot reproduce whatever I try to do :-(

andimik commented 2 years ago

But you have changed something in 1.1.5 (= it worked in 1.1.2) which prevents me listening to 80 kBit stations. All other bitrates are working.

KejPi commented 2 years ago

The last result is even more confusing than everything before :-(

I have no explanation for the 80kbps services problem, there is not difference from library point of vie between 80kbps and 64kbps.

Some additional questions: Do all non-working services have the same parameters? I mean these parameters (EVROPA 2 and FREKVENCE 1 from 7A raw file: NumCU: 80, EEP 2-A, Coderate: 3/8, Bitrate: 80kbps). For example Schwarzwaldradio in the raw file below is also 80kbps but with different protection NumCU: 60, EEP 3-A, Coderate: 1/2, Bitrate: 80kbps Does it work or not? 2022-07-19_083557_7C.raw

And what about other services from this raw file - are all working?

andimik commented 2 years ago

It's not related to the protection level. Tested 2A and 3A. Only services with 80 kBit AAC are affected. All others work (incl. 80 kBit mp2).

Let me generate some more test files with nearly all Bitrates and PLs. I did it in the past, but used 64 kBit each...

andimik commented 2 years ago

I will test your file in the evening.

KejPi commented 2 years ago

I have meanwhile identified two potential OS dependent issues (not related to 80kbps specifically) - I will fix them in the evening and provide the library update. Please wait with your tests for this new library. Maybe it will fix the problem or it will create new problem again :-(

KejPi commented 2 years ago

Please try with this library: linux_x86_64_1.1.6.tar.gz

andimik commented 2 years ago

Wow, amazing! Thank you for the effort!

This 1.1.6 solves everything, also the 80 kBit bug.

I now have audio for all stations (including 80 kBit), tried around 25 muxes, live and raw files.

Let's close the issue.

BTW:

For example Schwarzwaldradio in the raw file below is also 80kbps but with different protection NumCU: 60, EEP 3-A, Coderate: 1/2, Bitrate: 80kbps Does it work or not?

1.1.5 did not work with Schwarzwaldradio (with your Czech mux file, not the German Bundesmux, which is in 72 kBit) as I told you that none of the 80 kBit services had audio.

KejPi commented 2 years ago

Thank YOU for all your tests, but I would not close it yet. The latest 1.1.6 is not the final version, I still need more of your tests.

andimik commented 2 years ago

BTW: If you are interested, this is an eti file with four 80 kBit services in PLs 1A, 2A, 3A, and 4A. test_protlev_80kbit.zip

odr-dabmod ./test_protlev_80kbit.eti -f ./test_protlev_80kbit.raw -F u8 -a 0.2
KejPi commented 2 years ago

Please try again with this version that has all optimizations enabled. This should be the final version from functionality point of view, I still need to clean up the code linux_x86_64_1.1.7.tar.gz

KejPi commented 2 years ago

For sure I am interested, I am collecting all test files ;-)

andimik commented 2 years ago

1.1.7 works with all services.

andimik commented 2 years ago

This is an eti with all 8 possible DAB+ protection levels I have recorded some time ago by myself ... test_protlev.zip

odr-dabmod ./test_protlev.eti -f ./test_protlev.raw -F u8 -a 0.8
KejPi commented 2 years ago

Please check and if everything works we can finally close this issue. Thanks for reporting and testing!

andimik commented 2 years ago

I'll check next week and let you know.

andimik commented 2 years ago

I've audio on all channels. Tested all terrestrial ensembles and some files which made problems before.

grafik

So let's close it.

KejPi commented 2 years ago

Perfect, thank you for your help! Closing this issue.