sink, source: Add an avoid-processing mode

This generalises the avoid-resampling concept (don't resample for any
rate above the default/alternate sample rate) to include channel count
and sample format as well. The rationale for this is that users who wish
to send out their data untouched by processing in PulseAudio can do so.

In addition to this, there are opportunities for certain hardware (such
as systems with a DSP connected to a codec) to offload processing to the
DSP (providing potential cost savings).

Finally, this also enables modules that might be able to perform
transformations of (ANY -> sink format), and this allows us to implement
such transformations.
This commit is contained in:
Arun Raghavan 2018-09-24 13:51:23 +05:30 committed by Arun Raghavan
parent cbaf278f1e
commit 01c26546fa
14 changed files with 121 additions and 14 deletions

View file

@ -132,6 +132,16 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
rates.</p>
</option>
<option>
<p><opt>avoid-processing=</opt> If set, try to configure the
device to avoid resampling, sample format conversion and channel mixing. This only works on devices which
support such reconfiguration, and when no other streams are
already playing or capturing audio. The device will also not be
configured to a rate less than the default and alternate sample
rates, a channel count less than the default channels, or a sample
format that is smaller than the default sample format.</p>
</option>
<option>
<p><opt>enable-remixing=</opt> If disabled never upmix or
downmix channels to different channel maps. Instead, do a simple