Takashi Iwai schrieb:
So my suggestion so far when we have been discussing this inside the GStreamer community is to use 'front' as default device instead of 'default'.
A drawback of "front" is that it doesn't include the software mixing feature. (Dito for "surround*" and "spdif") So far, only "default" PCM has a dmix as it is. If gstream is the only sound system, it'd be fine, though.
That way we will always play(downmix) all channels and nobody 'lose' sound. We can then provide configuration GUI's like Totem do to override this when people have surround capable systems (meaning both capable card and connected speakers). Do this sound like a reasonable approach t you?
It sounds reasonable to me.
Or, you can simply assume number of channels for each preset, i.e. 2ch = default, 4ch = plug:surround40, 5.1ch = plug:surround51, without querying alsa-lib.
Takashi
I'd prefer the "default" device being the default device - that's why it's called like this :-) As the default device is usually a stereo device, only stereo sound should be played there. Surround sound should be played on surround51, surround40, surround71... depending on how many channels the stream has. What these devices do with the sound they receive is not the problem of the application, IMO.
After that, ALSA or the distribution or the system admin should make sure, that the surroundX devices handle the sound apropriately. I'm sure it is possible to alter the predefined surroundX devices in a way so they upmix/downmix to the amount of channels the concerned sound card actually has. If one is more experienced, he can still overwrite the definitions of these predefined devices according to his suites.
These are just my two cents...
Regards, Ingo