blob: 7b4299aa3c95de29b182fa0d2925a00877471ebf [file] [log] [blame]
andrew@webrtc.org04c50982015-03-19 20:06:29 +00001/*
2 * Copyright (c) 2015 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
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020011#ifndef COMMON_AUDIO_REAL_FOURIER_OPENMAX_H_
12#define COMMON_AUDIO_REAL_FOURIER_OPENMAX_H_
andrew@webrtc.org04c50982015-03-19 20:06:29 +000013
14#include <complex>
15
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020016#include "common_audio/real_fourier.h"
andrew@webrtc.org04c50982015-03-19 20:06:29 +000017
18namespace webrtc {
19
20class RealFourierOpenmax : public RealFourier {
21 public:
22 explicit RealFourierOpenmax(int fft_order);
23 ~RealFourierOpenmax() override;
24
25 void Forward(const float* src, std::complex<float>* dest) const override;
26 void Inverse(const std::complex<float>* src, float* dest) const override;
27
28 int order() const override {
29 return order_;
30 }
31
32 private:
33 // Basically a forward declare of OMXFFTSpec_R_F32. To get rid of the
34 // dependency on openmax.
35 typedef void OMXFFTSpec_R_F32_;
36 const int order_;
37
38 OMXFFTSpec_R_F32_* const omx_spec_;
39};
40
41} // namespace webrtc
42
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020043#endif // COMMON_AUDIO_REAL_FOURIER_OPENMAX_H_
andrew@webrtc.org04c50982015-03-19 20:06:29 +000044