[RPi4][LE9.95.3] 7.1 input audio is sent out as 6.1

  • Content using a 7.1 configuration for the audio, with any of AAC LC, FLAC, or Vorbis codecs, play as 6.1 with the Lw and Rw channels being sent out as Cw. However, content using the 7.1 configuration with DTS XLL (DTS-HD) or MLP FBA 16-ch (TrueHD) put out all the 8 channels. I have tried with at least 20 AAC LC videos but have only one DTS-HD and one TrueHD.

    All the AAC and FLAC encoded video files show the 8 channels on the "Player Process Info" dialog. These play with all the 8 channels on the current non-beta releases. Is there something I need to do to get full 8 channels out of AAC LC, FLAC, or Vorbis content?

    Extras:

    * Could the UNKNOWN1 be causing a problem?

    * I have a 9.1 setup but ALSA sees the Marantz receiver as having 8.1 channels. Moreover, I just have one center channel which is FC; everything else is either left or right. Is this channel mapping something I can modify or influence?

    Playing AAC LC 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)

    Playing DTS-HD content:

    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 for LE9.95.3 is here.

    With LE9.2.6 which plays the audio correctly:

    Playing AAC LC content:

    Playing DTS-HD content, plays as 5.1:

    The full log for LE9.2.6 can be found here.

    Edited 5 times, last by AMoo-Miki (May 30, 2021 at 4:35 AM).

  • Da Flex, 2.0 with FL and FR is output correctly.

    I also tried disabling passthrough which was enabled earlier and the problem remains.

    Comparing the logs from LE9.2.6 and LE9.95.3, i noticed that LE9.2.6 finds the AE_FMT_FLOATP but LE9.95.3 cannot find AE_FMT_FLOAT.

    However, I have a feeling that the issue is not LE really and is in fact an issue with ALSA on RPi. I hope LE honors asound configs.

  • I am not sure if I understood what you were asking but here is what I did:

    I changed the audio output settings to 2.0 and played an 8-channel test wave file. The output correctly identified front, back, and surround lefts and rights which it played all from front left and right; it skipped LFE which I guess is expected.

    I apologize if that is not what you meant and am very thankful that you are helping.

    I Switched back to 7.1 in audio settings of Kodi and tested the same file. While the channel layouts were like the AAC LC log where there was BC and UNKNOWN1, the input on SL was sent to BL and the input on SR was sent to RL; none of the surround speakers made any sound.

    I did a speaker-test -c8 and the channel mixup exists there too.

    Edited once, last by AMoo-Miki (May 31, 2021 at 8:24 PM).

  • of course. thanks. I am convinced that this is an ALSA problem. I will try the 9.95.4 and will also spin a desktop Buster to see if the problem remains. Thanks for the bug report link :)

    PS, in agreement with what you mentioned, even though I have pass-through configured, only TrueHD and DTS HD are being passed as RAW and played correctly through all 8 channels. All others go through PCM and the bad channel mapping occurs.