[alsa-devel] Wrong channel order with multichannel HDMI on NVIDIA MCP7A
anssi.hannula at iki.fi
Tue Aug 3 22:57:23 CEST 2010
Kirjoitit tiistai, 3. elokuuta 2010 23:40:13:
> On Tue, Aug 3, 2010 at 1:32 PM, Anssi Hannula <anssi.hannula at iki.fi> wrote:
> > pl bossart kirjoitti tiistai, 3. elokuuta 2010 23:15:28:
> >> > Well, this is one of my looong-standing TODOs.
> >> > Originally I wanted to implement a new API to get/set the
> >> > channel-mapping, mainly for HDMI.
> >> > But, I've been recently too busy for other tasks (I can spend little
> >> > time for ALSA), thus it's pending forever.
> >> You would only need an API to get the channel mapping. The HDMI sink
> >> will report its speaker configuration through a CEA code (section 7.4
> >> of the spec), and if we parsed the EDID info we could present the
> >> relevant channel order to user-space apps.
> > I'm not sure I see how that will help with the problem of this thread,
> > though, i.e. NVIDIA MCP7A hdmi codec apparently assuming audio being fed
> > in windows channel order instead of alsa channel order.
> You can in theory specify the channel order in the InfoFrame (CA
> field). If you had access to a register to program this, you would no
> longer be tied to alsa or windows or whatever order. You would just
> provide ALSA with the channels in the order you configured with the CA
The CA field is programmable, but the channel orders are predefined and no
arbitrary channel formats are possible (see patch_hdmi.c or the related CEA
The nvhdmi MCP7x codec driver tries to specify a channel order by using the
channel_id field in AC_VERB_SET_CHANNEL_STREAMID for the 4 slave digital
converters, but it doesn't seem to have any effect (at least on hardware I
have; confirmed by swapping the channel_ids around with no effect).
More information about the Alsa-devel