1/*
2 *  Copyright (c) 2013 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
12#include "dl/api/arm/armOMX.h"
13#include "dl/api/omxtypes.h"
14#include "dl/sp/api/armSP.h"
15#include "dl/sp/api/omxSP.h"
16
17/**
18 * Function: omxSP_FFTGetBufSize_R_F32
19 *
20 * Description:
21 * Computes the size of the specification structure required for the length
22 * 2^order real FFT and IFFT functions.
23 *
24 * Remarks:
25 * This function is used in conjunction with the 32-bit functions
26 * <FFTFwd_RToCCS_F32_Sfs> and <FFTInv_CCSToR_F32_Sfs>.
27 *
28 * Parameters:
29 * [in]  order       base-2 logarithm of the length; valid in the range
30 *                    [1,12]. ([1,15] if BIG_FFT_TABLE is defined.)
31 * [out] pSize	   pointer to the number of bytes required for the
32 *			   specification structure.
33 *
34 * Return Value:
35 * Standard omxError result. See enumeration for possible result codes.
36 *
37 */
38
39OMXResult omxSP_FFTGetBufSize_R_F32(OMX_INT order, OMX_INT *pSize) {
40  if (!pSize || (order < 1) || (order > TWIDDLE_TABLE_ORDER))
41    return OMX_Sts_BadArgErr;
42
43  /*
44   * The required size is the same as for R_S32, because the
45   * elements are the same size and because ARMsFFTSpec_R_SC32 is
46   * the same size as ARMsFFTSpec_R_FC32.
47   */
48  return omxSP_FFTGetBufSize_R_S32(order, pSize);
49}
50