OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 extern void armSP_FFTInv_CToC_FC32_Radix8_fs_OutOfPlace( | 59 extern void armSP_FFTInv_CToC_FC32_Radix8_fs_OutOfPlace( |
60 const OMX_FC32* pSrc, | 60 const OMX_FC32* pSrc, |
61 OMX_FC32* pDst, | 61 OMX_FC32* pDst, |
62 OMX_FC32* pTwiddle, | 62 OMX_FC32* pTwiddle, |
63 long* subFFTNum, | 63 long* subFFTNum, |
64 long* subFFTSize); | 64 long* subFFTSize); |
65 | 65 |
66 /* | 66 /* |
67 * Scale FFT data by 1/|length|. |length| must be a power of two | 67 * Scale FFT data by 1/|length|. |length| must be a power of two |
68 */ | 68 */ |
69 static inline ScaleFFTData(OMX_FC32* fftData, unsigned length) { | 69 static inline void ScaleFFTData(OMX_FC32* fftData, unsigned length) { |
70 float32_t* data = (float32_t*)fftData; | 70 float32_t* data = (float32_t*)fftData; |
71 float32_t scale = 1.0f / length; | 71 float32_t scale = 1.0f / length; |
72 | 72 |
73 /* | 73 /* |
74 * Do two complex elements at a time because |length| is always | 74 * Do two complex elements at a time because |length| is always |
75 * greater than or equal to 2 (order >= 1) | 75 * greater than or equal to 2 (order >= 1) |
76 */ | 76 */ |
77 do { | 77 do { |
78 float32x4_t x = vld1q_f32(data); | 78 float32x4_t x = vld1q_f32(data); |
79 | 79 |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 pOut, pDst, pTwiddle, &subFFTNum, &subFFTSize); | 205 pOut, pDst, pTwiddle, &subFFTNum, &subFFTSize); |
206 } else { | 206 } else { |
207 /* Order = 1 */ | 207 /* Order = 1 */ |
208 armSP_FFTInv_CToC_FC32_Radix2_fs_OutOfPlace( | 208 armSP_FFTInv_CToC_FC32_Radix2_fs_OutOfPlace( |
209 pSrc, pDst, pTwiddle, &subFFTNum, &subFFTSize); | 209 pSrc, pDst, pTwiddle, &subFFTNum, &subFFTSize); |
210 } | 210 } |
211 | 211 |
212 ScaleFFTData(pDst, spec->N); | 212 ScaleFFTData(pDst, spec->N); |
213 return OMX_Sts_NoErr; | 213 return OMX_Sts_NoErr; |
214 } | 214 } |
OLD | NEW |