Thread (29 messages) 29 messages, 5 authors, 2014-05-23

Re: [alsa-devel] [PATCH 00/19] Rework OMAP4+ HDMI audio support

From: Joachim Eastwood <hidden>
Date: 2014-05-14 16:25:47
Also in: alsa-devel, linux-fbdev, linux-omap

On 14 May 2014 12:02, Jyri Sarha [off-list ref] wrote:
On 05/13/2014 12:13 AM, Joachim Eastwood wrote:
quoted
On 12 May 2014 11:12, Jyri Sarha [off-list ref] wrote:
...
quoted
hey, this worked straight away :)

But there seems to be something wrong with the channel mapping.

For stereo (speaker-test -c 2) the mapping is correct.

But for -c 4 and -c 8 it gets weird:
speaker-test -c 4 -s X # where X is 1-4
1: Front Left is Rear Left
2: Front Right is Rear Right
3: Rear Right is Front Right
4: Rear Left is Front Left

speaker-test -c 8 -s X # where X is 1-8
1: Front Left is Rear Left
2: Center is Rear Left
3: Front Right is Rear Right
4: Side Right is Front Right
5: Rear Right is silent
6: Rear Left is Center
7: Side Left is Front Left
8: LFE - Rear Right

I think you need to check what channel order ALSA expects. I believe
speaker-test does the right thing on my HTPC normally connected to my
receiver.
I checked the implementation and there was indeed something weird there, but
the implementation can not explain the FL and FR channels jumping around. FL
and FL should always be the first two channels in all configurations and the
implementation does not touch them.

The implementation uses 8ch HDMI setup for anything above 2ch with "Audio
InfoFrame Data Byte 4" set to 0x13. According to CEA-861 specs this means
following channel order: FL, FR, LFE, FC, RL, RR, RLC, RRC

This is a closest match to ALSA 8ch mapping (according to
sound/core/pcm_lib.c) which is: FL, FR, FC, LFE, RL, RR, SL, SR
hm, okey. I haven't look at the code but it do seem strange. But with
speaker-test -c 4 the front and back are surely swapped here.

I'll do some more testing and also check with my HTPC. btw, I only
have a 5.1 setup over here so I can't test all the discrete channels.
Current implementation has FLE and FC channels correctly swapped, but it
shifts them to last two channels and RL, RR, SL, SR are shifted down to fill
the place. This is all wrong and I'll try to come up with a fix for that.
Unfortunately I can not test anything beyond 2 ch myself so I would need
someone to volunteer to test my patch.
I have the dev kit setup up over here so I can test your patches.

regards
Joachim Eastwood
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help