[alsa-devel] ALSA patch Nvidia 8 channel hdmi audio

Wu Fengguang fengguang.wu at intel.com
Fri Jun 5 08:14:07 CEST 2009


On Fri, Jun 05, 2009 at 01:40:58PM +0800, Takashi Iwai wrote:
> At Fri, 5 Jun 2009 12:28:29 +0800,
> Wu Fengguang wrote:
> > 
> > On Thu, Jun 04, 2009 at 08:29:25AM +0200, Takashi Iwai wrote:
> > > At Thu, 4 Jun 2009 14:05:52 +0800,
> > > Wei Ni wrote:
> > > > 
> > > > Yes, my test wav file is from Windows.
> > > > 
> > > > I had used different player to test with my test wav file.
> > > > The mplayer has no mapping problem, but other players map channels
> > > > wrong.
> > > > As you said, it seems that is caused by the difference of the ALSA and
> > > > Windows.
> > > 
> > > I guess mplayer corrects the channel mapping automatically.
> > > 
> > > > Unfortunately, our nvidia codec doesn't support channel-slot assignment
> > > > yet.
> > > 
> > > OK.
> > > 
> > > > How could we fix this problems, do you have any suggestions?
> > > 
> > > It's a bit difficult issue right now.  Usually we could "fix" the
> > > channel mapping in alsa-lib configuration.  But, HD-audio has currently
> > > a single alsa-lib configuration, and others may use the right channel
> > > mapping.
> > > 
> > > I don't remember how is the case of Intel HDMI...  Can anyone check?
> > 
> > The codecs I tested - G35/G45/GM45 - does not support the channel-slot
> > assignment. I guess future hardwares may support that.
> 
> OK, and the channel assignment is also FL/FR/C/LFE/RL/RR, right?

It's FL/FR/LFE/FC/RL/RR for 5.1, but it can be more complicated. HDMI supports
a number of speaker configurations - which will be reported via ELD by HDMI
sinks.  And we have a big mapping table name channel_allocations in
patch_intelhdmi.c.

The 6 channel configurations listed in the table are:

                                 /* 5.1 */
{ .ca_index = 0x0b,  .speakers = {   0,    0,  RR,  RL,  FC,  LFE,  FR,  FL } },
{ .ca_index = 0x0c,  .speakers = {   0,   RC,  RR,  RL,   0,    0,  FR,  FL } },
{ .ca_index = 0x0d,  .speakers = {   0,   RC,  RR,  RL,   0,  LFE,  FR,  FL } },
{ .ca_index = 0x0e,  .speakers = {   0,   RC,  RR,  RL,  FC,    0,  FR,  FL } },


Thanks,
Fengguang


More information about the Alsa-devel mailing list