[alsa-devel] [PATCH 0/4] Intel HDMI audio fixes

Takashi Iwai tiwai at suse.de
Thu Feb 12 08:54:29 CET 2009


At Thu, 12 Feb 2009 09:25:04 +0800,
Wu Fengguang wrote:
> 
> On Thu, Feb 12, 2009 at 12:42:00AM +0200, Takashi Iwai wrote:
> > At Wed, 11 Feb 2009 14:32:41 -0800,
> > Shane W wrote:
> > > 
> > > On Wed, Feb 11, 2009 at 03:22:27PM +0800, Wu Fengguang wrote:
> > > > Shane: the first two patches should address the two bugs you reported, i.e.
> > > > - multi-channel HDMI audio playback problem
> > > > - first half-second audio samples missing
> > > > These two bugs was reproduced and fixed in the combination of
> > > > G35 SDVO HDMI + Yamaha RX-V1800 AV receiver. The first problem cannot be
> > > > verified in G45 system because we still cannot make G45 work with
> > > > Yamaha. The second problem is interesting in that it can be fixed by the
> > > > second patch in G35, but still remains in G45.
> > > 
> > > Hi,
> > > 
> > > Ok mixed results here.  I'm using this for my test signal:
> > > http://www.csy.ca/~shane/51test.wav
> > > 
> > > when using:
> > > aplay -D hw:0,3 51test.wav
> > > 
> > > Front and rear left and right are correct but centre is
> > > missing.  The order in the wav is:
> > > front left
> > > centre
> > > front right
> > > rear left
> > > rear right
> > > sub buz
> > 
> > The order assumed here doesn't match with ALSA mapping.
> > In ALSA,
> >   front left
> >   front right
> >   rear left
> >   rear right
> >   center
> >   LFE
> >   
> > Better to test with speaker-test program whether the mapping is
> > correct.
> 
> Hi Takashi,
> 
> Yes I've not yet taken care of the channel orders, so disorders are expected.
> 
> Before beginning our discussion, I'd like to first submit a patch for
> speaker-test. I guess the ordering in it defines the ALSA order.

The change looks good but the patch is rejected.
Could you create a patch based on the latest version?


thanks,

Takashi

> 
> Thanks,
> Fengguang
> ---
> speaker-test.c - add readability comments to speaker channels
> 
> Signed-off-by: Wu Fengguang <fengguang.wu at intel.com>
> ---
> 
> diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c
> index 57a7cbc..bf97d33 100644
> --- a/speaker-test/speaker-test.c
> +++ b/speaker-test/speaker-test.c
> @@ -84,48 +84,48 @@ static const char *given_test_wav_file = NULL;
>  static char *wav_file_dir = SOUNDSDIR;
>  
>  static const char        *channel_name[MAX_CHANNELS] = {
> -  N_("Front Left"),
> -  N_("Front Right"),
> -  N_("Rear Left"),
> -  N_("Rear Right"),
> -  N_("Center"),
> -  N_("LFE"),
> -  N_("Side Left"),
> -  N_("Side Right"),
> -  N_("Channel 9"),
> -  N_("Channel 10"),
> -  N_("Channel 11"),
> -  N_("Channel 12"),
> -  N_("Channel 13"),
> -  N_("Channel 14"),
> -  N_("Channel 15"),
> -  N_("Channel 16")
> +  /*  0 */ N_("Front Left"),
> +  /*  1 */ N_("Front Right"),
> +  /*  2 */ N_("Rear Left"),
> +  /*  3 */ N_("Rear Right"),
> +  /*  4 */ N_("Center"),
> +  /*  5 */ N_("LFE"),
> +  /*  6 */ N_("Side Left"),
> +  /*  7 */ N_("Side Right"),
> +  /*  8 */ N_("Channel 9"),
> +  /*  9 */ N_("Channel 10"),
> +  /* 10 */ N_("Channel 11"),
> +  /* 11 */ N_("Channel 12"),
> +  /* 12 */ N_("Channel 13"),
> +  /* 13 */ N_("Channel 14"),
> +  /* 14 */ N_("Channel 15"),
> +  /* 15 */ N_("Channel 16")
>  };
>  
>  static const int	channels4[] = {
> -  0,
> -  1,
> -  3,
> -  2
> +  0, /* Front Left  */
> +  1, /* Front Right */
> +  3, /* Rear Right  */
> +  2, /* Rear Left   */
>  };
>  static const int	channels6[] = {
> -  0,
> -  4,
> -  1,
> -  3,
> -  2,
> -  5
> -}; 
> +  0, /* Front Left  */
> +  4, /* Center      */
> +  1, /* Front Right */
> +  3, /* Rear Right  */
> +  2, /* Rear Left   */
> +  5, /* LFE         */
> +};
>  static const int	channels8[] = {
> -  0,
> -  4,
> -  1,
> -  7,
> -  3,
> -  2,
> -  6,
> -  5
> -}; 
> +  0, /* Front Left  */
> +  4, /* Center      */
> +  1, /* Front Right */
> +  7, /* Side Right  */
> +  3, /* Rear Right  */
> +  2, /* Rear Left   */
> +  6, /* Side Left   */
> +  5, /* LFE         */
> +};
>  
>  static void generate_sine(uint8_t *frames, int channel, int count, double *_phase) {
>    double phase = *_phase;
> 


More information about the Alsa-devel mailing list