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")?