[alsa-devel] 5.1 to stereo using libasound

Tanu Kaskinen tanuk at iki.fi
Sun Sep 8 09:48:54 CEST 2019


On Sat, 2019-09-07 at 10:07 -0400, Eric Desjardins wrote:
> Hi,
> 
> I am playing a mkv with 5.1 channels from a mkv. I configure libasound for
> 6 channels and I feed them interleave audio using snd_pcm_writei. I use the
> default pulse audio device.
> 
> So far, nothing is wrong. However, I do not ear things correctly. I listen
> this on my stereo speaker. There is no mixdown to stereo and I was
> wondering how to do that. I tried to use chmap api but anything I try on
> the default device returns an error.
> 
> I was wondering what was the correct way to do that?
> Using the mixing api?
> How do we detect that my device output stereo if chmap doesn't work?
> 
> I am on a ubuntu 18.04 linux box.

The pulse plugin takes your audio and sends it to PulseAudio without
any modification. The ALSA API doesn't allow the application to tell
the channel map of the stream, so if you send 6 channels, the pulse
plugin assumes that you are using the default 5.1 channel map (front-
left,front-right,rear-left,rear-right,front-center,lfe).

The PulseAudio daemon then downmixes the audio to stereo in some way
(the details depend on PulseAudio configuration). You can't detect from
your ALSA application whether the device that PulseAudio is using is a
stereo device or something else.

Since it's apparently not working as you expect, does your application
use the default 5.1 channel map that I mentioned above? Is PulseAudio
configured to do remixing ("pulseaudio --dump-conf" should show
"enable-remixing = yes")?

-- 
Tanu

https://www.patreon.com/tanuk
https://liberapay.com/tanuk



More information about the Alsa-devel mailing list