[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