Re: alsa-lib and floating point support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 20 Sep 2017 12:55:30 +0200,
Ricard Wanderlof wrote:
> 
> 
> We recently came across an issue with the alsa-lib softvol plugin, which 
> requires hardware floating-point (i.e. --with-softfloat not enabled during 
> build) support in order to use anything but a set of default values (min 
> gain -51 dB, max 0 dB, and 256 gain steps). With no hardware floating 
> point support, the plugin just prints an error message when loaded.
> 
> static int softvol_load_control(snd_pcm_t *pcm, snd_pcm_softvol_t *svol,
>  ...
> #ifndef HAVE_SOFT_FLOAT
>  ...
>                         double v = (pow(10.0, db / 20.0) * (double)(1 << 
> VOL_SCALE_SHIFT));
>  ...
> #else
>                 SNDERR("Cannot handle the given dB range and resolution");
>                 return -EINVAL;
> #endif
>         }
>  ...
> 
> I'm trying to understand why it is critical to have hardware floating 
> point support in this case. The pow() function is very resource hungry, 
> true, but the function is only called when the plugin is loaded, and not 
> for instance on every sample while the stream is running, so on the whole 
> I would expect the impact to be minimal. Is there some other rationale 
> that I'm missing?

The softfloat option is to avoid calculation in float as much as
possible, i.e. alsa-lib will be built without any usage of math
library.


Takashi
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux