At Thu, 29 Mar 2007 13:55:27 +0200, Christian F.K. Schaller wrote:
Hi Takashi, Thanks for trying to help us with trying to resolve http://bugzilla.gnome.org/show_bug.cgi?id=410403.
I tested a bit with a 6-channel .wav file and aplay. It seems it shows the same issues that we are seeing in GStreamer. Namely that if I try:
aplay -D front dust51.wav Playing WAVE 'dust51.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Channels 6 aplay: set_params:905: Channels count non available
It correctly tells me that it doesn't support outputting this many channels. This is fine for GStreamer as it allows our negotiation to plug in a downmixing element.
However if I do: aplay -D default dust51.wav Playing WAVE 'dust51.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Channels 6
It plays out the 'front' channels, but the remainders just get lost. So when outputting to default neither do alsa downmix by itself or fail telling you that you don't have the needed 6 channels available.
This is expected behavior. The "default" PCM is built with plug player which absorbs the channel / format / rate differences. The channels more than two will be disregarded usually. You can set up downmixing with plugin, but it isn't so as default.
Trying to figure what it supports make no sense -- because the plug layer (more or less) supports everything. The same is true for plug:XXX PCM definition.
Since Jan brought up the issue of behaviour differences between plug:surround51 ad surround51 I thought I give you the output of that too.
aplay -D surround51:0 dust51.wav Playing WAVE 'dust51.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Channels 6 aplay: set_params:878: Broken configuration for this PCM: no configurations available
aplay -D plug:surround51:0 dust51.wav Playing WAVE 'dust51.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Channels 6 ALSA lib pcm_params.c:2152:(snd_pcm_hw_refine_slave) Slave PCM not usable aplay: set_params:878: Broken configuration for this PCM: no configurations available
Which hardware do you have and which alsa-lib version are you using? surround51 should work in this case...
Takashi