Play a 24-bit HiRes Audio on VIM4


We are using the latest Android image from OOWOW on VIM4 platform.

We have connected stereo speakers on i2s of VIM4 and trying to play 48000 Khz,2 channel, 24bit wav file.

However, the audio gets converted to 16-bit in Android audio HAL (/hardware/amlogic/audio) and gets played to speakers as 16-bit only.
When I tried to play it using tinyasa utility, it didn’t produce any audio output on the speakers.

How can I get a 24-bit audio output to the speakers?


What judgment did you use to draw such a conclusion? If playing with HDMI, will there be such a phenomenon?

What specific command did you use?

I found this by adding the logs in audio HAL, Audio HAL streams were configured at 16 bit. I also reverified from dumpsys output of audio policy.
We don’t have a use case for HDMI speaker output. But purely based on analysis of output of dumpsys command. I feel it will be the same case for HDMI as well.

$ tinyplay test_tone_24bit.wav -D 0 -d 1

@Krupal Sorry for the late reply. We submitted this issue to amlogic. Received the following response:
View the wav header of the audio source, which is in PCM_FORMAT_S24_3LE format. We currently do not support this format, so tinyplay cannot be played; Audio HAL currently only supports 16bit, so audioliner will crop the audio source to 16bit and give it to Audio HAL; There are currently no plans to support this format;