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@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;