Home | History | Annotate | Download | only in arm
      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 #include "dl/api/arm/armOMX.h"
     12 #include "dl/api/omxtypes.h"
     13 #include "dl/sp/api/armSP.h"
     14 #include "dl/sp/api/omxSP.h"
     15 
     16 
     17 /**
     18  * Function:  omxSP_FFTGetBufSize_C_FC32
     19  *
     20  * Description:
     21  * These functions compute the size of the specification structure
     22  * required for the length 2^order complex FFT and IFFT functions. The function
     23  * <FFTGetBufSize_C_FC32> is used in conjunction with the 32-bit functions
     24  * <FFTFwd_CToC_FC32_Sfs> and <FFTInv_CToC_FC32_Sfs>.
     25  *
     26  * Input Arguments:
     27  *
     28  *   order - base-2 logarithm of the desired block length; valid in the range
     29  *            [1,12] ([1,15] if BIG_FFT_TABLE is defined.)
     30  *
     31  * Output Arguments:
     32  *
     33  *   pSize - pointer to the number of bytes required for the specification
     34  *            structure
     35  *
     36  * Return Value:
     37  *
     38  *    OMX_Sts_NoErr - no error
     39  *
     40  *
     41  */
     42 
     43 OMXResult omxSP_FFTGetBufSize_C_FC32(OMX_INT order, OMX_INT *pSize) {
     44   if (!pSize || (order < 1) || (order > TWIDDLE_TABLE_ORDER))
     45     return OMX_Sts_BadArgErr;
     46   /*
     47    * The required size is the same as for C_SC32, because the
     48    * elements are the same size and because ARMsFFTSpec_SC32 is
     49    * the same size as ARMsFFTSpec_FC32.
     50    */
     51   return omxSP_FFTGetBufSize_C_SC32(order, pSize);
     52 }
     53