[pulseaudio-tickets] [PulseAudio] #896: Ignore lowest mixer level, via settings

PulseAudio trac-noreply at tango.0pointer.de
Tue Jan 25 01:40:14 PST 2011


#896: Ignore lowest mixer level, via settings
--------------------------+-------------------------------------------------
  Reporter:  danutz       |       Owner:  lennart      
      Type:  enhancement  |      Status:  reopened     
 Milestone:               |   Component:  module-alsa-*
Resolution:               |    Keywords:               
--------------------------+-------------------------------------------------

Comment(by coling):

 I apologise if I wrote the wrong thing above when I wrote "perhaps in the
 kernel and perhaps in alsa". What I meant was that a bug I recently helped
 fixed turned out to be two separate bugs.

 To explain in more depth (although the thread I linked to above actually
 goes into a lot of detail) one part of the bug was specific to my hardware
 (a quirk in the kernel side) and one was very generic (alsa lib did not
 take that quirk into consideration - and so if any other drivers have
 implemented the quirk, it wouldn't be taken into consideration).

 To explain a little the API we use: snd_mixer_selem_set_playback_dB() from
 ALSA API. This API includes a "direction" argument. This argument allows
 us to say to alsa "please can I have -25dB, but if you can't do that give
 us something with less attenuation - e.g. -24.5dB". This argument is
 '''specifically designed''' to prevent over attenuation by apps which
 control via dBs.

 When the minimum value actually mutes, the goal of preventing over
 attenuation is clearly broken and this API call is clearly not producing
 the end result it should.

 It is very clear to me that this function itself, is the one that must be
 fixed to prevent this issue. Adding a hack or workaround in PA is just
 papering over cracks in lower layers and we have always stated that one of
 the primary goals of PA is to improve the overall audio stack and that
 requires fixing bugs in the right place. Add to that that we don't really
 know when a mixer level is at it's minimum (we just set via dB and rely on
 the direction argument) and we do not have any specific way to identify
 audio hardware with regards to a quirks database for recording which h/w
 is faulty.

 I am no ALSA developer, but as tanuk said, the bug tracker at alsa is
 totally worthless (I've tried to push several times for them to prevent
 new bug submissions, but it's never really gained much traction). Use the
 alsa-devel mailing list; it is much more productive. Also try not to get
 into conversations with Raymond about this stuff. While he can be helpful
 and communicative and occasionally has gems of information, he is usually
 very tangential. It is very hard for someone unfamiliar with the list to
 not get stuck in a loop in that way! I would very much direct your emails
 at Takashi, Jaroslav or Clemens who all have a very good understanding of
 this stuff and are the ones you rally need to get a hold off.

 I am hoping the alsa-lib fixes that address my issue will be available in
 a released version sometime soon (I believe an alsa-lib release will come
 shortly). It could be that this part of the fix is essential for your h/w
 too.

 If you supply a link to your alsa-info.sh script output (or attach it to
 this bug), I'll have a look and see if the TLV fixes in alsa-lib help in
 your case and if a kernel side fix is also needed and if necessary help
 you push it through to the appropriate alsa devs.

 I presume you have already tried the patches at the kernel side and alsa-
 lib side I pointed to earlier? Can you comment on the results of this when
 you tested?

-- 
Ticket URL: <http://pulseaudio.org/ticket/896#comment:11>
PulseAudio <http://pulseaudio.org/>
The PulseAudio Sound Server


More information about the pulseaudio-bugs mailing list