Playing 7.1 audio and video content encoded with AAC LC, FLAC, or Vorbis, output only 7 channels (6.1) and two are out of wrong channels. When playing 8-channel content:
Code
CAESinkALSA::Initialize - Opened device "hdmi:CARD=vc4hdmi0,DEV=0,AES0=0x04,AES1=0x82,AES2=0x00,AES3=0x02"
CAESinkALSA::InitializeHW - Your hardware does not support AE_FMT_FLOAT, trying other formats
CAESinkALSA::InitializeHW - Using data format AE_FMT_S24NE3
CAESinkALSA::GetChannelLayout - Input Channel Count: 8 Output Channel Count: 8
CAESinkALSA::GetChannelLayout - Requested Layout: FL, FR, FC, LFE, BL, BR, SL, SR
CAESinkALSA::GetChannelLayout - Got Layout: FL, FR, LFE, FC, BL, BR, BC, UNKNOWN1 (ALSA: FL FR LFE FC RL RR RC NA)
I have a 9.1 setup: FL, FC, FR, LFE, BL, BR, SL, SR, TRL, and TRR. However, that is not how ALSA sees thing:
Code
Enumerated ALSA devices:
Device 1
m_deviceName : default
m_displayName : Default Audio Device ()
m_displayNameExtra:
m_deviceType : AE_DEVTYPE_PCM
m_channels : FL, FR, LFE, UNKNOWN1, FC, BC, BL, BR, BLOC, BROC, FLOC, FROC
m_sampleRates : 32000,44100,48000,88200,96000,176400,192000
m_dataFormats : AE_FMT_S24NE3,AE_FMT_S24NE4,AE_FMT_S32NE,AE_FMT_S16NE,AE_FMT_S16LE,AE_FMT_S16BE
m_streamTypes : No passthrough capabilities
Device 2
m_deviceName : sysdefault
m_displayName : vc4-hdmi-0 ()
m_displayNameExtra: MAI PCM vc4-hdmi-hifi-0
m_deviceType : AE_DEVTYPE_PCM
m_channels : FL, FR, LFE, UNKNOWN1, FC, BC, BL, BR, BLOC, BROC, FLOC, FROC
m_sampleRates : 32000,44100,48000,88200,96000,176400,192000
m_dataFormats : AE_FMT_S24NE3,AE_FMT_S24NE4,AE_FMT_S32NE,AE_FMT_S16NE,AE_FMT_S16LE,AE_FMT_S16BE
m_streamTypes : No passthrough capabilities
Device 3
m_deviceName : sysdefault:CARD=vc4hdmi0
m_displayName : vc4-hdmi-0 (vc4hdmi0)
m_displayNameExtra: MAI PCM vc4-hdmi-hifi-0
m_deviceType : AE_DEVTYPE_PCM
m_channels : FL, FR, LFE, UNKNOWN1, FC, BC, BL, BR, BLOC, BROC, FLOC, FROC
m_sampleRates : 32000,44100,48000,88200,96000,176400,192000
m_dataFormats : AE_FMT_S24NE3,AE_FMT_S24NE4,AE_FMT_S32NE,AE_FMT_S16NE,AE_FMT_S16LE,AE_FMT_S16BE
m_streamTypes : No passthrough capabilities
Device 4
m_deviceName : hdmi:CARD=vc4hdmi0,DEV=0
m_displayName : vc4-hdmi-0 (vc4hdmi0)
m_displayNameExtra: MJI marantz-AVR on HDMI
m_deviceType : AE_DEVTYPE_HDMI
m_channels : FL, FR, LFE, FC, BL, BR, BC, BLOC, BROC
m_sampleRates : 32000,44100,48000,88200,96000,176400,192000
m_dataFormats : AE_FMT_RAW,AE_FMT_S24NE3,AE_FMT_S24NE4,AE_FMT_S32NE,AE_FMT_S16NE,AE_FMT_S16LE,AE_FMT_S16BE,AE_FMT_U8,AE_FMT_RAW
m_streamTypes : STREAM_TYPE_AC3,STREAM_TYPE_DTSHD,STREAM_TYPE_DTSHD_MA,STREAM_TYPE_DTSHD_CORE,STREAM_TYPE_DTS_1024,STREAM_TYPE_DTS_2048,STREAM_TYPE_DTS_512,STREAM_TYPE_EAC3,STREAM_TYPE_TRUEHD
Display More
Content with TrueHD or DTS HD with 8 channels are passed through as RAW and the streams are mapped correctly.
Code
CAESinkALSA::Initialize - Opened device "hdmi:CARD=vc4hdmi0,DEV=0,AES0=0x06,AES1=0x82,AES2=0x00,AES3=0x09"
CAESinkALSA::GetChannelLayout - Input Channel Count: 8 Output Channel Count: 8
CAESinkALSA::GetChannelLayout - Requested Layout: RAW, RAW, RAW, RAW, RAW, RAW, RAW, RAW
CAESinkALSA::GetChannelLayout - Got Layout: RAW, RAW, RAW, RAW, RAW, RAW, RAW, RAW (ALSA: none)
The full log is available here.
I did a speaker-test which just like LE, sent out one stream to a non-existent RC channel and one channel misfired which I presume is the UNKNOWN1 one.
To make sure this was not purely a problem with ALSA, I installed RaspiOS and checked HDMI playback with ALSA; the audio was put out from the correct speakers.