I've done a little more digging and I'm not sure this is a bug in pulseaudio, or a bug in alsa-lib. After poking around pulseaudio with gdb for a while, I narrowed down the line where the extra file handles appear to line 450 in src/modules/alsa/alsa-util.c in the source retrieved via apt-get source pulseaudio. The line is a call to alsa-lib:
if ((err = snd_pcm_sw_params(pcm, swparams)) < 0) {
I compared some variables around there between using the 5.1 profile and the stereo profile and things seemed to match up, so while I'm not positive as I don't know pulseaudio (or alsa) very well, I think the only difference in what pulseaudio is passing to this function is the pcm device itself, so maybe alsa-lib is to blame?
That's all the time I have to spend on this for now, maybe later this week I'll compile alsa-lib with debugging so I can peak at that as well.
I've done a little more digging and I'm not sure this is a bug in pulseaudio, or a bug in alsa-lib. After poking around pulseaudio with gdb for a while, I narrowed down the line where the extra file handles appear to line 450 in src/modules/ alsa/alsa- util.c in the source retrieved via apt-get source pulseaudio. The line is a call to alsa-lib:
if ((err = snd_pcm_ sw_params( pcm, swparams)) < 0) {
I compared some variables around there between using the 5.1 profile and the stereo profile and things seemed to match up, so while I'm not positive as I don't know pulseaudio (or alsa) very well, I think the only difference in what pulseaudio is passing to this function is the pcm device itself, so maybe alsa-lib is to blame?
That's all the time I have to spend on this for now, maybe later this week I'll compile alsa-lib with debugging so I can peak at that as well.