mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
Merge branch 'allow-neg-maxdb' into 'master'
alsa: acp: don't disable dB if negative max unless range is small See merge request pipewire/pipewire!2569
This commit is contained in:
commit
8e0ef60d20
1 changed files with 8 additions and 4 deletions
|
|
@ -1719,11 +1719,15 @@ static bool element_probe_volume(pa_alsa_element *e, snd_mixer_elem_t *me) {
|
|||
else
|
||||
e->has_dB = snd_mixer_selem_get_capture_dB_range(me, &min_dB, &max_dB) >= 0;
|
||||
|
||||
/* Assume decibel data to be incorrect if max_dB is negative. */
|
||||
if (e->has_dB && max_dB < 0 && !e->db_fix) {
|
||||
/* Assume decibel data to be incorrect if max_dB is negative and dB range is
|
||||
* suspiciously small (< 10 dB). This can happen eg. if USB device is using volume
|
||||
* values as arbitrary scale ignoring USB standard on their meaning.
|
||||
*/
|
||||
if (e->has_dB && max_dB < 0 && SPA_ABS(max_dB - min_dB) < 10*100 && !e->db_fix) {
|
||||
pa_alsa_mixer_id_to_string(buf, sizeof(buf), &e->alsa_id);
|
||||
pa_log_warn("The decibel volume range for element %s (%li dB - %li dB) has negative maximum. "
|
||||
"Disabling the decibel range.", buf, min_dB, max_dB);
|
||||
pa_log_warn("The decibel volume range for element %s (%0.2f dB to %0.2f dB) has negative maximum "
|
||||
"and suspiciously small range. "
|
||||
"Disabling the decibel range.", buf, min_dB/100.0, max_dB/100.0);
|
||||
e->has_dB = false;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue