[alsa-devel] Issues and/or possible bugs in alsa

Jaroslav Kysela perex at perex.cz
Wed Feb 25 09:30:23 CET 2015


Dne 25.2.2015 v 09:14 Alexander E. Patrakov napsal(a):
> 25.02.2015 03:46, Yomi Ogunwumi wrote:
>> Third. This is just a question. Is this :
>> https://bugs.freedesktop.org/show_bug.cgi?id=86676 actually a pulseaudio
>> bug, or is it an issue with alsa?
>> I'm only asking since Raymond linked something that seemed to belong to the
>> alsa project.
>>
> 
> This is a bug both in ALSA and in PulseAudio.
> 
> The ALSA part (from the user viewpoint) is that the softvol plugin does 
> not reprocess the already-submitted but buffered samples when the volume 
> changes. But it can't, because that would require an additional thread 
> for monitoring the software volume changes, and such thread does not exist.
> 
> The PulseAudio part of the bug is that it does not deactivate softvols, 
> even though it can apply volume in software itself. In October 2014, in 
> Dusseldorf, a general agreement has been reached on the following arguments:
> 
>   * ALSA has no API to definitely distinguish softvols from other controls.
>   * ALSA has the snd_ctl_elem_info_is_user() API function that tells 
> whether this is a userspace control.
>   * All softvols are userspace controls.
>   * There are other kinds of userspace controls, but they are rare.
>   * If a control is named PCM Playback Volume and is a userspace 
> control, then it's likely a softvol. Not bulletproof, but a good-enough 
> heuristic.
>   * On finding a softvol, PulseAudio should set it to 100% (so that it 
> doesn't eat CPU) and don't touch from that point on.
> 
> But nobody has implemented this so far.

PulseAudio should open PCM with the SND_PCM_NO_SOFTVOL mode. In this
case, the PCM device does not add the softvol plugin to the internal
plugin chain. These mode flags was introduced a long time ago (discussed
with Lennart) and I thought that PA uses it.

					Jaroslav

-- 
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project; Red Hat, Inc.


More information about the Alsa-devel mailing list