Identifying MPEG-4 HE-AAC (LATM, LAOS) audio formats

Marko Mäkelä <[email protected]> Fri, 6 Dec 2024 22:32:06 +0200
Newsgroups gmane.linux.vdr
Message-ID <Z1NfRupTvjFeTlbi@jyty>
A couple of weeks ago, Finland took the penultimate step to get rid of 
DVB-T. Since years, we had DVB-T and DVB-T2 running in parallel. The 
DVB-T transponders should be shut down in 2025.

The step was to introduce a second free-to-air DVB-T2 bouquet to carry 
some channels that were previously only available with DVB-T and MPEG-2.  
The VDR channel search failed to find this transponder; I ran a patched 
version of https://github.com/mighty-p/t2scan/pull/15/ to generate a new 
channels.conf. (Is this a bug of VDR, or a feature? I remember that when 
I originally set up VDR, I had to get a channels.conf from tscan or 
t2scan.)

Unlike our first free-to-air DVB-T2 bouquet, which uses MPEG-4 H.264 
video with AC3 audio, the second one uses H.264 video and HE-AAC audio, 
also known as LATM or LOAS. This had to be explicitly enabled for my 
output device: https://github.com/reufer/rpihddevice/issues/20

The HE-AAC support in rpihddevice is experimental, maybe because the 
sampling rate is hard-coded as 48 kHz and the number of channels as 2.  
Unlike AC3, it does not look like these parameters would be available in 
any audio frame header. As far I understood from a NorDig.org 
specification, the sampling rate would always be 48 kHz, but the number 
of channels could be identified by something in the container, 
specifically, Table 12.28 and Table 12.29 at page 164 of
https://nordig.org/wp-content/uploads/2016/03/NorDig-Unified-Requirements-ver.-3.2.1.pdf

What would have to be changed in VDR or rpihddevice or both to correctly 
switch between 2-channel and 5.1-channel HE-AAC audio? This is mostly an 
academic question and exercise, because I only have stereo audio 
hardware and don't know if any programming is actually available with 
multichannel audio.

Best regards,

	Marko