Move src/ -> webrtc/
TBR=niklas.enbom@webrtc.org Review URL: https://webrtc-codereview.appspot.com/915006 git-svn-id: http://webrtc.googlecode.com/svn/trunk@2963 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
86
webrtc/common_audio/signal_processing/include/real_fft.h
Normal file
86
webrtc/common_audio/signal_processing/include/real_fft.h
Normal file
@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef WEBRTC_COMMON_AUDIO_SIGNAL_PROCESSING_INCLUDE_REAL_FFT_H_
|
||||
#define WEBRTC_COMMON_AUDIO_SIGNAL_PROCESSING_INCLUDE_REAL_FFT_H_
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
struct RealFFT;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef int (*RealForwardFFT)(struct RealFFT* self,
|
||||
const int16_t* data_in,
|
||||
int16_t* data_out);
|
||||
typedef int (*RealInverseFFT)(struct RealFFT* self,
|
||||
const int16_t* data_in,
|
||||
int16_t* data_out);
|
||||
|
||||
extern RealForwardFFT WebRtcSpl_RealForwardFFT;
|
||||
extern RealInverseFFT WebRtcSpl_RealInverseFFT;
|
||||
|
||||
struct RealFFT* WebRtcSpl_CreateRealFFT(int order);
|
||||
void WebRtcSpl_FreeRealFFT(struct RealFFT* self);
|
||||
|
||||
// TODO(kma): Implement FFT functions for real signals.
|
||||
|
||||
// Compute the forward FFT for a complex signal of length 2^order.
|
||||
// Input Arguments:
|
||||
// self - pointer to preallocated and initialized FFT specification structure.
|
||||
// data_in - the input signal.
|
||||
//
|
||||
// Output Arguments:
|
||||
// data_out - the output signal; must be different to data_in.
|
||||
//
|
||||
// Return Value:
|
||||
// 0 - FFT calculation is successful.
|
||||
// -1 - Error
|
||||
//
|
||||
int WebRtcSpl_RealForwardFFTC(struct RealFFT* self,
|
||||
const int16_t* data_in,
|
||||
int16_t* data_out);
|
||||
|
||||
#if (defined WEBRTC_DETECT_ARM_NEON) || (defined WEBRTC_ARCH_ARM_NEON)
|
||||
int WebRtcSpl_RealForwardFFTNeon(struct RealFFT* self,
|
||||
const int16_t* data_in,
|
||||
int16_t* data_out);
|
||||
#endif
|
||||
|
||||
// Compute the inverse FFT for a complex signal of length 2^order.
|
||||
// Input Arguments:
|
||||
// self - pointer to preallocated and initialized FFT specification structure.
|
||||
// data_in - the input signal.
|
||||
//
|
||||
// Output Arguments:
|
||||
// data_out - the output signal; must be different to data_in.
|
||||
//
|
||||
// Return Value:
|
||||
// 0 or a positive number - a value that the elements in the |data_out| should
|
||||
// be shifted left with in order to get correct
|
||||
// physical values.
|
||||
// -1 - Error
|
||||
int WebRtcSpl_RealInverseFFTC(struct RealFFT* self,
|
||||
const int16_t* data_in,
|
||||
int16_t* data_out);
|
||||
|
||||
#if (defined WEBRTC_DETECT_ARM_NEON) || (defined WEBRTC_ARCH_ARM_NEON)
|
||||
int WebRtcSpl_RealInverseFFTNeon(struct RealFFT* self,
|
||||
const int16_t* data_in,
|
||||
int16_t* data_out);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // WEBRTC_COMMON_AUDIO_SIGNAL_PROCESSING_INCLUDE_REAL_FFT_H_
|
||||
Reference in New Issue
Block a user