| /* |
| * Copyright (c) 2017 Paul B Mahol |
| * |
| * This file is part of FFmpeg. |
| * |
| * FFmpeg is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * FFmpeg is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with FFmpeg; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
| */ |
| |
| #ifndef AVFILTER_AFIR_H |
| #define AVFILTER_AFIR_H |
| |
| #include "libavutil/audio_fifo.h" |
| #include "libavutil/common.h" |
| #include "libavutil/float_dsp.h" |
| #include "libavutil/opt.h" |
| #include "libavcodec/avfft.h" |
| |
| #include "audio.h" |
| #include "avfilter.h" |
| #include "formats.h" |
| #include "internal.h" |
| |
| typedef struct AudioFIRContext { |
| const AVClass *class; |
| |
| float wet_gain; |
| float dry_gain; |
| float length; |
| int gtype; |
| float ir_gain; |
| int ir_format; |
| float max_ir_len; |
| int response; |
| int w, h; |
| int ir_channel; |
| |
| float gain; |
| |
| int eof_coeffs; |
| int have_coeffs; |
| int nb_coeffs; |
| int nb_taps; |
| int part_size; |
| int part_index; |
| int coeff_size; |
| int block_size; |
| int nb_partitions; |
| int nb_channels; |
| int ir_length; |
| int fft_length; |
| int nb_coef_channels; |
| int one2many; |
| int nb_samples; |
| int want_skip; |
| int need_padding; |
| |
| RDFTContext **rdft, **irdft; |
| float **sum; |
| float **block; |
| FFTComplex **coeff; |
| |
| AVAudioFifo *fifo; |
| AVFrame *in[2]; |
| AVFrame *buffer; |
| AVFrame *video; |
| int64_t pts; |
| int index; |
| |
| AVFloatDSPContext *fdsp; |
| void (*fcmul_add)(float *sum, const float *t, const float *c, |
| ptrdiff_t len); |
| } AudioFIRContext; |
| |
| void ff_afir_init_x86(AudioFIRContext *s); |
| |
| #endif /* AVFILTER_AFIR_H */ |