Thanks to Tanu for pointing out the (possibly pathological?) case that
base_volume might be >0dB.
s->saved_volume = *pa_sink_get_volume(s, TRUE);
s->saved_save_volume = s->save_volume;
- pa_cvolume_set(&volume, s->sample_spec.channels, s->base_volume);
+ pa_cvolume_set(&volume, s->sample_spec.channels, PA_MIN(s->base_volume, PA_VOLUME_NORM));
pa_sink_set_volume(s, &volume, TRUE, FALSE);
}
s->saved_volume = *pa_source_get_volume(s, TRUE);
s->saved_save_volume = s->save_volume;
- pa_cvolume_set(&volume, s->sample_spec.channels, s->base_volume);
+ pa_cvolume_set(&volume, s->sample_spec.channels, PA_MIN(s->base_volume, PA_VOLUME_NORM));
pa_source_set_volume(s, &volume, TRUE, FALSE);
}