On Wed, 2012-09-05 at 08:17 +0200, Takashi Iwai wrote:
Well, this raises a question "What is mono". If this is supposed to be a channel position, then we should add the definition. But is it really so? If it's a mono stream mixed from front left and front right, isn't it a front center?
If it's a playback stream and alsa knows that it will be routed to a center speaker on a surround system, then yes, it should be front center. But if the audio ends up in a lone speaker, mixing left and right doesn't really result in a center position.
I think mono means pretty much "single channel without defined position", for which SND_CHMAP_UNKNOWN could be a useful choice, except that I think PulseAudio will end up ignoring channels with SND_CHMAP_UNKNOWN, because there's no sane definition for how channel remapping should be done for such channels. But maybe the single channel case could be treated as an exception - a single channel with SND_CHMAP_UNKNOWN could be treated as a mono device, for which downmixing (or upmixing in case of capture) is well defined.