filter-graph: improve latency reporting of convolver

The latency of the convolver depends on the IR used. It's 0 for /dirac,
len/2 for /hilbert and let's assume it is 0 for file IRs.

Fixes #4980
This commit is contained in:
Wim Taymans 2025-11-24 13:56:18 +01:00
parent 33c7d9cba5
commit ed2889cecf
2 changed files with 33 additions and 20 deletions

View file

@ -401,11 +401,13 @@ extern struct spa_handle_factory spa_filter_graph_factory;
* - `filename` The IR to load or create. Possible values are:
* - `/hilbert` creates a [hilbert function](https://en.wikipedia.org/wiki/Hilbert_transform)
* that can be used to phase shift the signal by +/-90 degrees. The
* `length` will be used as the number of coefficients.
* `length` will be used as the number of coefficients. The default latency
* if the length/2.
* - `/dirac` creates a [Dirac function](https://en.wikipedia.org/wiki/Dirac_delta_function) that
* can be used as gain.
* can be used as gain. The default latency is 0.
* - A filename to load as the IR. This needs to be a file format supported
* by sndfile or be an inline IR with "/ir:<rate>,<value1>,<value2>".
* by sndfile or be an inline IR with "/ir:<rate>,<value1>,<value2>". The default
* latency of file IRs is 0.
* - [ filename, ... ] an array of filenames. The file with the closest samplerate match
* with the graph samplerate will be used.
* - `offset` The sample offset in the file as the start of the IR.
@ -414,7 +416,7 @@ extern struct spa_handle_factory spa_filter_graph_factory;
* - `resample_quality` The resample quality in case the IR does not match the graph
* samplerate.
* - `latency` The extra latency in seconds to report. When left unspecified (or < 0.0)
* the convolver latency will be the length of the IR.
* the default IR latency will be used, the the filename argument.
*
* ### Delay
*