Support soxr custom recipes.

MPD uses soxr with prefined resample recipes. Soxr also support defining a recipe your self.
This commit will support a custom recipe by changing the existing quality setting to "custom".

The same structs as the predefined recipes uses can now set by hand.

This will make the following settings available:
- precision 16|20|24|28|32 bits, example "28"
- phase_response - 0-100, example "45"
- passband_end - used bandwidth of source 80-99.7%, example "99.7.0"
- stopband_begin - anti aliasing 100.0+%, example "100".
- attenuation - signal reduciton in dB's, 0-30. example "3.0".
- flags "0" - additional bitmask with extra settings

The data is set in the structs soxr_quality_spec and soxr_io_spec (found in soxr.h).
This commit is contained in:
bitkeeper
2020-07-29 23:07:16 +02:00
committed by Max Kellermann
parent 38498d3ee2
commit 9aa432c078
2 changed files with 146 additions and 4 deletions

View File

@@ -746,6 +746,25 @@ Valid quality values for libsoxr:
* "medium"
* "low"
* "quick"
* "custom"
If the quality is set to custom also the following settings are available:
* - Name
- Description
* - **precision**
- The precision in bits. Valid values 16,20,24,28 and 32 bits.
* - **phase_response**
- Between the 0-100, Where 0=MINIMUM_PHASE and 50=LINEAR_PHASE.
* - **passband_end**
- The % of source bandwidth where to start filtering. Typical between the 90-99.7.
* - **stopband_begin**
- The % of the source bandwidth Where the anti aliasing filter start. Value 100+.
* - **attenuation**
- Reduction in dB's to prevent clipping from the resampling process.
* - **flags**
- Bitmask with additional option see soxr documentation for specific flags.
.. _output_plugins: