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

Wu Fengguang fengguang.wu at intel.com
Thu Feb 12 02:25:04 CET 2009


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.

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