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@xxxxxxxxx> --- 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; _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel