blob: b2ae4c3217b4a677fb6b71e62425f1d7f91e7e93 [file] [log] [blame]
Patrik Höglundf715c532017-11-17 11:04:15 +01001/*
2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef COMMON_AUDIO_FIR_FILTER_C_H_
12#define COMMON_AUDIO_FIR_FILTER_C_H_
13
14#include <string.h>
Jonas Olssona4d87372019-07-05 19:08:33 +020015
Patrik Höglundf715c532017-11-17 11:04:15 +010016#include <memory>
17
18#include "common_audio/fir_filter.h"
19
20namespace webrtc {
21
22class FIRFilterC : public FIRFilter {
23 public:
Yves Gerey665174f2018-06-19 15:03:05 +020024 FIRFilterC(const float* coefficients, size_t coefficients_length);
Patrik Höglundf715c532017-11-17 11:04:15 +010025 ~FIRFilterC() override;
26
27 void Filter(const float* in, size_t length, float* out) override;
28
29 private:
30 size_t coefficients_length_;
31 size_t state_length_;
32 std::unique_ptr<float[]> coefficients_;
33 std::unique_ptr<float[]> state_;
34};
35
36} // namespace webrtc
37
38#endif // COMMON_AUDIO_FIR_FILTER_C_H_