Commit a53a9f1c authored by Paul B Mahol's avatar Paul B Mahol

avfilter/af_afir: implement non-uniform partitioned convolution

Using multiple frequency delay lines.
parent 300dc45f
...@@ -1231,14 +1231,14 @@ Set video stream size. This option is used only when @var{response} is enabled. ...@@ -1231,14 +1231,14 @@ Set video stream size. This option is used only when @var{response} is enabled.
Set video stream frame rate. This option is used only when @var{response} is enabled. Set video stream frame rate. This option is used only when @var{response} is enabled.
@item minp @item minp
Set minimal partition size used for convolution. Default is @var{16}. Set minimal partition size used for convolution. Default is @var{8192}.
Allowed range is from @var{16} to @var{32768}. Allowed range is from @var{16} to @var{32768}.
Lower values decreases latency at cost of higher CPU usage. Lower values decreases latency at cost of higher CPU usage.
@item maxp @item maxp
Set maximal partition size used for convolution. Default is @var{8192}. Set maximal partition size used for convolution. Default is @var{8192}.
Allowed range is from @var{16} to @var{32768}. Allowed range is from @var{16} to @var{32768}.
Lower values decreases latency at cost of higher CPU usage. Lower values may increase CPU usage.
@end table @end table
@subsection Examples @subsection Examples
......
This diff is collapsed.
...@@ -37,14 +37,18 @@ typedef struct AudioFIRSegment { ...@@ -37,14 +37,18 @@ typedef struct AudioFIRSegment {
int block_size; int block_size;
int fft_length; int fft_length;
int coeff_size; int coeff_size;
int segment_size; int input_size;
int input_offset;
int *output_offset;
int *part_index; int *part_index;
AVFrame *sum; AVFrame *sum;
AVFrame *block; AVFrame *block;
AVFrame *buffer; AVFrame *buffer;
AVFrame *coeff; AVFrame *coeff;
AVFrame *input;
AVFrame *output;
RDFTContext **rdft, **irdft; RDFTContext **rdft, **irdft;
} AudioFIRSegment; } AudioFIRSegment;
...@@ -80,6 +84,7 @@ typedef struct AudioFIRContext { ...@@ -80,6 +84,7 @@ typedef struct AudioFIRContext {
AVFrame *in[2]; AVFrame *in[2];
AVFrame *video; AVFrame *video;
int min_part_size;
int64_t pts; int64_t pts;
AVFloatDSPContext *fdsp; AVFloatDSPContext *fdsp;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment