summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Chromium Automerger <chromium-automerger@android>2014-10-08 01:48:32 +0000
committerAndroid Chromium Automerger <chromium-automerger@android>2014-10-08 01:48:32 +0000
commitc2daf13647f61d8561577485b0353c0418764dc3 (patch)
treeeccaa2c3e40f98b69538ca69eb68d0c18da05804
parentaffa3e17eb806ff55f0d3faacebca1a7feac5bb8 (diff)
parent6d58d90b0064c93cfb6b6f89c696cc53719ad831 (diff)
downloadopenmax_dl-c2daf13647f61d8561577485b0353c0418764dc3.tar.gz
Merge third_party/openmax_dl from https://chromium.googlesource.com/external/webrtc/deps/third_party/openmax.git at 6d58d90b0064c93cfb6b6f89c696cc53719ad831
This commit was generated by merge_from_chromium.py. Change-Id: I39019855640fd351dbb66e6d812eb7338230cef5
-rw-r--r--dl/dl.gyp211
-rw-r--r--dl/sp/api/armSP.h26
-rw-r--r--dl/sp/api/omxSP.h2593
-rw-r--r--dl/sp/src/test/test_fft.gyp55
-rw-r--r--dl/sp/src/test/test_fft_time.c49
-rw-r--r--dl/sp/src/test/test_util_fft.c1
6 files changed, 1493 insertions, 1442 deletions
diff --git a/dl/dl.gyp b/dl/dl.gyp
index d43f546..a4644f1 100644
--- a/dl/dl.gyp
+++ b/dl/dl.gyp
@@ -11,13 +11,42 @@
# Override this value to build with small float FFT tables
'big_float_fft%' : 1,
},
+ 'target_defaults': {
+ 'include_dirs': [
+ '../',
+ ],
+ 'conditions' : [
+ ['target_arch=="arm"', {
+ 'conditions' : [
+ ['arm_neon==1', {
+ # Enable build-time NEON selection.
+ 'defines': ['DL_ARM_NEON',],
+ 'direct_dependent_settings': {
+ 'defines': ['DL_ARM_NEON',],
+ },
+ }],
+ ['arm_neon==0 and OS=="android"', {
+ # Enable run-time NEON selection.
+ 'defines': ['DL_ARM_NEON_OPTIONAL',],
+ 'direct_dependent_settings': {
+ 'defines': ['DL_ARM_NEON_OPTIONAL',],
+ },
+ }],
+ ],
+ }],
+ ['target_arch=="arm64"', {
+ # Enable build-time NEON selection.
+ 'defines': ['DL_ARM_NEON',],
+ 'direct_dependent_settings': {
+ 'defines': ['DL_ARM_NEON',],
+ },
+ }],
+ ],
+ },
'targets': [
{
'target_name': 'openmax_dl',
'type': 'static_library',
- 'include_dirs': [
- '../',
- ],
'direct_dependent_settings': {
'include_dirs': [
'../',
@@ -29,7 +58,7 @@
'sp/src/armSP_FFT_F32TwiddleTable.c',
],
'conditions' : [
- ['big_float_fft == 1', {
+ ['big_float_fft==1', {
'defines': [
'BIG_FFT_TABLE',
],
@@ -50,76 +79,80 @@
],
}],
['target_arch=="arm"', {
- 'cflags!': [
- '-mfpu=vfpv3-d16',
- ],
- 'cflags': [
- # We enable Neon instructions even with arm_neon==0, to support
- # runtime detection.
- '-mfpu=neon',
- ],
- 'dependencies': [
- 'openmax_dl_armv7',
- ],
- 'sources': [
- # Common files that are used by both the NEON and non-NEON code.
- 'api/armCOMM_s.h',
- 'sp/src/arm/omxSP_FFTGetBufSize_C_SC16.c',
- 'sp/src/arm/omxSP_FFTGetBufSize_R_S16.c',
- 'sp/src/arm/omxSP_FFTGetBufSize_R_S16S32.c',
- 'sp/src/arm/omxSP_FFTInit_C_SC16.c',
- 'sp/src/arm/omxSP_FFTInit_C_SC32.c',
- 'sp/src/arm/omxSP_FFTInit_R_S16.c',
- 'sp/src/arm/omxSP_FFTInit_R_S16S32.c',
- 'sp/src/arm/omxSP_FFTInit_R_S32.c',
+ 'conditions': [
+ ['arm_neon==0 or OS=="android"', {
+ 'dependencies': [
+ 'openmax_dl_armv7',
+ ],
+ }],
+ ['arm_neon==1 or OS=="android"', {
+ 'cflags!': [
+ '-mfpu=vfpv3-d16',
+ ],
+ 'cflags': [
+ '-mfpu=neon',
+ ],
+ 'sources': [
+ # Common files that are used by both the NEON and non-NEON code.
+ 'api/armCOMM_s.h',
+ 'sp/src/arm/omxSP_FFTGetBufSize_C_SC16.c',
+ 'sp/src/arm/omxSP_FFTGetBufSize_R_S16.c',
+ 'sp/src/arm/omxSP_FFTGetBufSize_R_S16S32.c',
+ 'sp/src/arm/omxSP_FFTInit_C_SC16.c',
+ 'sp/src/arm/omxSP_FFTInit_C_SC32.c',
+ 'sp/src/arm/omxSP_FFTInit_R_S16.c',
+ 'sp/src/arm/omxSP_FFTInit_R_S16S32.c',
+ 'sp/src/arm/omxSP_FFTInit_R_S32.c',
- # Complex 32-bit fixed-point FFT.
- 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix2_fs_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix2_ls_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix2_fs_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix4_fs_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix4_ls_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix2_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix4_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix8_fs_unsafe_s.S',
- 'sp/src/arm/neon/omxSP_FFTInv_CToC_SC32_Sfs_s.S',
- 'sp/src/arm/neon/omxSP_FFTFwd_CToC_SC32_Sfs_s.S',
- # Real 32-bit fixed-point FFT
- 'sp/src/arm/neon/armSP_FFTInv_CCSToR_S32_preTwiddleRadix2_unsafe_s.S',
- 'sp/src/arm/neon/omxSP_FFTFwd_RToCCS_S32_Sfs_s.S',
- 'sp/src/arm/neon/omxSP_FFTInv_CCSToR_S32_Sfs_s.S',
- # Complex 16-bit fixed-point FFT
- 'sp/src/arm/neon/armSP_FFTInv_CCSToR_S16_preTwiddleRadix2_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix2_fs_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix2_ls_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix2_ps_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix2_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix4_fs_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix4_ls_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix4_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix8_fs_unsafe_s.S',
- 'sp/src/arm/neon/omxSP_FFTFwd_CToC_SC16_Sfs_s.S',
- 'sp/src/arm/neon/omxSP_FFTInv_CToC_SC16_Sfs_s.S',
- # Real 16-bit fixed-point FFT
- 'sp/src/arm/neon/omxSP_FFTFwd_RToCCS_S16_Sfs_s.S',
- 'sp/src/arm/neon/omxSP_FFTInv_CCSToR_S16_Sfs_s.S',
- 'sp/src/arm/neon/omxSP_FFTFwd_RToCCS_S16S32_Sfs_s.S',
- 'sp/src/arm/neon/omxSP_FFTInv_CCSToR_S32S16_Sfs_s.S',
- # Complex floating-point FFT
- 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix2_fs_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix2_ls_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix2_fs_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix4_fs_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix4_ls_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix2_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix4_unsafe_s.S',
- 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix8_fs_unsafe_s.S',
- 'sp/src/arm/neon/omxSP_FFTInv_CToC_FC32_Sfs_s.S',
- 'sp/src/arm/neon/omxSP_FFTFwd_CToC_FC32_Sfs_s.S',
- # Real floating-point FFT
- 'sp/src/arm/neon/armSP_FFTInv_CCSToR_F32_preTwiddleRadix2_unsafe_s.S',
- 'sp/src/arm/neon/omxSP_FFTFwd_RToCCS_F32_Sfs_s.S',
- 'sp/src/arm/neon/omxSP_FFTInv_CCSToR_F32_Sfs_s.S',
+ # Complex 32-bit fixed-point FFT.
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix2_fs_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix2_ls_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix2_fs_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix4_fs_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix4_ls_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix2_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix4_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC32_Radix8_fs_unsafe_s.S',
+ 'sp/src/arm/neon/omxSP_FFTInv_CToC_SC32_Sfs_s.S',
+ 'sp/src/arm/neon/omxSP_FFTFwd_CToC_SC32_Sfs_s.S',
+ # Real 32-bit fixed-point FFT
+ 'sp/src/arm/neon/armSP_FFTInv_CCSToR_S32_preTwiddleRadix2_unsafe_s.S',
+ 'sp/src/arm/neon/omxSP_FFTFwd_RToCCS_S32_Sfs_s.S',
+ 'sp/src/arm/neon/omxSP_FFTInv_CCSToR_S32_Sfs_s.S',
+ # Complex 16-bit fixed-point FFT
+ 'sp/src/arm/neon/armSP_FFTInv_CCSToR_S16_preTwiddleRadix2_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix2_fs_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix2_ls_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix2_ps_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix2_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix4_fs_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix4_ls_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix4_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_SC16_Radix8_fs_unsafe_s.S',
+ 'sp/src/arm/neon/omxSP_FFTFwd_CToC_SC16_Sfs_s.S',
+ 'sp/src/arm/neon/omxSP_FFTInv_CToC_SC16_Sfs_s.S',
+ # Real 16-bit fixed-point FFT
+ 'sp/src/arm/neon/omxSP_FFTFwd_RToCCS_S16_Sfs_s.S',
+ 'sp/src/arm/neon/omxSP_FFTInv_CCSToR_S16_Sfs_s.S',
+ 'sp/src/arm/neon/omxSP_FFTFwd_RToCCS_S16S32_Sfs_s.S',
+ 'sp/src/arm/neon/omxSP_FFTInv_CCSToR_S32S16_Sfs_s.S',
+ # Complex floating-point FFT
+ 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix2_fs_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix2_ls_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix2_fs_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix4_fs_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix4_ls_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix2_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix4_unsafe_s.S',
+ 'sp/src/arm/neon/armSP_FFT_CToC_FC32_Radix8_fs_unsafe_s.S',
+ 'sp/src/arm/neon/omxSP_FFTInv_CToC_FC32_Sfs_s.S',
+ 'sp/src/arm/neon/omxSP_FFTFwd_CToC_FC32_Sfs_s.S',
+ # Real floating-point FFT
+ 'sp/src/arm/neon/armSP_FFTInv_CCSToR_F32_preTwiddleRadix2_unsafe_s.S',
+ 'sp/src/arm/neon/omxSP_FFTFwd_RToCCS_F32_Sfs_s.S',
+ 'sp/src/arm/neon/omxSP_FFTInv_CCSToR_F32_Sfs_s.S',
+ ],
+ }],
],
}],
['target_arch=="ia32" or target_arch=="x64"', {
@@ -210,24 +243,10 @@
# standalone. Applications must link with openmax_dl.
'target_name': 'openmax_dl_armv7',
'type': 'static_library',
- 'includes': [
- '../../../build/android/cpufeatures.gypi',
- ],
- 'include_dirs': [
- '../',
- ],
'cflags!': [
'-mfpu=neon',
],
- 'link_settings' : {
- 'libraries': [
- # To get the __android_log_print routine
- '-llog',
- ],
- },
'sources': [
- # Detection routine
- 'sp/src/arm/detect.c',
# Complex floating-point FFT
'sp/src/arm/armv7/armSP_FFT_CToC_FC32_Radix2_fs_unsafe_s.S',
'sp/src/arm/armv7/armSP_FFT_CToC_FC32_Radix2_fs_unsafe_s.S',
@@ -241,6 +260,24 @@
'sp/src/arm/armv7/omxSP_FFTFwd_RToCCS_F32_Sfs_s.S',
'sp/src/arm/armv7/omxSP_FFTInv_CCSToR_F32_Sfs_s.S',
],
+ 'conditions': [
+ ['OS=="android"', {
+ # We only do run-time NEON detection on Android.
+ 'includes': [
+ '../../../build/android/cpufeatures.gypi',
+ ],
+ 'link_settings' : {
+ 'libraries': [
+ # To get the __android_log_print routine
+ '-llog',
+ ],
+ },
+ 'sources': [
+ # Detection routine
+ 'sp/src/arm/detect.c',
+ ],
+ }],
+ ],
},
],
}],
diff --git a/dl/sp/api/armSP.h b/dl/sp/api/armSP.h
index cf17ec5..2592679 100644
--- a/dl/sp/api/armSP.h
+++ b/dl/sp/api/armSP.h
@@ -12,16 +12,16 @@
*/
/**
- *
+ *
* File Name: armSP.h
* OpenMAX DL: v1.0.2
* Last Modified Revision: 7014
* Last Modified Date: Wed, 01 Aug 2007
- *
+ *
* (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
- *
- *
- *
+ *
+ *
+ *
* File: armSP.h
* Brief: Declares API's/Basic Data types used across the OpenMAX Signal Processing domain
*
@@ -41,35 +41,35 @@ extern "C" {
extern OMX_S32 armSP_FFT_S32TwiddleTable[1026];
extern OMX_F32 armSP_FFT_F32TwiddleTable[];
-typedef struct ARMsFFTSpec_SC32_Tag
+typedef struct ARMsFFTSpec_SC32_Tag
{
OMX_U32 N;
- OMX_U16 *pBitRev;
+ OMX_U16 *pBitRev;
OMX_SC32 *pTwiddle;
OMX_SC32 *pBuf;
}ARMsFFTSpec_SC32;
-typedef struct ARMsFFTSpec_SC16_Tag
+typedef struct ARMsFFTSpec_SC16_Tag
{
OMX_U32 N;
- OMX_U16 *pBitRev;
+ OMX_U16 *pBitRev;
OMX_SC16 *pTwiddle;
OMX_SC16 *pBuf;
}ARMsFFTSpec_SC16;
-typedef struct ARMsFFTSpec_R_SC32_Tag
+typedef struct ARMsFFTSpec_R_SC32_Tag
{
OMX_U32 N;
- OMX_U16 *pBitRev;
+ OMX_U16 *pBitRev;
OMX_SC32 *pTwiddle;
OMX_S32 *pBuf;
}ARMsFFTSpec_R_SC32;
-typedef struct ARMsFFTSpec_R_SC16_Tag
+typedef struct ARMsFFTSpec_R_SC16_Tag
{
OMX_U32 N;
- OMX_U16 *pBitRev;
+ OMX_U16 *pBitRev;
OMX_SC16 *pTwiddle;
OMX_S16 *pBuf;
} ARMsFFTSpec_R_SC16;
diff --git a/dl/sp/api/omxSP.h b/dl/sp/api/omxSP.h
index d056fb9..2827379 100644
--- a/dl/sp/api/omxSP.h
+++ b/dl/sp/api/omxSP.h
@@ -4,27 +4,27 @@
*
* Copyright 2005-2008 The Khronos Group Inc. All Rights Reserved.
*
- * These materials are protected by copyright laws and contain material
- * proprietary to the Khronos Group, Inc. You may use these materials
- * for implementing Khronos specifications, without altering or removing
+ * These materials are protected by copyright laws and contain material
+ * proprietary to the Khronos Group, Inc. You may use these materials
+ * for implementing Khronos specifications, without altering or removing
* any trademark, copyright or other notice from the specification.
- *
- * Khronos Group makes no, and expressly disclaims any, representations
- * or warranties, express or implied, regarding these materials, including,
- * without limitation, any implied warranties of merchantability or fitness
- * for a particular purpose or non-infringement of any intellectual property.
- * Khronos Group makes no, and expressly disclaims any, warranties, express
- * or implied, regarding the correctness, accuracy, completeness, timeliness,
- * and reliability of these materials.
- *
- * Under no circumstances will the Khronos Group, or any of its Promoters,
- * Contributors or Members or their respective partners, officers, directors,
- * employees, agents or representatives be liable for any damages, whether
- * direct, indirect, special or consequential damages for lost revenues,
- * lost profits, or otherwise, arising from or in connection with these
+ *
+ * Khronos Group makes no, and expressly disclaims any, representations
+ * or warranties, express or implied, regarding these materials, including,
+ * without limitation, any implied warranties of merchantability or fitness
+ * for a particular purpose or non-infringement of any intellectual property.
+ * Khronos Group makes no, and expressly disclaims any, warranties, express
+ * or implied, regarding the correctness, accuracy, completeness, timeliness,
+ * and reliability of these materials.
+ *
+ * Under no circumstances will the Khronos Group, or any of its Promoters,
+ * Contributors or Members or their respective partners, officers, directors,
+ * employees, agents or representatives be liable for any damages, whether
+ * direct, indirect, special or consequential damages for lost revenues,
+ * lost profits, or otherwise, arising from or in connection with these
* materials.
- *
- * Khronos and OpenMAX are trademarks of the Khronos Group Inc.
+ *
+ * Khronos and OpenMAX are trademarks of the Khronos Group Inc.
*
*/
@@ -53,26 +53,26 @@ extern "C" {
* Function: omxSP_Copy_S16 (2.2.1.1.1)
*
* Description:
- * Copies the len elements of the vector pointed to by pSrcinto the len
- * elements of the vector pointed to by pDst. That is:
+ * Copies the len elements of the vector pointed to by pSrcinto the len
+ * elements of the vector pointed to by pDst. That is:
* pDst[i] = pSrc[i], for (i=0, 1, ..., len-1)
*
* Input Arguments:
- *
- * pSrc - pointer to the source vector
- * len - number of elements contained in the source and destination vectors
+ *
+ * pSrc - pointer to the source vector
+ * len - number of elements contained in the source and destination vectors
*
* Output Arguments:
- *
- * pDst - pointer to the destination vector
+ *
+ * pDst - pointer to the destination vector
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments detected; returned if one or more of
- * the following is true:
- * - pSrc or pDst is NULL
- * - len < 0
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments detected; returned if one or more of
+ * the following is true:
+ * - pSrc or pDst is NULL
+ * - len < 0
*
*/
OMXResult omxSP_Copy_S16 (
@@ -87,25 +87,25 @@ OMXResult omxSP_Copy_S16 (
* Function: omxSP_DotProd_S16 (2.2.2.1.1)
*
* Description:
- * Calculates the dot product of the two input vectors. This function does
- * not perform scaling. The internal accumulator width must be at least 32
- * bits. If any of the partially accumulated values exceeds the range of a
- * signed 32-bit integer then the result is undefined.
+ * Calculates the dot product of the two input vectors. This function does
+ * not perform scaling. The internal accumulator width must be at least 32
+ * bits. If any of the partially accumulated values exceeds the range of a
+ * signed 32-bit integer then the result is undefined.
*
* Input Arguments:
- *
- * pSrc1 - pointer to the first input vector; must be aligned on an 8-byte
- * boundary.
- * pSrc2 - pointer to the second input vector; must be aligned on an 8-byte
- * boundary.
- * len - length of the vectors in pSrc1 and pSrc2
+ *
+ * pSrc1 - pointer to the first input vector; must be aligned on an 8-byte
+ * boundary.
+ * pSrc2 - pointer to the second input vector; must be aligned on an 8-byte
+ * boundary.
+ * len - length of the vectors in pSrc1 and pSrc2
*
* Output Arguments:
*
* Return Value:
- *
- * The dot product result Note: this function returns the actual result
- * rather than the standard OMXError.
+ *
+ * The dot product result Note: this function returns the actual result
+ * rather than the standard OMXError.
*
*/
OMX_S32 omxSP_DotProd_S16 (
@@ -120,30 +120,30 @@ OMX_S32 omxSP_DotProd_S16 (
* Function: omxSP_DotProd_S16_Sfs (2.2.2.1.2)
*
* Description:
- * Calculates the dot product of the two input signals with output scaling
- * and saturation, i.e., the result is multiplied by two to the power of the
- * negative (-)scalefactor (scaled) prior to return. The result is saturated
- * with rounding if the scaling operation produces a value outside the range
- * of a signed 32-bit integer. Rounding behavior is defined in section 1.6.7
- * Integer Scaling and Rounding Conventions. The internal accumulator width
- * must be at least 32 bits. The result is undefined if any of the partially
- * accumulated values exceeds the range of a signed 32-bit integer.
+ * Calculates the dot product of the two input signals with output scaling
+ * and saturation, i.e., the result is multiplied by two to the power of the
+ * negative (-)scalefactor (scaled) prior to return. The result is saturated
+ * with rounding if the scaling operation produces a value outside the range
+ * of a signed 32-bit integer. Rounding behavior is defined in section 1.6.7
+ * Integer Scaling and Rounding Conventions. The internal accumulator width
+ * must be at least 32 bits. The result is undefined if any of the partially
+ * accumulated values exceeds the range of a signed 32-bit integer.
*
* Input Arguments:
- *
- * pSrc1 - pointer to the first input vector; must be aligned on an 8-byte
- * boundary.
- * pSrc2 - pointer to the second input vector; must be aligned on an 8-byte
- * boundary.
- * len - length of the vectors in pSrc1 and pSrc2
- * scaleFactor - integer scalefactor
+ *
+ * pSrc1 - pointer to the first input vector; must be aligned on an 8-byte
+ * boundary.
+ * pSrc2 - pointer to the second input vector; must be aligned on an 8-byte
+ * boundary.
+ * len - length of the vectors in pSrc1 and pSrc2
+ * scaleFactor - integer scalefactor
*
* Output Arguments:
*
* Return Value:
- *
- * The dot product result Note: This function returns the actual result
- * rather than the standard OMXError.
+ *
+ * The dot product result Note: This function returns the actual result
+ * rather than the standard OMXError.
*
*/
OMX_S32 omxSP_DotProd_S16_Sfs (
@@ -159,30 +159,30 @@ OMX_S32 omxSP_DotProd_S16_Sfs (
* Function: omxSP_BlockExp_S16 (2.2.2.2.2)
*
* Description:
- * Block exponent calculation for 16-bit and 32-bit signals (count leading
- * sign bits). These functions compute the number of extra sign bits of all
- * values in the 16-bit and 32-bit input vector pSrc and return the minimum
- * sign bit count. This is also the maximum shift value that could be used in
- * scaling the block of data. The functions BlockExp_S16 and
- * BlockExp_S32 return the values 15 and 31, respectively, for input vectors in
- * which all entries are equal to zero.
+ * Block exponent calculation for 16-bit and 32-bit signals (count leading
+ * sign bits). These functions compute the number of extra sign bits of all
+ * values in the 16-bit and 32-bit input vector pSrc and return the minimum
+ * sign bit count. This is also the maximum shift value that could be used in
+ * scaling the block of data. The functions BlockExp_S16 and
+ * BlockExp_S32 return the values 15 and 31, respectively, for input vectors in
+ * which all entries are equal to zero.
*
- * Note: These functions differ from other DL functions by not returning the
- * standard OMXError but the actual result.
+ * Note: These functions differ from other DL functions by not returning the
+ * standard OMXError but the actual result.
*
* Input Arguments:
- *
- * pSrc - pointer to the input vector
- * len - number of elements contained in the input and output
- * vectors (0 < len < 65536)
+ *
+ * pSrc - pointer to the input vector
+ * len - number of elements contained in the input and output
+ * vectors (0 < len < 65536)
*
* Output Arguments:
- *
- * none
+ *
+ * none
*
* Return Value:
- *
- * Maximum exponent that may be used in scaling
+ *
+ * Maximum exponent that may be used in scaling
*
*/
OMX_INT omxSP_BlockExp_S16 (
@@ -196,30 +196,30 @@ OMX_INT omxSP_BlockExp_S16 (
* Function: omxSP_BlockExp_S32 (2.2.2.2.2)
*
* Description:
- * Block exponent calculation for 16-bit and 32-bit signals (count leading
- * sign bits). These functions compute the number of extra sign bits of all
- * values in the 16-bit and 32-bit input vector pSrc and return the minimum
- * sign bit count. This is also the maximum shift value that could be used in
- * scaling the block of data. The functions BlockExp_S16 and
- * BlockExp_S32 return the values 15 and 31, respectively, for input vectors in
- * which all entries are equal to zero.
- *
- * Note: These functions differ from other DL functions by not returning the
- * standard OMXError but the actual result.
+ * Block exponent calculation for 16-bit and 32-bit signals (count leading
+ * sign bits). These functions compute the number of extra sign bits of all
+ * values in the 16-bit and 32-bit input vector pSrc and return the minimum
+ * sign bit count. This is also the maximum shift value that could be used in
+ * scaling the block of data. The functions BlockExp_S16 and
+ * BlockExp_S32 return the values 15 and 31, respectively, for input vectors in
+ * which all entries are equal to zero.
+ *
+ * Note: These functions differ from other DL functions by not returning the
+ * standard OMXError but the actual result.
*
* Input Arguments:
- *
- * pSrc - pointer to the input vector
- * len - number of elements contained in the input and output
- * vectors (0 < len < 65536)
+ *
+ * pSrc - pointer to the input vector
+ * len - number of elements contained in the input and output
+ * vectors (0 < len < 65536)
*
* Output Arguments:
- *
- * none
+ *
+ * none
*
* Return Value:
- *
- * Maximum exponent that may be used in scaling
+ *
+ * Maximum exponent that may be used in scaling
*
*/
OMX_INT omxSP_BlockExp_S32 (
@@ -233,59 +233,59 @@ OMX_INT omxSP_BlockExp_S32 (
* Function: omxSP_FIR_Direct_S16 (2.2.3.1.1)
*
* Description:
- * Block FIR filtering for 16-bit data type. This function applies the
- * FIR filter defined by the coefficient vector pTapsQ15 to a vector of
- * input data. The result is saturated with rounding if the operation
- * produces a value outside the range of a signed 16-bit integer.
+ * Block FIR filtering for 16-bit data type. This function applies the
+ * FIR filter defined by the coefficient vector pTapsQ15 to a vector of
+ * input data. The result is saturated with rounding if the operation
+ * produces a value outside the range of a signed 16-bit integer.
* Rounding behavior is defined in:
- * section 1.6.7 "Integer Scaling and Rounding Conventions".
- * The internal accumulator width must be at least 32 bits. The result
- * is undefined if any of the partially accumulated values exceeds the
- * range of a signed 32-bit integer.
+ * section 1.6.7 "Integer Scaling and Rounding Conventions".
+ * The internal accumulator width must be at least 32 bits. The result
+ * is undefined if any of the partially accumulated values exceeds the
+ * range of a signed 32-bit integer.
*
*
* Input Arguments:
- *
- * pSrc - pointer to the vector of input samples to which the
- * filter is applied
- * sampLen - the number of samples contained in the input and output
- * vectors
- * pTapsQ15 - pointer to the vector that contains the filter coefficients,
- * represented in Q0.15 format (defined in section 1.6.5). Given
+ *
+ * pSrc - pointer to the vector of input samples to which the
+ * filter is applied
+ * sampLen - the number of samples contained in the input and output
+ * vectors
+ * pTapsQ15 - pointer to the vector that contains the filter coefficients,
+ * represented in Q0.15 format (defined in section 1.6.5). Given
* that:
- * -32768 = pTapsQ15(k) < 32768,
- * 0 = k <tapsLen,
- * the range on the actual filter coefficients is -1 = bK <1, and
- * therefore coefficient normalization may be required during the
- * filter design process.
- * tapsLen - the number of taps, or, equivalently, the filter order + 1
- * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
- * (state). The user is responsible for allocation, initialization,
- * and de-allocation. The filter memory elements are initialized to
- * zero in most applications.
- * pDelayLineIndex - pointer to the filter memory index that is maintained
- * internally by the function. The user should initialize the value
- * of this index to zero.
+ * -32768 = pTapsQ15(k) < 32768,
+ * 0 = k <tapsLen,
+ * the range on the actual filter coefficients is -1 = bK <1, and
+ * therefore coefficient normalization may be required during the
+ * filter design process.
+ * tapsLen - the number of taps, or, equivalently, the filter order + 1
+ * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
+ * (state). The user is responsible for allocation, initialization,
+ * and de-allocation. The filter memory elements are initialized to
+ * zero in most applications.
+ * pDelayLineIndex - pointer to the filter memory index that is maintained
+ * internally by the function. The user should initialize the value
+ * of this index to zero.
*
* Output Arguments:
- *
- * pDst - pointer to the vector of filtered output samples
+ *
+ * pDst - pointer to the vector of filtered output samples
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - One or more of the following pointers is NULL:
- * - pSrc,
- * - pDst,
- * - pSrcDst,
- * - pTapsQ15,
- * - pDelayLine, or
- * - pDelayLineIndex
- * - samplen < 0
- * - tapslen < 1
- * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen).
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - One or more of the following pointers is NULL:
+ * - pSrc,
+ * - pDst,
+ * - pSrcDst,
+ * - pTapsQ15,
+ * - pDelayLine, or
+ * - pDelayLineIndex
+ * - samplen < 0
+ * - tapslen < 1
+ * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen).
*
*/
OMXResult omxSP_FIR_Direct_S16 (
@@ -304,58 +304,58 @@ OMXResult omxSP_FIR_Direct_S16 (
* Function: omxSP_FIR_Direct_S16_I (2.2.3.1.1)
*
* Description:
- * Block FIR filtering for 16-bit data type. This function applies the
- * FIR filter defined by the coefficient vector pTapsQ15 to a vector of
- * input data. The result is saturated with rounding if the operation
- * produces a value outside the range of a signed 16-bit integer.
+ * Block FIR filtering for 16-bit data type. This function applies the
+ * FIR filter defined by the coefficient vector pTapsQ15 to a vector of
+ * input data. The result is saturated with rounding if the operation
+ * produces a value outside the range of a signed 16-bit integer.
* Rounding behavior is defined in:
- * section 1.6.7 "Integer Scaling and Rounding Conventions".
- * The internal accumulator width must be at least 32 bits. The result
- * is undefined if any of the partially accumulated values exceeds the
- * range of a signed 32-bit integer.
+ * section 1.6.7 "Integer Scaling and Rounding Conventions".
+ * The internal accumulator width must be at least 32 bits. The result
+ * is undefined if any of the partially accumulated values exceeds the
+ * range of a signed 32-bit integer.
*
* Input Arguments:
- *
- * pSrcDst - pointer to the vector of input samples to which the
- * filter is applied
- * sampLen - the number of samples contained in the input and output
- * vectors
- * pTapsQ15 - pointer to the vector that contains the filter coefficients,
- * represented in Q0.15 format (defined in section 1.6.5). Given
+ *
+ * pSrcDst - pointer to the vector of input samples to which the
+ * filter is applied
+ * sampLen - the number of samples contained in the input and output
+ * vectors
+ * pTapsQ15 - pointer to the vector that contains the filter coefficients,
+ * represented in Q0.15 format (defined in section 1.6.5). Given
* that:
- * -32768 = pTapsQ15(k) < 32768,
- * 0 = k <tapsLen,
- * the range on the actual filter coefficients is -1 = bK <1, and
- * therefore coefficient normalization may be required during the
- * filter design process.
- * tapsLen - the number of taps, or, equivalently, the filter order + 1
- * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
- * (state). The user is responsible for allocation, initialization,
- * and de-allocation. The filter memory elements are initialized to
- * zero in most applications.
- * pDelayLineIndex - pointer to the filter memory index that is maintained
- * internally by the function. The user should initialize the value
- * of this index to zero.
+ * -32768 = pTapsQ15(k) < 32768,
+ * 0 = k <tapsLen,
+ * the range on the actual filter coefficients is -1 = bK <1, and
+ * therefore coefficient normalization may be required during the
+ * filter design process.
+ * tapsLen - the number of taps, or, equivalently, the filter order + 1
+ * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
+ * (state). The user is responsible for allocation, initialization,
+ * and de-allocation. The filter memory elements are initialized to
+ * zero in most applications.
+ * pDelayLineIndex - pointer to the filter memory index that is maintained
+ * internally by the function. The user should initialize the value
+ * of this index to zero.
*
* Output Arguments:
- *
- * pSrcDst - pointer to the vector of filtered output samples
+ *
+ * pSrcDst - pointer to the vector of filtered output samples
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - One or more of the following pointers is NULL:
- * - pSrc,
- * - pDst,
- * - pSrcDst,
- * - pTapsQ15,
- * - pDelayLine, or
- * - pDelayLineIndex
- * - samplen < 0
- * - tapslen < 1
- * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen).
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - One or more of the following pointers is NULL:
+ * - pSrc,
+ * - pDst,
+ * - pSrcDst,
+ * - pTapsQ15,
+ * - pDelayLine, or
+ * - pDelayLineIndex
+ * - samplen < 0
+ * - tapslen < 1
+ * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen).
*
*/
OMXResult omxSP_FIR_Direct_S16_I (
@@ -373,59 +373,59 @@ OMXResult omxSP_FIR_Direct_S16_I (
* Function: omxSP_FIR_Direct_S16_Sfs (2.2.3.1.1)
*
* Description:
- * Block FIR filtering for 16-bit data type. This function applies
- * the FIR filter defined by the coefficient vector pTapsQ15 to a
- * vector of input data. The output is multiplied by 2 to the negative
+ * Block FIR filtering for 16-bit data type. This function applies
+ * the FIR filter defined by the coefficient vector pTapsQ15 to a
+ * vector of input data. The output is multiplied by 2 to the negative
* power of scalefactor (i.e., 2^-scalefactor) before returning to the caller.
- * Scaling and rounding conventions are defined in section 1.6.7.
- * The internal accumulator width must be at least 32 bits.
- * The result is undefined if any of the partially accumulated
- * values exceeds the range of a signed 32-bit integer.
+ * Scaling and rounding conventions are defined in section 1.6.7.
+ * The internal accumulator width must be at least 32 bits.
+ * The result is undefined if any of the partially accumulated
+ * values exceeds the range of a signed 32-bit integer.
*
* Input Arguments:
- *
- * pSrc - pointer to the vector of input samples to which the
- * filter is applied
- * sampLen - the number of samples contained in the input and output
- * vectors
- * pTapsQ15 - pointer to the vector that contains the filter coefficients,
- * represented in Q0.15 format (defined in section 1.6.5). Given
+ *
+ * pSrc - pointer to the vector of input samples to which the
+ * filter is applied
+ * sampLen - the number of samples contained in the input and output
+ * vectors
+ * pTapsQ15 - pointer to the vector that contains the filter coefficients,
+ * represented in Q0.15 format (defined in section 1.6.5). Given
* that:
- * -32768 = pTapsQ15(k) < 32768,
- * 0 = k <tapsLen,
- * the range on the actual filter coefficients is -1 = bK <1, and
- * therefore coefficient normalization may be required during the
- * filter design process.
- * tapsLen - the number of taps, or, equivalently, the filter order + 1
- * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
- * (state). The user is responsible for allocation, initialization,
- * and de-allocation. The filter memory elements are initialized to
- * zero in most applications.
- * pDelayLineIndex - pointer to the filter memory index that is maintained
- * internally by the function. The user should initialize the value
- * of this index to zero.
+ * -32768 = pTapsQ15(k) < 32768,
+ * 0 = k <tapsLen,
+ * the range on the actual filter coefficients is -1 = bK <1, and
+ * therefore coefficient normalization may be required during the
+ * filter design process.
+ * tapsLen - the number of taps, or, equivalently, the filter order + 1
+ * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
+ * (state). The user is responsible for allocation, initialization,
+ * and de-allocation. The filter memory elements are initialized to
+ * zero in most applications.
+ * pDelayLineIndex - pointer to the filter memory index that is maintained
+ * internally by the function. The user should initialize the value
+ * of this index to zero.
* scaleFactor - saturation fixed scalefactor
*
* Output Arguments:
- *
- * pDst - pointer to the vector of filtered output samples
+ *
+ * pDst - pointer to the vector of filtered output samples
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - One or more of the following pointers is NULL:
- * - pSrc,
- * - pDst,
- * - pSrcDst,
- * - pTapsQ15,
- * - pDelayLine, or
- * - pDelayLineIndex
- * - samplen < 0
- * - tapslen < 1
- * - scaleFactor < 0
- * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen).
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - One or more of the following pointers is NULL:
+ * - pSrc,
+ * - pDst,
+ * - pSrcDst,
+ * - pTapsQ15,
+ * - pDelayLine, or
+ * - pDelayLineIndex
+ * - samplen < 0
+ * - tapslen < 1
+ * - scaleFactor < 0
+ * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen).
*
*/
OMXResult omxSP_FIR_Direct_S16_Sfs (
@@ -445,59 +445,59 @@ OMXResult omxSP_FIR_Direct_S16_Sfs (
* Function: omxSP_FIR_Direct_S16_ISfs (2.2.3.1.1)
*
* Description:
- * Block FIR filtering for 16-bit data type. This function applies
- * the FIR filter defined by the coefficient vector pTapsQ15 to a
- * vector of input data. The output is multiplied by 2 to the negative
+ * Block FIR filtering for 16-bit data type. This function applies
+ * the FIR filter defined by the coefficient vector pTapsQ15 to a
+ * vector of input data. The output is multiplied by 2 to the negative
* power of scalefactor (i.e., 2^-scalefactor) before returning to the caller.
- * Scaling and rounding conventions are defined in section 1.6.7.
- * The internal accumulator width must be at least 32 bits.
- * The result is undefined if any of the partially accumulated
- * values exceeds the range of a signed 32-bit integer.
+ * Scaling and rounding conventions are defined in section 1.6.7.
+ * The internal accumulator width must be at least 32 bits.
+ * The result is undefined if any of the partially accumulated
+ * values exceeds the range of a signed 32-bit integer.
*
* Input Arguments:
- *
- * pSrcDst - pointer to the vector of input samples to which the
- * filter is applied
- * sampLen - the number of samples contained in the input and output
- * vectors
- * pTapsQ15 - pointer to the vector that contains the filter coefficients,
- * represented in Q0.15 format (defined in section 1.6.5). Given
+ *
+ * pSrcDst - pointer to the vector of input samples to which the
+ * filter is applied
+ * sampLen - the number of samples contained in the input and output
+ * vectors
+ * pTapsQ15 - pointer to the vector that contains the filter coefficients,
+ * represented in Q0.15 format (defined in section 1.6.5). Given
* that:
- * -32768 = pTapsQ15(k) < 32768,
- * 0 = k <tapsLen,
- * the range on the actual filter coefficients is -1 = bK <1, and
- * therefore coefficient normalization may be required during the
- * filter design process.
- * tapsLen - the number of taps, or, equivalently, the filter order + 1
- * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
- * (state). The user is responsible for allocation, initialization,
- * and de-allocation. The filter memory elements are initialized to
- * zero in most applications.
- * pDelayLineIndex - pointer to the filter memory index that is maintained
- * internally by the function. The user should initialize the value
- * of this index to zero.
+ * -32768 = pTapsQ15(k) < 32768,
+ * 0 = k <tapsLen,
+ * the range on the actual filter coefficients is -1 = bK <1, and
+ * therefore coefficient normalization may be required during the
+ * filter design process.
+ * tapsLen - the number of taps, or, equivalently, the filter order + 1
+ * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
+ * (state). The user is responsible for allocation, initialization,
+ * and de-allocation. The filter memory elements are initialized to
+ * zero in most applications.
+ * pDelayLineIndex - pointer to the filter memory index that is maintained
+ * internally by the function. The user should initialize the value
+ * of this index to zero.
* scaleFactor - saturation fixed scalefactor
*
* Output Arguments:
- *
- * pSrcDst - pointer to the vector of filtered output samples
+ *
+ * pSrcDst - pointer to the vector of filtered output samples
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - One or more of the following pointers is NULL:
- * - pSrc,
- * - pDst,
- * - pSrcDst,
- * - pTapsQ15,
- * - pDelayLine, or
- * - pDelayLineIndex
- * - samplen < 0
- * - tapslen < 1
- * - scaleFactor < 0
- * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen).
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - One or more of the following pointers is NULL:
+ * - pSrc,
+ * - pDst,
+ * - pSrcDst,
+ * - pTapsQ15,
+ * - pDelayLine, or
+ * - pDelayLineIndex
+ * - samplen < 0
+ * - tapslen < 1
+ * - scaleFactor < 0
+ * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen).
*
*/
OMXResult omxSP_FIR_Direct_S16_ISfs (
@@ -516,53 +516,53 @@ OMXResult omxSP_FIR_Direct_S16_ISfs (
* Function: omxSP_FIROne_Direct_S16 (2.2.3.1.2)
*
* Description:
- * Single-sample FIR filtering for 16-bit data type. These functions apply
- * the FIR filter defined by the coefficient vector pTapsQ15 to a single
- * sample of input data. The result is saturated with rounding if the
- * operation produces a value outside the range of a signed 16-bit integer.
+ * Single-sample FIR filtering for 16-bit data type. These functions apply
+ * the FIR filter defined by the coefficient vector pTapsQ15 to a single
+ * sample of input data. The result is saturated with rounding if the
+ * operation produces a value outside the range of a signed 16-bit integer.
* Rounding behavior is defined in:
- * section 1.6.7 "Integer Scaling and Rounding Conventions".
- * The internal accumulator width must be at least 32 bits. The result is
- * undefined if any of the partially accumulated values exceeds the range of a
+ * section 1.6.7 "Integer Scaling and Rounding Conventions".
+ * The internal accumulator width must be at least 32 bits. The result is
+ * undefined if any of the partially accumulated values exceeds the range of a
* signed 32-bit integer.
*
* Input Arguments:
- *
- * val - the single input sample to which the filter is
+ *
+ * val - the single input sample to which the filter is
* applied.
- * pTapsQ15 - pointer to the vector that contains the filter coefficients,
- * represented in Q0.15 format (as defined in section 1.6.5). Given
+ * pTapsQ15 - pointer to the vector that contains the filter coefficients,
+ * represented in Q0.15 format (as defined in section 1.6.5). Given
* that:
- * -32768 = pTapsQ15(k) < 32768,
- * 0 = k < tapsLen,
- * the range on the actual filter coefficients is -1 = bK <1, and
- * therefore coefficient normalization may be required during the
- * filter design process.
- * tapsLen - the number of taps, or, equivalently, the filter order + 1
- * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
- * (state). The user is responsible for allocation, initialization,
- * and de-allocation. The filter memory elements are initialized to
- * zero in most applications.
- * pDelayLineIndex - pointer to the filter memory index that is maintained
- * internally by the function. The user should initialize the value
- * of this index to zero.
+ * -32768 = pTapsQ15(k) < 32768,
+ * 0 = k < tapsLen,
+ * the range on the actual filter coefficients is -1 = bK <1, and
+ * therefore coefficient normalization may be required during the
+ * filter design process.
+ * tapsLen - the number of taps, or, equivalently, the filter order + 1
+ * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
+ * (state). The user is responsible for allocation, initialization,
+ * and de-allocation. The filter memory elements are initialized to
+ * zero in most applications.
+ * pDelayLineIndex - pointer to the filter memory index that is maintained
+ * internally by the function. The user should initialize the value
+ * of this index to zero.
*
* Output Arguments:
- *
- * pResult - pointer to the filtered output sample
+ *
+ * pResult - pointer to the filtered output sample
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - One or more of the following pointers is NULL:
- * - pResult,
- * - pTapsQ15,
- * - pDelayLine, or
- * - pDelayLineIndex
- * - tapslen < 1
- * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen)
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - One or more of the following pointers is NULL:
+ * - pResult,
+ * - pTapsQ15,
+ * - pDelayLine, or
+ * - pDelayLineIndex
+ * - tapslen < 1
+ * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen)
*
*/
OMXResult omxSP_FIROne_Direct_S16 (
@@ -580,53 +580,53 @@ OMXResult omxSP_FIROne_Direct_S16 (
* Function: omxSP_FIROne_Direct_S16_I (2.2.3.1.2)
*
* Description:
- * Single-sample FIR filtering for 16-bit data type. These functions apply
- * the FIR filter defined by the coefficient vector pTapsQ15 to a single
- * sample of input data. The result is saturated with rounding if the
- * operation produces a value outside the range of a signed 16-bit integer.
+ * Single-sample FIR filtering for 16-bit data type. These functions apply
+ * the FIR filter defined by the coefficient vector pTapsQ15 to a single
+ * sample of input data. The result is saturated with rounding if the
+ * operation produces a value outside the range of a signed 16-bit integer.
* Rounding behavior is defined in:
- * section 1.6.7 "Integer Scaling and Rounding Conventions".
- * The internal accumulator width must be at least 32 bits. The result is
- * undefined if any of the partially accumulated values exceeds the range of a
+ * section 1.6.7 "Integer Scaling and Rounding Conventions".
+ * The internal accumulator width must be at least 32 bits. The result is
+ * undefined if any of the partially accumulated values exceeds the range of a
* signed 32-bit integer.
*
* Input Arguments:
- *
- * pValResult - pointer to the single input sample to which the filter is
- * applied.
- * pTapsQ15 - pointer to the vector that contains the filter coefficients,
- * represented in Q0.15 format (as defined in section 1.6.5). Given
+ *
+ * pValResult - pointer to the single input sample to which the filter is
+ * applied.
+ * pTapsQ15 - pointer to the vector that contains the filter coefficients,
+ * represented in Q0.15 format (as defined in section 1.6.5). Given
* that:
- * -32768 = pTapsQ15(k) < 32768,
- * 0 = k < tapsLen,
- * the range on the actual filter coefficients is -1 = bK <1, and
- * therefore coefficient normalization may be required during the
- * filter design process.
- * tapsLen - the number of taps, or, equivalently, the filter order + 1
- * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
- * (state). The user is responsible for allocation, initialization,
- * and de-allocation. The filter memory elements are initialized to
- * zero in most applications.
- * pDelayLineIndex - pointer to the filter memory index that is maintained
- * internally by the function. The user should initialize the value
- * of this index to zero.
+ * -32768 = pTapsQ15(k) < 32768,
+ * 0 = k < tapsLen,
+ * the range on the actual filter coefficients is -1 = bK <1, and
+ * therefore coefficient normalization may be required during the
+ * filter design process.
+ * tapsLen - the number of taps, or, equivalently, the filter order + 1
+ * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
+ * (state). The user is responsible for allocation, initialization,
+ * and de-allocation. The filter memory elements are initialized to
+ * zero in most applications.
+ * pDelayLineIndex - pointer to the filter memory index that is maintained
+ * internally by the function. The user should initialize the value
+ * of this index to zero.
*
* Output Arguments:
- *
- * pValResult - pointer to the filtered output sample
+ *
+ * pValResult - pointer to the filtered output sample
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - One or more of the following pointers is NULL:
- * - pValResult,
- * - pTapsQ15,
- * - pDelayLine, or
- * - pDelayLineIndex
- * - tapslen < 1
- * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen)
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - One or more of the following pointers is NULL:
+ * - pValResult,
+ * - pTapsQ15,
+ * - pDelayLine, or
+ * - pDelayLineIndex
+ * - tapslen < 1
+ * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen)
*
*/
OMXResult omxSP_FIROne_Direct_S16_I (
@@ -643,54 +643,54 @@ OMXResult omxSP_FIROne_Direct_S16_I (
* Function: omxSP_FIROne_Direct_S16_Sfs (2.2.3.1.2)
*
* Description:
- * Single-sample FIR filtering for 16-bit data type. These functions apply
- * the FIR filter defined by the coefficient vector pTapsQ15 to a single
- * sample of input data. The output is multiplied by 2 to the negative power
- * of scalefactor (i.e., 2^-scalefactor) before returning to the user.
- * Scaling and rounding conventions are defined in section 1.6.7.
- * The internal accumulator width must be at least 32 bits.
- * The result is undefined if any of the partially accumulated values exceeds
- * the range of a signed 32-bit integer.
+ * Single-sample FIR filtering for 16-bit data type. These functions apply
+ * the FIR filter defined by the coefficient vector pTapsQ15 to a single
+ * sample of input data. The output is multiplied by 2 to the negative power
+ * of scalefactor (i.e., 2^-scalefactor) before returning to the user.
+ * Scaling and rounding conventions are defined in section 1.6.7.
+ * The internal accumulator width must be at least 32 bits.
+ * The result is undefined if any of the partially accumulated values exceeds
+ * the range of a signed 32-bit integer.
*
* Input Arguments:
- *
- * val - the single input sample to which the filter is
- * applied.
- * pTapsQ15 - pointer to the vector that contains the filter coefficients,
- * represented in Q0.15 format (as defined in section 1.6.5). Given
+ *
+ * val - the single input sample to which the filter is
+ * applied.
+ * pTapsQ15 - pointer to the vector that contains the filter coefficients,
+ * represented in Q0.15 format (as defined in section 1.6.5). Given
* that:
- * -32768 = pTapsQ15(k) < 32768,
- * 0 = k < tapsLen,
- * the range on the actual filter coefficients is -1 = bK <1, and
- * therefore coefficient normalization may be required during the
- * filter design process.
- * tapsLen - the number of taps, or, equivalently, the filter order + 1
- * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
- * (state). The user is responsible for allocation, initialization,
- * and de-allocation. The filter memory elements are initialized to
- * zero in most applications.
- * pDelayLineIndex - pointer to the filter memory index that is maintained
- * internally by the function. The user should initialize the value
- * of this index to zero.
- * scaleFactor - saturation fixed scaleFactor
+ * -32768 = pTapsQ15(k) < 32768,
+ * 0 = k < tapsLen,
+ * the range on the actual filter coefficients is -1 = bK <1, and
+ * therefore coefficient normalization may be required during the
+ * filter design process.
+ * tapsLen - the number of taps, or, equivalently, the filter order + 1
+ * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
+ * (state). The user is responsible for allocation, initialization,
+ * and de-allocation. The filter memory elements are initialized to
+ * zero in most applications.
+ * pDelayLineIndex - pointer to the filter memory index that is maintained
+ * internally by the function. The user should initialize the value
+ * of this index to zero.
+ * scaleFactor - saturation fixed scaleFactor
*
* Output Arguments:
- *
- * pResult - pointer to the filtered output sample
+ *
+ * pResult - pointer to the filtered output sample
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - One or more of the following pointers is NULL:
- * - pResult,
- * - pTapsQ15,
- * - pDelayLine, or
- * - pDelayLineIndex
- * - tapslen < 1
- * - scaleFactor < 0
- * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen)
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - One or more of the following pointers is NULL:
+ * - pResult,
+ * - pTapsQ15,
+ * - pDelayLine, or
+ * - pDelayLineIndex
+ * - tapslen < 1
+ * - scaleFactor < 0
+ * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen)
*
*/
OMXResult omxSP_FIROne_Direct_S16_Sfs (
@@ -709,54 +709,54 @@ OMXResult omxSP_FIROne_Direct_S16_Sfs (
* Function: omxSP_FIROne_Direct_S16_ISfs (2.2.3.1.2)
*
* Description:
- * Single-sample FIR filtering for 16-bit data type. These functions apply
- * the FIR filter defined by the coefficient vector pTapsQ15 to a single
- * sample of input data. The output is multiplied by 2 to the negative power
- * of scalefactor (i.e., 2^-scalefactor) before returning to the user.
- * Scaling and rounding conventions are defined in section 1.6.7.
- * The internal accumulator width must be at least 32 bits.
- * The result is undefined if any of the partially accumulated values exceeds
- * the range of a signed 32-bit integer.
+ * Single-sample FIR filtering for 16-bit data type. These functions apply
+ * the FIR filter defined by the coefficient vector pTapsQ15 to a single
+ * sample of input data. The output is multiplied by 2 to the negative power
+ * of scalefactor (i.e., 2^-scalefactor) before returning to the user.
+ * Scaling and rounding conventions are defined in section 1.6.7.
+ * The internal accumulator width must be at least 32 bits.
+ * The result is undefined if any of the partially accumulated values exceeds
+ * the range of a signed 32-bit integer.
*
* Input Arguments:
- *
- * pValResult - the pointer to a single input sample to which the filter is
- * applied.
- * pTapsQ15 - pointer to the vector that contains the filter coefficients,
- * represented in Q0.15 format (as defined in section 1.6.5). Given
+ *
+ * pValResult - the pointer to a single input sample to which the filter is
+ * applied.
+ * pTapsQ15 - pointer to the vector that contains the filter coefficients,
+ * represented in Q0.15 format (as defined in section 1.6.5). Given
* that:
- * -32768 = pTapsQ15(k) < 32768,
- * 0 = k < tapsLen,
- * the range on the actual filter coefficients is -1 = bK <1, and
- * therefore coefficient normalization may be required during the
- * filter design process.
- * tapsLen - the number of taps, or, equivalently, the filter order + 1
- * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
- * (state). The user is responsible for allocation, initialization,
- * and de-allocation. The filter memory elements are initialized to
- * zero in most applications.
- * pDelayLineIndex - pointer to the filter memory index that is maintained
- * internally by the function. The user should initialize the value
- * of this index to zero.
- * scaleFactor - saturation fixed scaleFactor
+ * -32768 = pTapsQ15(k) < 32768,
+ * 0 = k < tapsLen,
+ * the range on the actual filter coefficients is -1 = bK <1, and
+ * therefore coefficient normalization may be required during the
+ * filter design process.
+ * tapsLen - the number of taps, or, equivalently, the filter order + 1
+ * pDelayLine - pointer to the 2.tapsLen -element filter memory buffer
+ * (state). The user is responsible for allocation, initialization,
+ * and de-allocation. The filter memory elements are initialized to
+ * zero in most applications.
+ * pDelayLineIndex - pointer to the filter memory index that is maintained
+ * internally by the function. The user should initialize the value
+ * of this index to zero.
+ * scaleFactor - saturation fixed scaleFactor
*
* Output Arguments:
- *
- * pValResult - pointer to the filtered output sample
+ *
+ * pValResult - pointer to the filtered output sample
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - One or more of the following pointers is NULL:
- * - pValResult,
- * - pTapsQ15,
- * - pDelayLine, or
- * - pDelayLineIndex
- * - tapslen < 1
- * - scaleFactor < 0
- * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen)
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - One or more of the following pointers is NULL:
+ * - pValResult,
+ * - pTapsQ15,
+ * - pDelayLine, or
+ * - pDelayLineIndex
+ * - tapslen < 1
+ * - scaleFactor < 0
+ * - *pDelayLineIndex < 0 or *pDelayLineIndex >= (2 * tapslen)
*
*/
OMXResult omxSP_FIROne_Direct_S16_ISfs (
@@ -774,54 +774,54 @@ OMXResult omxSP_FIROne_Direct_S16_ISfs (
* Function: omxSP_IIR_Direct_S16 (2.2.3.2.1)
*
* Description:
- * Block IIR filtering for 16-bit data. This function applies the direct form
- * II IIR filter defined by the coefficient vector pTaps to a vector of input
- * data. The internal accumulator width must be at least 32 bits, and the
- * result is saturated if the operation produces a value outside the range of
- * a signed 16-bit integer, i.e., the output will saturate to 0x8000 (-32768)
- * for a negative overflow or 0x7fff (32767) for a positive overflow. The
- * result is undefined if any of the partially accumulated values exceeds the
- * range of a signed 32-bit integer.
+ * Block IIR filtering for 16-bit data. This function applies the direct form
+ * II IIR filter defined by the coefficient vector pTaps to a vector of input
+ * data. The internal accumulator width must be at least 32 bits, and the
+ * result is saturated if the operation produces a value outside the range of
+ * a signed 16-bit integer, i.e., the output will saturate to 0x8000 (-32768)
+ * for a negative overflow or 0x7fff (32767) for a positive overflow. The
+ * result is undefined if any of the partially accumulated values exceeds the
+ * range of a signed 32-bit integer.
*
* Input Arguments:
- *
- * pSrc - pointer to the vector of input samples to which the
- * filter is applied
- * len - the number of samples contained in both the input and output
- * vectors
- * pTaps - pointer to the 2L+2-element vector that contains the combined
- * numerator and denominator filter coefficients from the system
- * transfer function, H(z). Coefficient scaling and coefficient
- * vector organization should follow the conventions described
- * above. The value of the coefficient scaleFactor exponent must be
- * non-negative (sf=0).
- * order - the maximum of the degrees of the numerator and denominator
- * coefficient polynomials from the system transfer function, H(z).
- * In the notation of section 2.2.3.2, the parameter
- * order=max(K,M)=L gives the maximum delay, in samples, used to
- * compute each output sample.
- * pDelayLine - pointer to the L-element filter memory buffer (state). The
- * user is responsible for allocation, initialization, and
- * deallocation. The filter memory elements are initialized to zero
- * in most applications.
+ *
+ * pSrc - pointer to the vector of input samples to which the
+ * filter is applied
+ * len - the number of samples contained in both the input and output
+ * vectors
+ * pTaps - pointer to the 2L+2-element vector that contains the combined
+ * numerator and denominator filter coefficients from the system
+ * transfer function, H(z). Coefficient scaling and coefficient
+ * vector organization should follow the conventions described
+ * above. The value of the coefficient scaleFactor exponent must be
+ * non-negative (sf=0).
+ * order - the maximum of the degrees of the numerator and denominator
+ * coefficient polynomials from the system transfer function, H(z).
+ * In the notation of section 2.2.3.2, the parameter
+ * order=max(K,M)=L gives the maximum delay, in samples, used to
+ * compute each output sample.
+ * pDelayLine - pointer to the L-element filter memory buffer (state). The
+ * user is responsible for allocation, initialization, and
+ * deallocation. The filter memory elements are initialized to zero
+ * in most applications.
*
* Output Arguments:
- *
- * pDst - pointer to the vector of filtered output samples
+ *
+ * pDst - pointer to the vector of filtered output samples
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - one or more of the following pointers is NULL:
- * - pSrc,
- * - pDst,
- * - pTaps, or
- * - pDelayLine.
- * - len < 0
- * - pTaps[order+1] < 0 (negative scaling)
- * - order < 1
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - one or more of the following pointers is NULL:
+ * - pSrc,
+ * - pDst,
+ * - pTaps, or
+ * - pDelayLine.
+ * - len < 0
+ * - pTaps[order+1] < 0 (negative scaling)
+ * - order < 1
*
*/
OMXResult omxSP_IIR_Direct_S16 (
@@ -839,53 +839,53 @@ OMXResult omxSP_IIR_Direct_S16 (
* Function: omxSP_IIR_Direct_S16_I (2.2.3.2.1)
*
* Description:
- * Block IIR filtering for 16-bit data. This function applies the direct form
- * II IIR filter defined by the coefficient vector pTaps to a vector of input
- * data. The internal accumulator width must be at least 32 bits, and the
- * result is saturated if the operation produces a value outside the range of
- * a signed 16-bit integer, i.e., the output will saturate to 0x8000 (-32768)
- * for a negative overflow or 0x7fff (32767) for a positive overflow. The
- * result is undefined if any of the partially accumulated values exceeds the
- * range of a signed 32-bit integer.
+ * Block IIR filtering for 16-bit data. This function applies the direct form
+ * II IIR filter defined by the coefficient vector pTaps to a vector of input
+ * data. The internal accumulator width must be at least 32 bits, and the
+ * result is saturated if the operation produces a value outside the range of
+ * a signed 16-bit integer, i.e., the output will saturate to 0x8000 (-32768)
+ * for a negative overflow or 0x7fff (32767) for a positive overflow. The
+ * result is undefined if any of the partially accumulated values exceeds the
+ * range of a signed 32-bit integer.
*
* Input Arguments:
- *
- * pSrcDst - pointer to the vector of input samples to which the
- * filter is applied
- * len - the number of samples contained in both the input and output
- * vectors
- * pTaps - pointer to the 2L+2-element vector that contains the combined
- * numerator and denominator filter coefficients from the system
- * transfer function, H(z). Coefficient scaling and coefficient
- * vector organization should follow the conventions described
- * above. The value of the coefficient scaleFactor exponent must be
- * non-negative (sf>=0).
- * order - the maximum of the degrees of the numerator and denominator
- * coefficient polynomials from the system transfer function, H(z).
- * In the notation of section 2.2.3.2, the parameter
- * order=max(K,M)=L gives the maximum delay, in samples, used to
- * compute each output sample.
- * pDelayLine - pointer to the L-element filter memory buffer (state). The
- * user is responsible for allocation, initialization, and
- * deallocation. The filter memory elements are initialized to zero
- * in most applications.
+ *
+ * pSrcDst - pointer to the vector of input samples to which the
+ * filter is applied
+ * len - the number of samples contained in both the input and output
+ * vectors
+ * pTaps - pointer to the 2L+2-element vector that contains the combined
+ * numerator and denominator filter coefficients from the system
+ * transfer function, H(z). Coefficient scaling and coefficient
+ * vector organization should follow the conventions described
+ * above. The value of the coefficient scaleFactor exponent must be
+ * non-negative (sf>=0).
+ * order - the maximum of the degrees of the numerator and denominator
+ * coefficient polynomials from the system transfer function, H(z).
+ * In the notation of section 2.2.3.2, the parameter
+ * order=max(K,M)=L gives the maximum delay, in samples, used to
+ * compute each output sample.
+ * pDelayLine - pointer to the L-element filter memory buffer (state). The
+ * user is responsible for allocation, initialization, and
+ * deallocation. The filter memory elements are initialized to zero
+ * in most applications.
*
* Output Arguments:
- *
- * pSrcDst - pointer to the vector of filtered output samples
+ *
+ * pSrcDst - pointer to the vector of filtered output samples
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - one or more of the following pointers is NULL:
- * - pSrcDst,
- * - pTaps, or
- * - pDelayLine.
- * - len < 0
- * - pTaps[order+1] < 0 (negative scaling)
- * - order < 1
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - one or more of the following pointers is NULL:
+ * - pSrcDst,
+ * - pTaps, or
+ * - pDelayLine.
+ * - len < 0
+ * - pTaps[order+1] < 0 (negative scaling)
+ * - order < 1
*
*/
OMXResult omxSP_IIR_Direct_S16_I (
@@ -902,48 +902,48 @@ OMXResult omxSP_IIR_Direct_S16_I (
* Function: omxSP_IIROne_Direct_S16 (2.2.3.2.2)
*
* Description:
- * Single sample IIR filtering for 16-bit data. This function applies the
- * direct form II IIR filter defined by the coefficient vector pTaps to a
- * single sample of input data. The internal accumulator width must be at
- * least 32 bits, and the result is saturated if the operation produces a
- * value outside the range of a signed 16-bit integer, i.e., the output will
- * saturate to 0x8000 (-32768) for a negative overflow or 0x7fff (32767) for a
- * positive overflow. The result is undefined if any of the partially
- * accumulated values exceeds the range of a signed 32-bit integer.
+ * Single sample IIR filtering for 16-bit data. This function applies the
+ * direct form II IIR filter defined by the coefficient vector pTaps to a
+ * single sample of input data. The internal accumulator width must be at
+ * least 32 bits, and the result is saturated if the operation produces a
+ * value outside the range of a signed 16-bit integer, i.e., the output will
+ * saturate to 0x8000 (-32768) for a negative overflow or 0x7fff (32767) for a
+ * positive overflow. The result is undefined if any of the partially
+ * accumulated values exceeds the range of a signed 32-bit integer.
*
* Input Arguments:
- *
- * val - the single input sample to which the filter is
- * applied.
- * pTaps - pointer to the 2L+2 -element vector that contains the combined
- * numerator and denominator filter coefficients from the system
- * transfer function, H(z). Coefficient scaling and coefficient
- * vector organization should follow the conventions described
- * above. The value of the coefficient scaleFactor exponent must be
- * non-negative (sf>=0).
- * order - the maximum of the degrees of the numerator and denominator
- * coefficient polynomials from the system transfer function, H(z).
- * In the notation of section 2.2.3.2, the parameter
- * order=max(K,M)=L gives the maximum delay, in samples, used to
- * compute each output sample.
- * pDelayLine - pointer to the L-element filter memory buffer (state). The
- * user is responsible for allocation, initialization, and
- * deallocation. The filter memory elements are initialized to zero
- * in most applications.
+ *
+ * val - the single input sample to which the filter is
+ * applied.
+ * pTaps - pointer to the 2L+2 -element vector that contains the combined
+ * numerator and denominator filter coefficients from the system
+ * transfer function, H(z). Coefficient scaling and coefficient
+ * vector organization should follow the conventions described
+ * above. The value of the coefficient scaleFactor exponent must be
+ * non-negative (sf>=0).
+ * order - the maximum of the degrees of the numerator and denominator
+ * coefficient polynomials from the system transfer function, H(z).
+ * In the notation of section 2.2.3.2, the parameter
+ * order=max(K,M)=L gives the maximum delay, in samples, used to
+ * compute each output sample.
+ * pDelayLine - pointer to the L-element filter memory buffer (state). The
+ * user is responsible for allocation, initialization, and
+ * deallocation. The filter memory elements are initialized to zero
+ * in most applications.
*
* Output Arguments:
- *
- * pResult - pointer to the filtered output sample
+ *
+ * pResult - pointer to the filtered output sample
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - one or more of the following pointers is NULL: pResult,
- * pTaps, or pDelayLine.
- * - order < 1
- * - pTaps[order+1] < 0 (negative scaling)
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - one or more of the following pointers is NULL: pResult,
+ * pTaps, or pDelayLine.
+ * - order < 1
+ * - pTaps[order+1] < 0 (negative scaling)
*
*/
OMXResult omxSP_IIROne_Direct_S16 (
@@ -960,48 +960,48 @@ OMXResult omxSP_IIROne_Direct_S16 (
* Function: omxSP_IIROne_Direct_S16_I (2.2.3.2.2)
*
* Description:
- * Single sample IIR filtering for 16-bit data. This function applies the
- * direct form II IIR filter defined by the coefficient vector pTaps to a
- * single sample of input data. The internal accumulator width must be at
- * least 32 bits, and the result is saturated if the operation produces a
- * value outside the range of a signed 16-bit integer, i.e., the output will
- * saturate to 0x8000 (-32768) for a negative overflow or 0x7fff (32767) for a
- * positive overflow. The result is undefined if any of the partially
- * accumulated values exceeds the range of a signed 32-bit integer.
+ * Single sample IIR filtering for 16-bit data. This function applies the
+ * direct form II IIR filter defined by the coefficient vector pTaps to a
+ * single sample of input data. The internal accumulator width must be at
+ * least 32 bits, and the result is saturated if the operation produces a
+ * value outside the range of a signed 16-bit integer, i.e., the output will
+ * saturate to 0x8000 (-32768) for a negative overflow or 0x7fff (32767) for a
+ * positive overflow. The result is undefined if any of the partially
+ * accumulated values exceeds the range of a signed 32-bit integer.
*
* Input Arguments:
- *
- * pValResult - pointer to the single input sample to which the filter is
+ *
+ * pValResult - pointer to the single input sample to which the filter is
* applied.
- * pTaps - pointer to the 2L+2 -element vector that contains the combined
- * numerator and denominator filter coefficients from the system
- * transfer function, H(z). Coefficient scaling and coefficient
- * vector organization should follow the conventions described
- * above. The value of the coefficient scaleFactor exponent must be
- * non-negative (sf>=0).
- * order - the maximum of the degrees of the numerator and denominator
- * coefficient polynomials from the system transfer function, H(z).
- * In the notation of section 2.2.3.2, the parameter
- * order=max(K,M)=L gives the maximum delay, in samples, used to
- * compute each output sample.
- * pDelayLine - pointer to the L-element filter memory buffer (state). The
- * user is responsible for allocation, initialization, and
- * deallocation. The filter memory elements are initialized to zero
- * in most applications.
+ * pTaps - pointer to the 2L+2 -element vector that contains the combined
+ * numerator and denominator filter coefficients from the system
+ * transfer function, H(z). Coefficient scaling and coefficient
+ * vector organization should follow the conventions described
+ * above. The value of the coefficient scaleFactor exponent must be
+ * non-negative (sf>=0).
+ * order - the maximum of the degrees of the numerator and denominator
+ * coefficient polynomials from the system transfer function, H(z).
+ * In the notation of section 2.2.3.2, the parameter
+ * order=max(K,M)=L gives the maximum delay, in samples, used to
+ * compute each output sample.
+ * pDelayLine - pointer to the L-element filter memory buffer (state). The
+ * user is responsible for allocation, initialization, and
+ * deallocation. The filter memory elements are initialized to zero
+ * in most applications.
*
* Output Arguments:
- *
- * pValResult - pointer to the filtered output sample
+ *
+ * pValResult - pointer to the filtered output sample
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - one or more of the following pointers is NULL:
- * pValResult, pTaps, or pDelayLine.
- * - order < 1
- * - pTaps[order+1] < 0 (negative scaling)
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - one or more of the following pointers is NULL:
+ * pValResult, pTaps, or pDelayLine.
+ * - order < 1
+ * - pTaps[order+1] < 0 (negative scaling)
*
*/
OMXResult omxSP_IIROne_Direct_S16_I (
@@ -1017,47 +1017,47 @@ OMXResult omxSP_IIROne_Direct_S16_I (
* Function: omxSP_IIR_BiQuadDirect_S16 (2.2.3.3.1)
*
* Description:
- * Block biquad IIR filtering for 16-bit data type. This function applies the
- * direct form II biquad IIR cascade defined by the coefficient vector pTaps
- * to a vector of input data. The internal accumulator width must be at least
- * 32 bits, and the result is saturated if the operation produces a value
- * outside the range of a signed 16-bit integer, i.e., the output will
- * saturate to 0x8000 (-32768) for a negative overflow or 0x7fff (32767) for a
- * positive overflow. The result is undefined if any of the partially
- * accumulated values exceeds the range of a signed 32-bit integer.
+ * Block biquad IIR filtering for 16-bit data type. This function applies the
+ * direct form II biquad IIR cascade defined by the coefficient vector pTaps
+ * to a vector of input data. The internal accumulator width must be at least
+ * 32 bits, and the result is saturated if the operation produces a value
+ * outside the range of a signed 16-bit integer, i.e., the output will
+ * saturate to 0x8000 (-32768) for a negative overflow or 0x7fff (32767) for a
+ * positive overflow. The result is undefined if any of the partially
+ * accumulated values exceeds the range of a signed 32-bit integer.
*
* Input Arguments:
- *
- * pSrc - pointer to the vector of input samples to which the
- * filter is applied
- * len - the number of samples contained in both the input and output
- * vectors
- * pTaps - pointer to the 6P -element vector that contains the combined
- * numerator and denominator filter coefficients from the biquad
- * cascade. Coefficient scaling and coefficient vector organization
- * should follow the conventions described above. The value of the
- * coefficient scaleFactor exponent must be non-negative. (sfp>=0).
- * numBiquad - the number of biquads contained in the IIR filter cascade:
- * (P)
- * pDelayLine - pointer to the 2P -element filter memory buffer (state).
- * The user is responsible for allocation, initialization, and
- * de-allocation. The filter memory elements are initialized to
- * zero in most applications.
+ *
+ * pSrc - pointer to the vector of input samples to which the
+ * filter is applied
+ * len - the number of samples contained in both the input and output
+ * vectors
+ * pTaps - pointer to the 6P -element vector that contains the combined
+ * numerator and denominator filter coefficients from the biquad
+ * cascade. Coefficient scaling and coefficient vector organization
+ * should follow the conventions described above. The value of the
+ * coefficient scaleFactor exponent must be non-negative. (sfp>=0).
+ * numBiquad - the number of biquads contained in the IIR filter cascade:
+ * (P)
+ * pDelayLine - pointer to the 2P -element filter memory buffer (state).
+ * The user is responsible for allocation, initialization, and
+ * de-allocation. The filter memory elements are initialized to
+ * zero in most applications.
*
* Output Arguments:
- *
- * pDst - pointer to the vector of filtered output samples
+ *
+ * pDst - pointer to the vector of filtered output samples
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - one or more of the following pointers is NULL: pSrc, pDst,
- * pTaps, or pDelayLine.
- * - len < 0
- * - numBiquad < 1
- * - pTaps[3+n*6] < 0, for 0 <= n < numBiquad (negative scaling)
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - one or more of the following pointers is NULL: pSrc, pDst,
+ * pTaps, or pDelayLine.
+ * - len < 0
+ * - numBiquad < 1
+ * - pTaps[3+n*6] < 0, for 0 <= n < numBiquad (negative scaling)
*
*/
OMXResult omxSP_IIR_BiQuadDirect_S16 (
@@ -1075,47 +1075,47 @@ OMXResult omxSP_IIR_BiQuadDirect_S16 (
* Function: omxSP_IIR_BiQuadDirect_S16_I (2.2.3.3.1)
*
* Description:
- * Block biquad IIR filtering for 16-bit data type. This function applies the
- * direct form II biquad IIR cascade defined by the coefficient vector pTaps
- * to a vector of input data. The internal accumulator width must be at least
- * 32 bits, and the result is saturated if the operation produces a value
- * outside the range of a signed 16-bit integer, i.e., the output will
- * saturate to 0x8000 (-32768) for a negative overflow or 0x7fff (32767) for a
- * positive overflow. The result is undefined if any of the partially
- * accumulated values exceeds the range of a signed 32-bit integer.
+ * Block biquad IIR filtering for 16-bit data type. This function applies the
+ * direct form II biquad IIR cascade defined by the coefficient vector pTaps
+ * to a vector of input data. The internal accumulator width must be at least
+ * 32 bits, and the result is saturated if the operation produces a value
+ * outside the range of a signed 16-bit integer, i.e., the output will
+ * saturate to 0x8000 (-32768) for a negative overflow or 0x7fff (32767) for a
+ * positive overflow. The result is undefined if any of the partially
+ * accumulated values exceeds the range of a signed 32-bit integer.
*
* Input Arguments:
- *
- * pSrcDst - pointer to the vector of input samples to which the
- * filter is applied
- * len - the number of samples contained in both the input and output
- * vectors
- * pTaps - pointer to the 6P -element vector that contains the combined
- * numerator and denominator filter coefficients from the biquad
- * cascade. Coefficient scaling and coefficient vector organization
- * should follow the conventions described above. The value of the
- * coefficient scaleFactor exponent must be non-negative. (sfp>=0).
- * numBiquad - the number of biquads contained in the IIR filter cascade:
- * (P)
- * pDelayLine - pointer to the 2P -element filter memory buffer (state).
- * The user is responsible for allocation, initialization, and
- * de-allocation. The filter memory elements are initialized to
- * zero in most applications.
+ *
+ * pSrcDst - pointer to the vector of input samples to which the
+ * filter is applied
+ * len - the number of samples contained in both the input and output
+ * vectors
+ * pTaps - pointer to the 6P -element vector that contains the combined
+ * numerator and denominator filter coefficients from the biquad
+ * cascade. Coefficient scaling and coefficient vector organization
+ * should follow the conventions described above. The value of the
+ * coefficient scaleFactor exponent must be non-negative. (sfp>=0).
+ * numBiquad - the number of biquads contained in the IIR filter cascade:
+ * (P)
+ * pDelayLine - pointer to the 2P -element filter memory buffer (state).
+ * The user is responsible for allocation, initialization, and
+ * de-allocation. The filter memory elements are initialized to
+ * zero in most applications.
*
* Output Arguments:
- *
- * pSrcDst - pointer to the vector of filtered output samples
+ *
+ * pSrcDst - pointer to the vector of filtered output samples
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - one or more of the following pointers is NULL:
- * pSrcDst, pTaps, or pDelayLine.
- * - len < 0
- * - numBiquad < 1
- * - pTaps[3+n*6] < 0, for 0 <= n < numBiquad (negative scaling)
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - one or more of the following pointers is NULL:
+ * pSrcDst, pTaps, or pDelayLine.
+ * - len < 0
+ * - numBiquad < 1
+ * - pTaps[3+n*6] < 0, for 0 <= n < numBiquad (negative scaling)
*
*/
OMXResult omxSP_IIR_BiQuadDirect_S16_I (
@@ -1132,45 +1132,45 @@ OMXResult omxSP_IIR_BiQuadDirect_S16_I (
* Function: omxSP_IIROne_BiQuadDirect_S16 (2.2.3.3.2)
*
* Description:
- * Single-sample biquad IIR filtering for 16-bit data type. This function
- * applies the direct form II biquad IIR cascade defined by the coefficient
- * vector pTaps to a single sample of input data. The internal accumulator
- * width must be at least 32 bits, and the result is saturated if the
- * operation produces a value outside the range of a signed 16-bit integer,
- * i.e., the output will saturate to 0x8000 (-32768) for a negative overflow
- * or 0x7fff (32767) for a positive overflow. The result is undefined if any
- * of the partially accumulated values exceeds the range of a signed 32-bit
- * integer.
+ * Single-sample biquad IIR filtering for 16-bit data type. This function
+ * applies the direct form II biquad IIR cascade defined by the coefficient
+ * vector pTaps to a single sample of input data. The internal accumulator
+ * width must be at least 32 bits, and the result is saturated if the
+ * operation produces a value outside the range of a signed 16-bit integer,
+ * i.e., the output will saturate to 0x8000 (-32768) for a negative overflow
+ * or 0x7fff (32767) for a positive overflow. The result is undefined if any
+ * of the partially accumulated values exceeds the range of a signed 32-bit
+ * integer.
*
* Input Arguments:
- *
- * val - the single input sample to which the filter is
- * applied.
- * pTaps - pointer to the 6P-element vector that contains the combined
- * numerator and denominator filter coefficients from the biquad
- * cascade. Coefficient scaling and coefficient vector organization
- * should follow the conventions described above. The value of the
- * coefficient scalefactor exponent must be non-negative: (sfp>=0).
- * numBiquad - the number of biquads contained in the IIR filter cascade:
- * (P)
- * pDelayLine - pointer to the 2p-element filter memory buffer (state). The
- * user is responsible for allocation, initialization, and
- * deallocation. The filter memory elements are initialized to zero
- * in most applications.
+ *
+ * val - the single input sample to which the filter is
+ * applied.
+ * pTaps - pointer to the 6P-element vector that contains the combined
+ * numerator and denominator filter coefficients from the biquad
+ * cascade. Coefficient scaling and coefficient vector organization
+ * should follow the conventions described above. The value of the
+ * coefficient scalefactor exponent must be non-negative: (sfp>=0).
+ * numBiquad - the number of biquads contained in the IIR filter cascade:
+ * (P)
+ * pDelayLine - pointer to the 2p-element filter memory buffer (state). The
+ * user is responsible for allocation, initialization, and
+ * deallocation. The filter memory elements are initialized to zero
+ * in most applications.
*
* Output Arguments:
- *
- * pResult - pointer to the filtered output sample
+ *
+ * pResult - pointer to the filtered output sample
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - one or more of the following pointers is NULL: pResult,
- * pValResult, pTaps, or pDelayLine.
- * - numBiquad < 1
- * - pTaps[3+n*6] < 0, for 0 <= n < numBiquad (negative scaling)
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - one or more of the following pointers is NULL: pResult,
+ * pValResult, pTaps, or pDelayLine.
+ * - numBiquad < 1
+ * - pTaps[3+n*6] < 0, for 0 <= n < numBiquad (negative scaling)
*
*/
OMXResult omxSP_IIROne_BiQuadDirect_S16 (
@@ -1187,45 +1187,45 @@ OMXResult omxSP_IIROne_BiQuadDirect_S16 (
* Function: omxSP_IIROne_BiQuadDirect_S16_I (2.2.3.3.2)
*
* Description:
- * Single-sample biquad IIR filtering for 16-bit data type. This function
- * applies the direct form II biquad IIR cascade defined by the coefficient
- * vector pTaps to a single sample of input data. The internal accumulator
- * width must be at least 32 bits, and the result is saturated if the
- * operation produces a value outside the range of a signed 16-bit integer,
- * i.e., the output will saturate to 0x8000 (-32768) for a negative overflow
- * or 0x7fff (32767) for a positive overflow. The result is undefined if any
- * of the partially accumulated values exceeds the range of a signed 32-bit
- * integer.
+ * Single-sample biquad IIR filtering for 16-bit data type. This function
+ * applies the direct form II biquad IIR cascade defined by the coefficient
+ * vector pTaps to a single sample of input data. The internal accumulator
+ * width must be at least 32 bits, and the result is saturated if the
+ * operation produces a value outside the range of a signed 16-bit integer,
+ * i.e., the output will saturate to 0x8000 (-32768) for a negative overflow
+ * or 0x7fff (32767) for a positive overflow. The result is undefined if any
+ * of the partially accumulated values exceeds the range of a signed 32-bit
+ * integer.
*
* Input Arguments:
- *
- * pValResult - pointer to the single input sample to which the filter is
- * applied.
- * pTaps - pointer to the 6P-element vector that contains the combined
- * numerator and denominator filter coefficients from the biquad
- * cascade. Coefficient scaling and coefficient vector organization
- * should follow the conventions described above. The value of the
- * coefficient scalefactor exponent must be non-negative: (sfp>=0).
- * numBiquad - the number of biquads contained in the IIR filter cascade:
- * (P)
- * pDelayLine - pointer to the 2p-element filter memory buffer (state). The
- * user is responsible for allocation, initialization, and
- * deallocation. The filter memory elements are initialized to zero
- * in most applications.
+ *
+ * pValResult - pointer to the single input sample to which the filter is
+ * applied.
+ * pTaps - pointer to the 6P-element vector that contains the combined
+ * numerator and denominator filter coefficients from the biquad
+ * cascade. Coefficient scaling and coefficient vector organization
+ * should follow the conventions described above. The value of the
+ * coefficient scalefactor exponent must be non-negative: (sfp>=0).
+ * numBiquad - the number of biquads contained in the IIR filter cascade:
+ * (P)
+ * pDelayLine - pointer to the 2p-element filter memory buffer (state). The
+ * user is responsible for allocation, initialization, and
+ * deallocation. The filter memory elements are initialized to zero
+ * in most applications.
*
* Output Arguments:
- *
- * pValResult - pointer to the filtered output sample
+ *
+ * pValResult - pointer to the filtered output sample
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
* - one or more of the following pointers is NULL:
- * pValResult, pTaps, or pDelayLine.
- * - numBiquad < 1
- * - pTaps[3+n*6] < 0, for 0 <= n < numBiquad (negative scaling)
+ * pValResult, pTaps, or pDelayLine.
+ * - numBiquad < 1
+ * - pTaps[3+n*6] < 0, for 0 <= n < numBiquad (negative scaling)
*
*/
OMXResult omxSP_IIROne_BiQuadDirect_S16_I (
@@ -1241,33 +1241,33 @@ OMXResult omxSP_IIROne_BiQuadDirect_S16_I (
* Function: omxSP_FilterMedian_S32 (2.2.3.4.1)
*
* Description:
- * This function computes the median over the region specified by the median
- * mask for the every element of the input array. The median outputs are
- * stored in the corresponding elements of the output vector.
+ * This function computes the median over the region specified by the median
+ * mask for the every element of the input array. The median outputs are
+ * stored in the corresponding elements of the output vector.
*
* Input Arguments:
- *
- * pSrc - pointer to the input vector
- * len - number of elements contained in the input and output vectors (0 <
- * len < 65536)
- * maskSize - median mask size; if an even value is specified, the function
- * subtracts 1 and uses the odd value of the filter mask for median
- * filtering (0 < maskSize < 256)
+ *
+ * pSrc - pointer to the input vector
+ * len - number of elements contained in the input and output vectors (0 <
+ * len < 65536)
+ * maskSize - median mask size; if an even value is specified, the function
+ * subtracts 1 and uses the odd value of the filter mask for median
+ * filtering (0 < maskSize < 256)
*
* Output Arguments:
- *
- * pDst - pointer to the median-filtered output vector
+ *
+ * pDst - pointer to the median-filtered output vector
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - one or more of the following pointers is NULL: pSrc, pDst.
- * - len < 0
- * - maskSize < 1 or maskSize> 255
- * OMX_StsSP_EvenMedianMaskSizeErr - even mask size replaced by odd mask
- * size
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - one or more of the following pointers is NULL: pSrc, pDst.
+ * - len < 0
+ * - maskSize < 1 or maskSize> 255
+ * OMX_StsSP_EvenMedianMaskSizeErr - even mask size replaced by odd mask
+ * size
*
*/
OMXResult omxSP_FilterMedian_S32 (
@@ -1283,33 +1283,33 @@ OMXResult omxSP_FilterMedian_S32 (
* Function: omxSP_FilterMedian_S32_I (2.2.3.4.1)
*
* Description:
- * This function computes the median over the region specified by the median
- * mask for the every element of the input array. The median outputs are
- * stored in the corresponding elements of the output vector.
+ * This function computes the median over the region specified by the median
+ * mask for the every element of the input array. The median outputs are
+ * stored in the corresponding elements of the output vector.
*
* Input Arguments:
- *
- * pSrcDst - pointer to the input vector
- * len - number of elements contained in the input and output vectors (0 <
- * len < 65536)
- * maskSize - median mask size; if an even value is specified, the function
- * subtracts 1 and uses the odd value of the filter mask for median
- * filtering (0 < maskSize < 256)
+ *
+ * pSrcDst - pointer to the input vector
+ * len - number of elements contained in the input and output vectors (0 <
+ * len < 65536)
+ * maskSize - median mask size; if an even value is specified, the function
+ * subtracts 1 and uses the odd value of the filter mask for median
+ * filtering (0 < maskSize < 256)
*
* Output Arguments:
- *
- * pSrcDst - pointer to the median-filtered output vector
+ *
+ * pSrcDst - pointer to the median-filtered output vector
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - pSrcDst is NULL.
- * - len < 0
- * - maskSize < 1 or maskSize> 255
- * OMX_StsSP_EvenMedianMaskSizeErr - even mask size replaced by odd mask
- * size
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - pSrcDst is NULL.
+ * - len < 0
+ * - maskSize < 1 or maskSize> 255
+ * OMX_StsSP_EvenMedianMaskSizeErr - even mask size replaced by odd mask
+ * size
*
*/
OMXResult omxSP_FilterMedian_S32_I (
@@ -1324,36 +1324,36 @@ OMXResult omxSP_FilterMedian_S32_I (
* Function: omxSP_FFTInit_C_SC16 (2.2.4.1.2)
*
* Description:
- * These functions initialize the specification structures required for the
- * complex FFT and IFFT functions. Desired block length is specified as an
- * input. The function <FFTInit_C_SC16> is used to initialize the
- * specification structures for functions <FFTFwd_CToC_SC16_Sfs> and
+ * These functions initialize the specification structures required for the
+ * complex FFT and IFFT functions. Desired block length is specified as an
+ * input. The function <FFTInit_C_SC16> is used to initialize the
+ * specification structures for functions <FFTFwd_CToC_SC16_Sfs> and
* <FFTInv_CToC_SC16_Sfs>.
*
- * Memory for the specification structure *pFFTSpec
- * must be allocated prior to calling these functions and should be 4-byte
- * aligned for omxSP_FFTInit_C_SC16.
+ * Memory for the specification structure *pFFTSpec
+ * must be allocated prior to calling these functions and should be 4-byte
+ * aligned for omxSP_FFTInit_C_SC16.
*
- * The space required for *pFFTSpec, in bytes, can be
- * determined using <FFTGetBufSize_C_SC16>.
+ * The space required for *pFFTSpec, in bytes, can be
+ * determined using <FFTGetBufSize_C_SC16>.
*
* Input Arguments:
- *
- * order - base-2 logarithm of the desired block length;
- * valid in the range [0,12]
+ *
+ * order - base-2 logarithm of the desired block length;
+ * valid in the range [0,12]
*
* Output Arguments:
- *
- * pFFTSpec - pointer to initialized specification structure
+ *
+ * pFFTSpec - pointer to initialized specification structure
*
* Return Value:
- *
- * OMX_Sts_NoErr -no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - pFFTSpec is either NULL or violates the 4-byte alignment
- * restrictions
- * - order < 0 or order > 12
+ *
+ * OMX_Sts_NoErr -no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - pFFTSpec is either NULL or violates the 4-byte alignment
+ * restrictions
+ * - order < 0 or order > 12
*
*/
OMXResult omxSP_FFTInit_C_SC16 (
@@ -1367,36 +1367,36 @@ OMXResult omxSP_FFTInit_C_SC16 (
* Function: omxSP_FFTInit_C_SC32 (2.2.4.1.2)
*
* Description:
- * These functions initialize the specification structures required for the
- * complex FFT and IFFT functions. Desired block length is specified as an
- * input. The function <FFTInit_C_SC32> is used to initialize
- * the specification structures for the functions <FFTFwd_CToC_SC32_Sfs> and
+ * These functions initialize the specification structures required for the
+ * complex FFT and IFFT functions. Desired block length is specified as an
+ * input. The function <FFTInit_C_SC32> is used to initialize
+ * the specification structures for the functions <FFTFwd_CToC_SC32_Sfs> and
* <FFTInv_CToC_SC32_Sfs>.
*
- * Memory for the specification structure *pFFTSpec must be allocated prior
- * to calling these functions and should be 8-byte aligned for
- * omxSP_FFTInit_C_SC32.
+ * Memory for the specification structure *pFFTSpec must be allocated prior
+ * to calling these functions and should be 8-byte aligned for
+ * omxSP_FFTInit_C_SC32.
*
- * The space required for *pFFTSpec, in bytes, can be
- * determined using <FFTGetBufSize_C_SC32>.
+ * The space required for *pFFTSpec, in bytes, can be
+ * determined using <FFTGetBufSize_C_SC32>.
*
* Input Arguments:
- *
- * order - base-2 logarithm of the desired block length; valid in the range
- * [0,12]
+ *
+ * order - base-2 logarithm of the desired block length; valid in the range
+ * [0,12]
*
* Output Arguments:
- *
- * pFFTSpec - pointer to initialized specification structure
+ *
+ * pFFTSpec - pointer to initialized specification structure
*
* Return Value:
- *
- * OMX_Sts_NoErr -no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - pFFTSpec is either NULL or violates the 8-byte alignment
- * restrictions
- * - order < 0 or order > 12
+ *
+ * OMX_Sts_NoErr -no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - pFFTSpec is either NULL or violates the 8-byte alignment
+ * restrictions
+ * - order < 0 or order > 12
*
*/
OMXResult omxSP_FFTInit_C_SC32 (
@@ -1408,35 +1408,35 @@ OMXResult omxSP_FFTInit_C_SC32 (
* Function: omxSP_FFTInit_C_FC32 (2.2.4.1.2)
*
* Description:
- * These functions initialize the specification structures required for the
- * complex FFT and IFFT functions. Desired block length is specified as an
- * input. The function <FFTInit_C_FC32> is used to initialize
- * the specification structures for the functions <FFTFwd_CToC_FC32_Sfs> and
+ * These functions initialize the specification structures required for the
+ * complex FFT and IFFT functions. Desired block length is specified as an
+ * input. The function <FFTInit_C_FC32> is used to initialize
+ * the specification structures for the functions <FFTFwd_CToC_FC32_Sfs> and
* <FFTInv_CToC_FC32_Sfs>.
*
- * Memory for the specification structure *pFFTSpec must be allocated prior
- * to calling these functions and should be 8-byte aligned for
- * omxSP_FFTInit_C_FC32.
+ * Memory for the specification structure *pFFTSpec must be allocated prior
+ * to calling these functions and should be 8-byte aligned for
+ * omxSP_FFTInit_C_FC32.
*
- * The space required for *pFFTSpec, in bytes, can be
- * determined using <FFTGetBufSize_C_FC32>.
+ * The space required for *pFFTSpec, in bytes, can be
+ * determined using <FFTGetBufSize_C_FC32>.
*
* Input Arguments:
- *
- * order - base-2 logarithm of the desired block length; valid in the range
- * [1,15]
+ *
+ * order - base-2 logarithm of the desired block length; valid in the range
+ * [1,15]
*
* Output Arguments:
- *
- * pFFTSpec - pointer to initialized specification structure
+ *
+ * pFFTSpec - pointer to initialized specification structure
*
* Return Value:
- *
- * OMX_Sts_NoErr -no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - pFFTSpec is either NULL or violates the 8-byte alignment
- * restrictions
+ *
+ * OMX_Sts_NoErr -no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - pFFTSpec is either NULL or violates the 8-byte alignment
+ * restrictions
* - order < 1 or order > 15
*
*/
@@ -1451,33 +1451,33 @@ OMXResult omxSP_FFTInit_C_FC32(
* Function: omxSP_FFTInit_R_S16S32 (2.2.4.1.4)
*
* Description:
- * These functions initialize specification structures required for the real
- * FFT and IFFT functions. The function <FFTInit_R_S16S32> is used to
- * initialize the specification structures for functions
+ * These functions initialize specification structures required for the real
+ * FFT and IFFT functions. The function <FFTInit_R_S16S32> is used to
+ * initialize the specification structures for functions
* <FFTFwd_RToCCS_S16S32_Sfs> and <FFTInv_CCSToR_S32S16_Sfs>.
- *
- * Memory for
- * *pFFTFwdSpec must be allocated before calling these functions and should be
- * 8-byte aligned. The number of bytes required for *pFFTFwdSpec can be
- * determined using <FFTGetBufSize_R_S16S32>.
+ *
+ * Memory for
+ * *pFFTFwdSpec must be allocated before calling these functions and should be
+ * 8-byte aligned. The number of bytes required for *pFFTFwdSpec can be
+ * determined using <FFTGetBufSize_R_S16S32>.
*
* Input Arguments:
- *
- * order - base-2 logarithm of the desired block length; valid in the range
- * [0,12]
+ *
+ * order - base-2 logarithm of the desired block length; valid in the range
+ * [0,12]
*
* Output Arguments:
- *
- * pFFTFwdSpec - pointer to the initialized specification structure
+ *
+ * pFFTFwdSpec - pointer to the initialized specification structure
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - pFFTFwdSpec is either NULL or violates the 8-byte alignment
- * restrictions
- * - order < 0 or order > 12
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - pFFTFwdSpec is either NULL or violates the 8-byte alignment
+ * restrictions
+ * - order < 0 or order > 12
*
*/
OMXResult omxSP_FFTInit_R_S16S32(
@@ -1491,34 +1491,34 @@ OMXResult omxSP_FFTInit_R_S16S32(
* Function: omxSP_FFTInit_R_S16
*
* Description:
- * These functions initialize specification structures required for the real
- * FFT and IFFT functions. The function <FFTInit_R_S16> is used
+ * These functions initialize specification structures required for the real
+ * FFT and IFFT functions. The function <FFTInit_R_S16> is used
* to initialize the specification structures for functions
* <FFTFwd_RToCCS_S16_Sfs> and <FFTInv_CCSToR_S16_Sfs>.
*
* Memory for *pFFTFwdSpec must be allocated before calling these functions
- * and should be 8-byte aligned.
+ * and should be 8-byte aligned.
*
- * The number of bytes required for *pFFTFwdSpec can be
- * determined using <FFTGetBufSize_R_S16>.
+ * The number of bytes required for *pFFTFwdSpec can be
+ * determined using <FFTGetBufSize_R_S16>.
*
* Input Arguments:
- *
- * order - base-2 logarithm of the desired block length; valid in the range
- * [1,12]
+ *
+ * order - base-2 logarithm of the desired block length; valid in the range
+ * [1,12]
*
* Output Arguments:
- *
- * pFFTFwdSpec - pointer to the initialized specification structure
+ *
+ * pFFTFwdSpec - pointer to the initialized specification structure
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - pFFTFwdSpec is either NULL or violates the 8-byte alignment
- * restrictions
- * - order < 1 or order > 12
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - pFFTFwdSpec is either NULL or violates the 8-byte alignment
+ * restrictions
+ * - order < 1 or order > 12
*
*/
OMXResult omxSP_FFTInit_R_S16 (
@@ -1530,34 +1530,34 @@ OMXResult omxSP_FFTInit_R_S16 (
* Function: omxSP_FFTInit_R_S32 (2.2.4.1.4)
*
* Description:
- * These functions initialize specification structures required for the real
- * FFT and IFFT functions. The function <FFTInit_R_S32> is used to initialize
- * the specification structures for functions <FFTFwd_RToCCS_S32_Sfs>
- * and <FFTInv_CCSToR_S32_Sfs>.
+ * These functions initialize specification structures required for the real
+ * FFT and IFFT functions. The function <FFTInit_R_S32> is used to initialize
+ * the specification structures for functions <FFTFwd_RToCCS_S32_Sfs>
+ * and <FFTInv_CCSToR_S32_Sfs>.
*
* Memory for *pFFTFwdSpec must be allocated before calling these functions
- * and should be 8-byte aligned.
+ * and should be 8-byte aligned.
*
- * The number of bytes required for *pFFTFwdSpec can be
- * determined using <FFTGetBufSize_R_S32>.
+ * The number of bytes required for *pFFTFwdSpec can be
+ * determined using <FFTGetBufSize_R_S32>.
*
* Input Arguments:
- *
- * order - base-2 logarithm of the desired block length; valid in the range
- * [0,12]
+ *
+ * order - base-2 logarithm of the desired block length; valid in the range
+ * [0,12]
*
* Output Arguments:
- *
- * pFFTFwdSpec - pointer to the initialized specification structure
+ *
+ * pFFTFwdSpec - pointer to the initialized specification structure
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - pFFTFwdSpec is either NULL or violates the 8-byte alignment
- * restrictions
- * - order < 0 or order > 12
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - pFFTFwdSpec is either NULL or violates the 8-byte alignment
+ * restrictions
+ * - order < 0 or order > 12
*
*/
OMXResult omxSP_FFTInit_R_S32 (
@@ -1569,33 +1569,33 @@ OMXResult omxSP_FFTInit_R_S32 (
* Function: omxSP_FFTInit_R_F32
*
* Description:
- * These functions initialize specification structures required for the real
- * FFT and IFFT functions. The function <FFTInit_R_F32> is used to initialize
- * the specification structures for functions <FFTFwd_RToCCS_F32_Sfs>
- * and <FFTInv_CCSToR_F32_Sfs>.
+ * These functions initialize specification structures required for the real
+ * FFT and IFFT functions. The function <FFTInit_R_F32> is used to initialize
+ * the specification structures for functions <FFTFwd_RToCCS_F32_Sfs>
+ * and <FFTInv_CCSToR_F32_Sfs>.
*
* Memory for *pFFTFwdSpec must be allocated before calling these functions
- * and should be 8-byte aligned.
+ * and should be 8-byte aligned.
*
- * The number of bytes required for *pFFTFwdSpec can be
- * determined using <FFTGetBufSize_R_F32>.
+ * The number of bytes required for *pFFTFwdSpec can be
+ * determined using <FFTGetBufSize_R_F32>.
*
* Input Arguments:
- *
- * order - base-2 logarithm of the desired block length; valid in the range
- * [1,15]
+ *
+ * order - base-2 logarithm of the desired block length; valid in the range
+ * [1,15]
*
* Output Arguments:
- *
- * pFFTFwdSpec - pointer to the initialized specification structure
+ *
+ * pFFTFwdSpec - pointer to the initialized specification structure
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - pFFTFwdSpec is either NULL or violates the 8-byte alignment
- * restrictions
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - pFFTFwdSpec is either NULL or violates the 8-byte alignment
+ * restrictions
* - order < 1 or order > 15
*
*/
@@ -1608,28 +1608,28 @@ OMXResult omxSP_FFTInit_R_F32(
* Function: omxSP_FFTGetBufSize_C_SC16 (2.2.4.1.6)
*
* Description:
- * These functions compute the size of the specification structure
- * required for the length 2^order complex FFT and IFFT functions. The function
- * <FFTGetBufSize_C_SC16> is used in conjunction with the 16-bit functions
- * <FFTFwd_CToC_SC16_Sfs> and <FFTInv_CToC_SC16_Sfs>.
+ * These functions compute the size of the specification structure
+ * required for the length 2^order complex FFT and IFFT functions. The function
+ * <FFTGetBufSize_C_SC16> is used in conjunction with the 16-bit functions
+ * <FFTFwd_CToC_SC16_Sfs> and <FFTInv_CToC_SC16_Sfs>.
*
* Input Arguments:
- *
- * order - base-2 logarithm of the desired block length; valid in the range
- * [0,12]
+ *
+ * order - base-2 logarithm of the desired block length; valid in the range
+ * [0,12]
*
* Output Arguments:
- *
- * pSize - pointer to the number of bytes required for the specification
- * structure
+ *
+ * pSize - pointer to the number of bytes required for the specification
+ * structure
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - pSize is NULL
- * - order < 0 or order > 12
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - pSize is NULL
+ * - order < 0 or order > 12
*
*/
OMXResult omxSP_FFTGetBufSize_C_SC16 (
@@ -1643,28 +1643,28 @@ OMXResult omxSP_FFTGetBufSize_C_SC16 (
* Function: omxSP_FFTGetBufSize_C_SC32 (2.2.4.1.6)
*
* Description:
- * These functions compute the size of the specification structure
- * required for the length 2^order complex FFT and IFFT functions. The function
- * <FFTGetBufSize_C_SC32> is used in conjunction with the 32-bit functions
- * <FFTFwd_CToC_SC32_Sfs> and <FFTInv_CToC_SC32_Sfs>.
+ * These functions compute the size of the specification structure
+ * required for the length 2^order complex FFT and IFFT functions. The function
+ * <FFTGetBufSize_C_SC32> is used in conjunction with the 32-bit functions
+ * <FFTFwd_CToC_SC32_Sfs> and <FFTInv_CToC_SC32_Sfs>.
*
* Input Arguments:
- *
- * order - base-2 logarithm of the desired block length; valid in the range
- * [0,12]
+ *
+ * order - base-2 logarithm of the desired block length; valid in the range
+ * [0,12]
*
* Output Arguments:
- *
- * pSize - pointer to the number of bytes required for the specification
- * structure
+ *
+ * pSize - pointer to the number of bytes required for the specification
+ * structure
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - pSize is NULL
- * - order < 0 or order > 12
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - pSize is NULL
+ * - order < 0 or order > 12
*
*/
OMXResult omxSP_FFTGetBufSize_C_SC32 (
@@ -1676,28 +1676,28 @@ OMXResult omxSP_FFTGetBufSize_C_SC32 (
* Function: omxSP_FFTGetBufSize_C_FC32
*
* Description:
- * These functions compute the size of the specification structure
- * required for the length 2^order complex FFT and IFFT functions. The function
- * <FFTGetBufSize_C_FC32> is used in conjunction with the 32-bit functions
- * <FFTFwd_CToC_FC32_Sfs> and <FFTInv_CToC_FC32_Sfs>.
+ * These functions compute the size of the specification structure
+ * required for the length 2^order complex FFT and IFFT functions. The function
+ * <FFTGetBufSize_C_FC32> is used in conjunction with the 32-bit functions
+ * <FFTFwd_CToC_FC32_Sfs> and <FFTInv_CToC_FC32_Sfs>.
*
* Input Arguments:
- *
- * order - base-2 logarithm of the desired block length; valid in the range
- * [1,15]
+ *
+ * order - base-2 logarithm of the desired block length; valid in the range
+ * [1,15]
*
* Output Arguments:
- *
- * pSize - pointer to the number of bytes required for the specification
- * structure
+ *
+ * pSize - pointer to the number of bytes required for the specification
+ * structure
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
- * following is true:
- * - pSize is NULL
- * - order < 1 or order > 15
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments; returned if one or more of the
+ * following is true:
+ * - pSize is NULL
+ * - order < 1 or order > 15
*
*/
OMXResult omxSP_FFTGetBufSize_C_FC32(
@@ -1710,27 +1710,27 @@ OMXResult omxSP_FFTGetBufSize_C_FC32(
* Function: omxSP_FFTGetBufSize_R_S16S32 (2.2.4.1.8)
*
* Description:
- * order These functions compute the size of the specification structure
- * required for the length 2^order real FFT and IFFT functions. The function
- * <FFTGetBufSize_R_S16S32> is used in conjunction with the 16-bit functions
- * <FFTFwd_RToCCS_S16S32_Sfs> and <FFTInv_CCSToR_S32S16_Sfs>.
+ * order These functions compute the size of the specification structure
+ * required for the length 2^order real FFT and IFFT functions. The function
+ * <FFTGetBufSize_R_S16S32> is used in conjunction with the 16-bit functions
+ * <FFTFwd_RToCCS_S16S32_Sfs> and <FFTInv_CCSToR_S32S16_Sfs>.
*
* Input Arguments:
- *
- * order - base-2 logarithm of the length; valid in the range [0,12]
+ *
+ * order - base-2 logarithm of the length; valid in the range [0,12]
*
* Output Arguments:
- *
- * pSize - pointer to the number of bytes required for the specification
- * structure
+ *
+ * pSize - pointer to the number of bytes required for the specification
+ * structure
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments The function returns
- * OMX_Sts_BadArgErr if one or more of the following is true:
- * pSize is NULL
- * order < 0 or order > 12
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments The function returns
+ * OMX_Sts_BadArgErr if one or more of the following is true:
+ * pSize is NULL
+ * order < 0 or order > 12
*
*/
OMXResult omxSP_FFTGetBufSize_R_S16S32(
@@ -1743,28 +1743,28 @@ OMXResult omxSP_FFTGetBufSize_R_S16S32(
* Function: omxSP_FFTGetBufSize_R_S16
*
* Description:
- * These functions compute the size of the specification structure
- * required for the length 2^order real FFT and IFFT functions. The function
- * <FFTGetBufSize_R_S16> is used in conjunction with the 16-bit
- * functions <FFTFwd_RToCCS_S16_Sfs> and <FFTInv_CCSToR_S16_Sfs>.
+ * These functions compute the size of the specification structure
+ * required for the length 2^order real FFT and IFFT functions. The function
+ * <FFTGetBufSize_R_S16> is used in conjunction with the 16-bit
+ * functions <FFTFwd_RToCCS_S16_Sfs> and <FFTInv_CCSToR_S16_Sfs>.
*
* Input Arguments:
- *
+ *
* order - base-2 logarithm of the length; valid in the range
* [1,12]
*
* Output Arguments:
- *
- * pSize - pointer to the number of bytes required for the specification
- * structure
+ *
+ * pSize - pointer to the number of bytes required for the specification
+ * structure
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments The function returns
- * OMX_Sts_BadArgErr if one or more of the following is true:
- * pSize is NULL
- * order < 1 or order > 12
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments The function returns
+ * OMX_Sts_BadArgErr if one or more of the following is true:
+ * pSize is NULL
+ * order < 1 or order > 12
*
*/
OMXResult omxSP_FFTGetBufSize_R_S16 (
@@ -1776,27 +1776,27 @@ OMXResult omxSP_FFTGetBufSize_R_S16 (
* Function: omxSP_FFTGetBufSize_R_S32 (2.2.4.1.8)
*
* Description:
- * These functions compute the size of the specification structure
- * required for the length 2^order real FFT and IFFT functions. The function
- * <FFTGetBufSize_R_S32> is used in conjunction with the 32-bit functions
- * <FFTFwd_RToCCS_S32_Sfs> and <FFTInv_CCSToR_S32_Sfs>.
+ * These functions compute the size of the specification structure
+ * required for the length 2^order real FFT and IFFT functions. The function
+ * <FFTGetBufSize_R_S32> is used in conjunction with the 32-bit functions
+ * <FFTFwd_RToCCS_S32_Sfs> and <FFTInv_CCSToR_S32_Sfs>.
*
* Input Arguments:
- *
- * order - base-2 logarithm of the length; valid in the range [0,12]
+ *
+ * order - base-2 logarithm of the length; valid in the range [0,12]
*
* Output Arguments:
- *
- * pSize - pointer to the number of bytes required for the specification
- * structure
+ *
+ * pSize - pointer to the number of bytes required for the specification
+ * structure
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments The function returns
- * OMX_Sts_BadArgErr if one or more of the following is true:
- * pSize is NULL
- * order < 0 or order > 12
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments The function returns
+ * OMX_Sts_BadArgErr if one or more of the following is true:
+ * pSize is NULL
+ * order < 0 or order > 12
*
*/
OMXResult omxSP_FFTGetBufSize_R_S32 (
@@ -1808,26 +1808,26 @@ OMXResult omxSP_FFTGetBufSize_R_S32 (
* Function: omxSP_FFTGetBufSize_R_F32
*
* Description:
- * These functions compute the size of the specification structure
- * required for the length 2^order real FFT and IFFT functions. The function
- * <FFTGetBufSize_R_F32> is used in conjunction with the 32-bit functions
- * <FFTFwd_RToCCS_F32_Sfs> and <FFTInv_CCSToR_F32_Sfs>.
+ * These functions compute the size of the specification structure
+ * required for the length 2^order real FFT and IFFT functions. The function
+ * <FFTGetBufSize_R_F32> is used in conjunction with the 32-bit functions
+ * <FFTFwd_RToCCS_F32_Sfs> and <FFTInv_CCSToR_F32_Sfs>.
*
* Input Arguments:
- *
- * order - base-2 logarithm of the length; valid in the range [1,15]
+ *
+ * order - base-2 logarithm of the length; valid in the range [1,15]
*
* Output Arguments:
- *
- * pSize - pointer to the number of bytes required for the specification
- * structure
+ *
+ * pSize - pointer to the number of bytes required for the specification
+ * structure
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments The function returns
- * OMX_Sts_BadArgErr if one or more of the following is true:
- * pSize is NULL
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments The function returns
+ * OMX_Sts_BadArgErr if one or more of the following is true:
+ * pSize is NULL
* order < 1 or order > 15
*
*/
@@ -1842,37 +1842,37 @@ OMXResult omxSP_FFTGetBufSize_R_F32(
* Function: omxSP_FFTFwd_CToC_SC16_Sfs (2.2.4.2.2)
*
* Description:
- * Compute an FFT for a complex signal of length of 2^order,
- * where 0 <= order <= 12.
- * Transform length is determined by the specification structure, which
- * must be initialized prior to calling the FFT function using the appropriate
- * helper, i.e., <FFTInit_C_sc32> or <FFTInit_C_SC16>. The relationship
- * between the input and output sequences can be expressed in terms of the
- * DFT, i.e.,
+ * Compute an FFT for a complex signal of length of 2^order,
+ * where 0 <= order <= 12.
+ * Transform length is determined by the specification structure, which
+ * must be initialized prior to calling the FFT function using the appropriate
+ * helper, i.e., <FFTInit_C_sc32> or <FFTInit_C_SC16>. The relationship
+ * between the input and output sequences can be expressed in terms of the
+ * DFT, i.e.,
*
* X[k] = 2^(-scaleFactor) . SUM[n=0...N-1]x[n].e^(-jnk.2.pi/N)
* k = 0,1,2,..., N-1
* N = 2^order
*
* Input Arguments:
- * pSrc - pointer to the input signal, a complex-valued vector of length 2^order;
- * must be aligned on a 32 byte boundary.
- * pFFTSpec - pointer to the preallocated and initialized specification
- * structure
- * scaleFactor - output scale factor; the range for is [0,16]
+ * pSrc - pointer to the input signal, a complex-valued vector of length 2^order;
+ * must be aligned on a 32 byte boundary.
+ * pFFTSpec - pointer to the preallocated and initialized specification
+ * structure
+ * scaleFactor - output scale factor; the range for is [0,16]
*
* Output Arguments:
- * pDst - pointer to the complex-valued output vector, of length 2^order;
- * must be aligned on an 32-byte boundary.
+ * pDst - pointer to the complex-valued output vector, of length 2^order;
+ * must be aligned on an 32-byte boundary.
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - returned if one or more of the following conditions
- * is true:
- * - one or more of the following pointers is NULL: pSrc, pDst, or
- * pFFTSpec.
- * - pSrc or pDst is not 32-byte aligned
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - returned if one or more of the following conditions
+ * is true:
+ * - one or more of the following pointers is NULL: pSrc, pDst, or
+ * pFFTSpec.
+ * - pSrc or pDst is not 32-byte aligned
* - scaleFactor<0 or scaleFactor>16
*
*/
@@ -1895,38 +1895,38 @@ OMXResult omxSP_FFTFwd_CToC_SC16_Sfs_neon (
* Function: omxSP_FFTFwd_CToC_SC32_Sfs (2.2.4.2.2)
*
* Description:
- * Compute an FFT for a complex signal of length of 2^order,
- * where 0 <= order <= 12.
- * Transform length is determined by the specification structure, which
- * must be initialized prior to calling the FFT function using the appropriate
- * helper, i.e., <FFTInit_C_sc32> or <FFTInit_C_SC16>. The relationship
- * between the input and output sequences can be expressed in terms of the
- * DFT, i.e.,
+ * Compute an FFT for a complex signal of length of 2^order,
+ * where 0 <= order <= 12.
+ * Transform length is determined by the specification structure, which
+ * must be initialized prior to calling the FFT function using the appropriate
+ * helper, i.e., <FFTInit_C_sc32> or <FFTInit_C_SC16>. The relationship
+ * between the input and output sequences can be expressed in terms of the
+ * DFT, i.e.,
*
* X[k] = 2^(-scaleFactor) . SUM[n=0...N-1]x[n].e^(-jnk.2.pi/N)
* k = 0,1,2,..., N-1
* N = 2^order
*
* Input Arguments:
- * pSrc - pointer to the input signal, a complex-valued vector of length 2^order;
- * must be aligned on a 32 byte boundary.
- * pFFTSpec - pointer to the preallocated and initialized specification
- * structure
- * scaleFactor - output scale factor; the range is [0,32]
+ * pSrc - pointer to the input signal, a complex-valued vector of length 2^order;
+ * must be aligned on a 32 byte boundary.
+ * pFFTSpec - pointer to the preallocated and initialized specification
+ * structure
+ * scaleFactor - output scale factor; the range is [0,32]
*
* Output Arguments:
- * pDst - pointer to the complex-valued output vector, of length 2^order; must be
- * aligned on an 32-byte boundary.
+ * pDst - pointer to the complex-valued output vector, of length 2^order; must be
+ * aligned on an 32-byte boundary.
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - returned if one or more of the following conditions
- * is true:
- * - one or more of the following pointers is NULL: pSrc, pDst, or
- * pFFTSpec.
- * - pSrc or pDst is not 32-byte aligned
- * - scaleFactor<0 or scaleFactor >32
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - returned if one or more of the following conditions
+ * is true:
+ * - one or more of the following pointers is NULL: pSrc, pDst, or
+ * pFFTSpec.
+ * - pSrc or pDst is not 32-byte aligned
+ * - scaleFactor<0 or scaleFactor >32
*
*/
OMXResult omxSP_FFTFwd_CToC_SC32_Sfs (
@@ -1943,38 +1943,38 @@ OMXResult omxSP_FFTFwd_CToC_SC32_Sfs (
*
* Description:
* These functions compute an inverse FFT for a complex signal of length
- * of 2^order, where 0 <= order <= 12. Transform length is determined by the
- * specification structure, which must be initialized prior to calling the FFT
- * function using the appropriate helper, i.e., <FFTInit_C_sc32> or
- * <FFTInit_C_SC16>. The relationship between the input and output sequences
- * can be expressed in terms of the IDFT, i.e.:
+ * of 2^order, where 0 <= order <= 12. Transform length is determined by the
+ * specification structure, which must be initialized prior to calling the FFT
+ * function using the appropriate helper, i.e., <FFTInit_C_sc32> or
+ * <FFTInit_C_SC16>. The relationship between the input and output sequences
+ * can be expressed in terms of the IDFT, i.e.:
*
* x[n] = (2^(-scalefactor)/N) . SUM[k=0,...,N-1] X[k].e^(jnk.2.pi/N)
* n=0,1,2,...N-1
* N=2^order.
*
* Input Arguments:
- * pSrc - pointer to the complex-valued input signal, of length 2^order ;
- * must be aligned on a 32-byte boundary.
- * pFFTSpec - pointer to the preallocated and initialized specification
- * structure
+ * pSrc - pointer to the complex-valued input signal, of length 2^order ;
+ * must be aligned on a 32-byte boundary.
+ * pFFTSpec - pointer to the preallocated and initialized specification
+ * structure
* scaleFactor - scale factor of the output. Valid range is [0,16].
*
* Output Arguments:
- * order
- * pDst - pointer to the complex-valued output signal, of length 2^order;
- * must be aligned on a 32-byte boundary.
+ * order
+ * pDst - pointer to the complex-valued output signal, of length 2^order;
+ * must be aligned on a 32-byte boundary.
*
* Return Value:
- *
+ *
* Positive value - the shift scale that was performed inside
* OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - returned if one or more of the following conditions
- * is true:
- * - one or more of the following pointers is NULL: pSrc, pDst, or
- * pFFTSpec.
- * - pSrc or pDst is not 32-byte aligned
- * - scaleFactor<0 or scaleFactor>16
+ * OMX_Sts_BadArgErr - returned if one or more of the following conditions
+ * is true:
+ * - one or more of the following pointers is NULL: pSrc, pDst, or
+ * pFFTSpec.
+ * - pSrc or pDst is not 32-byte aligned
+ * - scaleFactor<0 or scaleFactor>16
*
*/
OMXResult omxSP_FFTInv_CToC_SC16_Sfs (
@@ -1999,36 +1999,36 @@ OMXResult omxSP_FFTInv_CToC_SC16_Sfs_neon (
*
* Description:
* These functions compute an inverse FFT for a complex signal of length
- * of 2^order, where 0 <= order <= 12. Transform length is determined by the
- * specification structure, which must be initialized prior to calling the FFT
- * function using the appropriate helper, i.e., <FFTInit_C_sc32> or
- * <FFTInit_C_SC16>. The relationship between the input and output sequences
- * can be expressed in terms of the IDFT, i.e.:
+ * of 2^order, where 0 <= order <= 12. Transform length is determined by the
+ * specification structure, which must be initialized prior to calling the FFT
+ * function using the appropriate helper, i.e., <FFTInit_C_sc32> or
+ * <FFTInit_C_SC16>. The relationship between the input and output sequences
+ * can be expressed in terms of the IDFT, i.e.:
*
* x[n] = (2^(-scalefactor)/N) . SUM[k=0,...,N-1] X[k].e^(jnk.2.pi/N)
* n=0,1,2,...N-1
* N=2^order.
*
* Input Arguments:
- * pSrc - pointer to the complex-valued input signal, of length 2^order ;
- * must be aligned on a 32-byte boundary.
- * pFFTSpec - pointer to the preallocated and initialized specification
- * structure
- * scaleFactor - scale factor of the output. Valid range is [0,32].
+ * pSrc - pointer to the complex-valued input signal, of length 2^order ;
+ * must be aligned on a 32-byte boundary.
+ * pFFTSpec - pointer to the preallocated and initialized specification
+ * structure
+ * scaleFactor - scale factor of the output. Valid range is [0,32].
*
* Output Arguments:
- * order
- * pDst - pointer to the complex-valued output signal, of length 2^order;
- * must be aligned on a 32-byte boundary.
+ * order
+ * pDst - pointer to the complex-valued output signal, of length 2^order;
+ * must be aligned on a 32-byte boundary.
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - returned if one or more of the following conditions
- * is true:
- * - one or more of the following pointers is NULL: pSrc, pDst, or
- * pFFTSpec.
- * - pSrc or pDst is not 32-byte aligned
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - returned if one or more of the following conditions
+ * is true:
+ * - one or more of the following pointers is NULL: pSrc, pDst, or
+ * pFFTSpec.
+ * - pSrc or pDst is not 32-byte aligned
* - scaleFactor<0 or scaleFactor>32
*
*/
@@ -2046,45 +2046,45 @@ OMXResult omxSP_FFTInv_CToC_SC32_Sfs (
*
* Description:
* These functions compute an FFT for a real-valued signal of length of 2^order,
- * where 0 <= order <= 12. Transform length is determined by the
- * specification structure, which must be initialized prior to calling the FFT
- * function using the appropriate helper, i.e., <FFTInit_R_S16S32>.
- * The relationship between the input and output sequences
+ * where 0 <= order <= 12. Transform length is determined by the
+ * specification structure, which must be initialized prior to calling the FFT
+ * function using the appropriate helper, i.e., <FFTInit_R_S16S32>.
+ * The relationship between the input and output sequences
* can be expressed in terms of the DFT, i.e.:
*
* x[n] = (2^(-scalefactor)/N) . SUM[k=0,...,N-1] X[k].e^(jnk.2.pi/N)
* n=0,1,2,...N-1
* N=2^order.
*
- * The conjugate-symmetric output sequence is represented using a CCS vector,
- * which is of length N+2, and is organized as follows:
+ * The conjugate-symmetric output sequence is represented using a CCS vector,
+ * which is of length N+2, and is organized as follows:
*
- * Index: 0 1 2 3 4 5 . . . N-2 N-1 N N+1
- * Component: R0 0 R1 I1 R2 I2 . . . R[N/2-1] I[N/2-1] R[N/2] 0
+ * Index: 0 1 2 3 4 5 . . . N-2 N-1 N N+1
+ * Component: R0 0 R1 I1 R2 I2 . . . R[N/2-1] I[N/2-1] R[N/2] 0
*
- * where R[n] and I[n], respectively, denote the real and imaginary components
- * for FFT bin 'n'. Bins are numbered from 0 to N/2, where N is the FFT length.
- * Bin index 0 corresponds to the DC component, and bin index N/2 corresponds to the
- * foldover frequency.
+ * where R[n] and I[n], respectively, denote the real and imaginary components
+ * for FFT bin 'n'. Bins are numbered from 0 to N/2, where N is the FFT length.
+ * Bin index 0 corresponds to the DC component, and bin index N/2 corresponds to the
+ * foldover frequency.
*
* Input Arguments:
- * pSrc - pointer to the real-valued input sequence, of length 2^order;
- * must be aligned on a 32-byte boundary.
- * pFFTSpec - pointer to the preallocated and initialized specification
- * structure
- * scaleFactor - output scale factor; valid range is [0, 32]
+ * pSrc - pointer to the real-valued input sequence, of length 2^order;
+ * must be aligned on a 32-byte boundary.
+ * pFFTSpec - pointer to the preallocated and initialized specification
+ * structure
+ * scaleFactor - output scale factor; valid range is [0, 32]
*
* Output Arguments:
- * pDst - pointer to output sequence, represented using CCS format, of
- * length (2^order)+2; must be aligned on a 32-byte boundary.
+ * pDst - pointer to output sequence, represented using CCS format, of
+ * length (2^order)+2; must be aligned on a 32-byte boundary.
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments, if one or more of the following is true:
- * - one of the pointers pSrc, pDst, or pFFTSpec is NULL
- * - pSrc or pDst is not aligned on a 32-byte boundary
- * - scaleFactor<0 or scaleFactor >32
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments, if one or more of the following is true:
+ * - one of the pointers pSrc, pDst, or pFFTSpec is NULL
+ * - pSrc or pDst is not aligned on a 32-byte boundary
+ * - scaleFactor<0 or scaleFactor >32
*
*/
OMXResult omxSP_FFTFwd_RToCCS_S16S32_Sfs (
@@ -2154,45 +2154,45 @@ OMXResult omxSP_FFTFwd_RToCCS_S16_Sfs (
*
* Description:
* These functions compute an FFT for a real-valued signal of length of 2^order,
- * where 0 <= order <= 12. Transform length is determined by the
- * specification structure, which must be initialized prior to calling the FFT
- * function using the appropriate helper, i.e., <FFTInit_R_S32>.
- * The relationship between the input and output sequences
+ * where 0 <= order <= 12. Transform length is determined by the
+ * specification structure, which must be initialized prior to calling the FFT
+ * function using the appropriate helper, i.e., <FFTInit_R_S32>.
+ * The relationship between the input and output sequences
* can be expressed in terms of the DFT, i.e.:
*
* x[n] = (2^(-scalefactor)/N) . SUM[k=0,...,N-1] X[k].e^(jnk.2.pi/N)
* n=0,1,2,...N-1
* N=2^order.
*
- * The conjugate-symmetric output sequence is represented using a CCS vector,
- * which is of length N+2, and is organized as follows:
+ * The conjugate-symmetric output sequence is represented using a CCS vector,
+ * which is of length N+2, and is organized as follows:
*
- * Index: 0 1 2 3 4 5 . . . N-2 N-1 N N+1
- * Component: R0 0 R1 I1 R2 I2 . . . R[N/2-1] I[N/2-1] R[N/2] 0
+ * Index: 0 1 2 3 4 5 . . . N-2 N-1 N N+1
+ * Component: R0 0 R1 I1 R2 I2 . . . R[N/2-1] I[N/2-1] R[N/2] 0
*
- * where R[n] and I[n], respectively, denote the real and imaginary components
- * for FFT bin 'n'. Bins are numbered from 0 to N/2, where N is the FFT length.
- * Bin index 0 corresponds to the DC component, and bin index N/2 corresponds to the
- * foldover frequency.
+ * where R[n] and I[n], respectively, denote the real and imaginary components
+ * for FFT bin 'n'. Bins are numbered from 0 to N/2, where N is the FFT length.
+ * Bin index 0 corresponds to the DC component, and bin index N/2 corresponds to the
+ * foldover frequency.
*
* Input Arguments:
- * pSrc - pointer to the real-valued input sequence, of length 2^order;
- * must be aligned on a 32-byte boundary.
- * pFFTSpec - pointer to the preallocated and initialized specification
- * structure
- * scaleFactor - output scale factor; valid range is [0, 32]
+ * pSrc - pointer to the real-valued input sequence, of length 2^order;
+ * must be aligned on a 32-byte boundary.
+ * pFFTSpec - pointer to the preallocated and initialized specification
+ * structure
+ * scaleFactor - output scale factor; valid range is [0, 32]
*
* Output Arguments:
- * pDst - pointer to output sequence, represented using CCS format, of
- * length (2^order)+2; must be aligned on a 32-byte boundary.
+ * pDst - pointer to output sequence, represented using CCS format, of
+ * length (2^order)+2; must be aligned on a 32-byte boundary.
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments, if one or more of the following is true:
- * - one of the pointers pSrc, pDst, or pFFTSpec is NULL
- * - pSrc or pDst is not aligned on a 32-byte boundary
- * - scaleFactor<0 or scaleFactor >32
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments, if one or more of the following is true:
+ * - one of the pointers pSrc, pDst, or pFFTSpec is NULL
+ * - pSrc or pDst is not aligned on a 32-byte boundary
+ * - scaleFactor<0 or scaleFactor >32
*
*/
OMXResult omxSP_FFTFwd_RToCCS_S32_Sfs (
@@ -2206,13 +2206,13 @@ OMXResult omxSP_FFTFwd_RToCCS_S32_Sfs (
* Function: omxSP_FFTFwd_CToC_FC32_Sfs (2.2.4.2.2)
*
* Description:
- * Compute an FFT for a complex signal of length of 2^order,
- * where 0 <= order <= 15.
- * Transform length is determined by the specification structure, which
- * must be initialized prior to calling the FFT function using the appropriate
- * helper, i.e., <FFTInit_C_sc32> or <FFTInit_C_SC16>. The relationship
- * between the input and output sequences can be expressed in terms of the
- * DFT, i.e.,
+ * Compute an FFT for a complex signal of length of 2^order,
+ * where 0 <= order <= 15.
+ * Transform length is determined by the specification structure, which
+ * must be initialized prior to calling the FFT function using the appropriate
+ * helper, i.e., <FFTInit_C_sc32> or <FFTInit_C_SC16>. The relationship
+ * between the input and output sequences can be expressed in terms of the
+ * DFT, i.e.,
*
* X[k] = SUM[n=0...N-1]x[n].e^(-jnk.2.pi/N)
* k = 0,1,2,..., N-1
@@ -2220,23 +2220,23 @@ OMXResult omxSP_FFTFwd_RToCCS_S32_Sfs (
*
* Input Arguments:
* pSrc - pointer to the input signal, a complex-valued vector of length
- * 2^order; must be aligned on a 32 byte boundary.
- * pFFTSpec - pointer to the preallocated and initialized specification
- * structure
+ * 2^order; must be aligned on a 32 byte boundary.
+ * pFFTSpec - pointer to the preallocated and initialized specification
+ * structure
*
* Output Arguments:
* pDst - pointer to the complex-valued output vector, of length 2^order;
- * must be aligned on an 32-byte boundary.
+ * must be aligned on an 32-byte boundary.
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - returned if one or more of the following conditions
- * is true:
- * - one or more of the following pointers is NULL: pSrc, pDst, or
- * pFFTSpec.
- * - pSrc or pDst is not 32-byte aligned
- * - scaleFactor<0 or scaleFactor >32
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - returned if one or more of the following conditions
+ * is true:
+ * - one or more of the following pointers is NULL: pSrc, pDst, or
+ * pFFTSpec.
+ * - pSrc or pDst is not 32-byte aligned
+ * - scaleFactor<0 or scaleFactor >32
*
*/
OMXResult omxSP_FFTFwd_CToC_FC32_Sfs (
@@ -2244,16 +2244,6 @@ OMXResult omxSP_FFTFwd_CToC_FC32_Sfs (
OMX_FC32 *pDst,
const OMXFFTSpec_C_FC32 *pFFTSpec
);
-#ifdef __arm__
-/*
- * Non-NEON version
- */
-OMXResult omxSP_FFTFwd_CToC_FC32_Sfs_vfp (
- const OMX_FC32 *pSrc,
- OMX_FC32 *pDst,
- const OMXFFTSpec_C_FC32 *pFFTSpec
-);
-#endif
/**
* Function: omxSP_FFTFwd_RToCCS_F32_Sfs
@@ -2270,11 +2260,11 @@ OMXResult omxSP_FFTFwd_CToC_FC32_Sfs_vfp (
* n=0,1,2,...N-1
* N=2^order.
*
- * The conjugate-symmetric output sequence is represented using a CCS vector,
- * which is of length N+2, and is organized as follows:
+ * The conjugate-symmetric output sequence is represented using a CCS vector,
+ * which is of length N+2, and is organized as follows:
*
- * Index: 0 1 2 3 4 5 . . . N-2 N-1 N N+1
- * Component: R0 0 R1 I1 R2 I2 . . . R[N/2-1] I[N/2-1] R[N/2] 0
+ * Index: 0 1 2 3 4 5 . . . N-2 N-1 N N+1
+ * Component: R0 0 R1 I1 R2 I2 . . . R[N/2-1] I[N/2-1] R[N/2] 0
*
* where R[n] and I[n], respectively, denote the real and imaginary
* components for FFT bin 'n'. Bins are numbered from 0 to N/2, where
@@ -2282,18 +2272,18 @@ OMXResult omxSP_FFTFwd_CToC_FC32_Sfs_vfp (
* and bin index N/2 corresponds to the foldover frequency.
*
* Input Arguments:
- * pSrc - pointer to the real-valued input sequence, of length 2^order;
- * must be aligned on a 32-byte boundary.
- * pFFTSpec - pointer to the preallocated and initialized specification
- * structure
+ * pSrc - pointer to the real-valued input sequence, of length 2^order;
+ * must be aligned on a 32-byte boundary.
+ * pFFTSpec - pointer to the preallocated and initialized specification
+ * structure
*
* Output Arguments:
- * pDst - pointer to output sequence, represented using CCS format, of
- * length (2^order)+2; must be aligned on a 32-byte boundary.
+ * pDst - pointer to output sequence, represented using CCS format, of
+ * length (2^order)+2; must be aligned on a 32-byte boundary.
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
+ *
+ * OMX_Sts_NoErr - no error
* OMX_Sts_BadArgErr - bad arguments, if one or more of the
* following is true: - one of the pointers pSrc, pDst, or pFFTSpec
@@ -2306,67 +2296,43 @@ OMXResult omxSP_FFTFwd_RToCCS_F32_Sfs(
const OMXFFTSpec_R_F32* pFFTSpec
);
-#ifdef __arm__
-/*
- * Non-NEON version of omxSP_FFTFwd_RToCCS_F32_Sfs
- */
-OMXResult omxSP_FFTFwd_RToCCS_F32_Sfs_vfp(
- const OMX_F32* pSrc,
- OMX_F32* pDst,
- const OMXFFTSpec_R_F32* pFFTSpec
-);
-
-/*
- * Just like omxSP_FFTFwd_RToCCS_F32_Sfs, but automatically detects
- * whether NEON is available or not and chooses the appropriate
- * routine.
- */
-extern OMXResult (*omxSP_FFTFwd_RToCCS_F32)(
- const OMX_F32* pSrc,
- OMX_F32* pDst,
- const OMXFFTSpec_R_F32* pFFTSpec
-);
-#else
-#define omxSP_FFTFwd_RToCCS_F32 omxSP_FFTFwd_RToCCS_F32_Sfs
-#endif
-
/**
* Function: omxSP_FFTInv_CCSToR_S32S16_Sfs (2.2.4.4.4)
*
* Description:
- * These functions compute the inverse FFT for a conjugate-symmetric input
- * sequence. Transform length is determined by the specification structure,
- * which must be initialized prior to calling the FFT function using
- * <FFTInit_R_S16S32>. For a transform of length M, the input sequence is
- * represented using a packed CCS vector of length M+2, and is organized
- * as follows:
+ * These functions compute the inverse FFT for a conjugate-symmetric input
+ * sequence. Transform length is determined by the specification structure,
+ * which must be initialized prior to calling the FFT function using
+ * <FFTInit_R_S16S32>. For a transform of length M, the input sequence is
+ * represented using a packed CCS vector of length M+2, and is organized
+ * as follows:
*
- * Index: 0 1 2 3 4 5 . . . M-2 M-1 M M+1
- * Component R[0] 0 R[1] I[1] R[2] I[2] . . . R[M/2-1] I[M/2-1] R[M/2] 0
+ * Index: 0 1 2 3 4 5 . . . M-2 M-1 M M+1
+ * Component R[0] 0 R[1] I[1] R[2] I[2] . . . R[M/2-1] I[M/2-1] R[M/2] 0
*
- * where R[n] and I[n], respectively, denote the real and imaginary components for FFT bin n.
- * Bins are numbered from 0 to M/2, where M is the FFT length. Bin index 0
- * corresponds to the DC component, and bin index M/2 corresponds to the
- * foldover frequency.
+ * where R[n] and I[n], respectively, denote the real and imaginary components for FFT bin n.
+ * Bins are numbered from 0 to M/2, where M is the FFT length. Bin index 0
+ * corresponds to the DC component, and bin index M/2 corresponds to the
+ * foldover frequency.
*
* Input Arguments:
- * pSrc - pointer to the complex-valued input sequence represented using
- * CCS format, of length (2^order) + 2; must be aligned on a 32-byte
- * boundary.
- * pFFTSpec - pointer to the preallocated and initialized specification
- * structure
+ * pSrc - pointer to the complex-valued input sequence represented using
+ * CCS format, of length (2^order) + 2; must be aligned on a 32-byte
+ * boundary.
+ * pFFTSpec - pointer to the preallocated and initialized specification
+ * structure
* scaleFactor - output scalefactor; range is [0,16]
*
* Output Arguments:
- * pDst - pointer to the real-valued output sequence, of length 2^order ; must be
- * aligned on a 32-byte boundary.
+ * pDst - pointer to the real-valued output sequence, of length 2^order ; must be
+ * aligned on a 32-byte boundary.
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments if one or more of the following is true:
- * - pSrc, pDst, or pFFTSpec is NULL
- * - pSrc or pDst is not aligned on a 32-byte boundary
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments if one or more of the following is true:
+ * - pSrc, pDst, or pFFTSpec is NULL
+ * - pSrc or pDst is not aligned on a 32-byte boundary
* - scaleFactor<0 or scaleFactor >16
*
*/
@@ -2430,39 +2396,39 @@ OMXResult omxSP_FFTInv_CCSToR_S16_Sfs (
* Function: omxSP_FFTInv_CCSToR_S32_Sfs (2.2.4.4.4)
*
* Description:
- * These functions compute the inverse FFT for a conjugate-symmetric input
- * sequence. Transform length is determined by the specification structure,
- * which must be initialized prior to calling the FFT function using
- * <FFTInit_R_S32>. For a transform of length M, the input sequence is
- * represented using a packed CCS vector of length M+2, and is organized
- * as follows:
+ * These functions compute the inverse FFT for a conjugate-symmetric input
+ * sequence. Transform length is determined by the specification structure,
+ * which must be initialized prior to calling the FFT function using
+ * <FFTInit_R_S32>. For a transform of length M, the input sequence is
+ * represented using a packed CCS vector of length M+2, and is organized
+ * as follows:
*
- * Index: 0 1 2 3 4 5 . . . M-2 M-1 M M+1
- * Component R[0] 0 R[1] I[1] R[2] I[2] . . . R[M/2-1] I[M/2-1] R[M/2] 0
+ * Index: 0 1 2 3 4 5 . . . M-2 M-1 M M+1
+ * Component R[0] 0 R[1] I[1] R[2] I[2] . . . R[M/2-1] I[M/2-1] R[M/2] 0
*
- * where R[n] and I[n], respectively, denote the real and imaginary components for FFT bin n.
- * Bins are numbered from 0 to M/2, where M is the FFT length. Bin index 0
- * corresponds to the DC component, and bin index M/2 corresponds to the
- * foldover frequency.
+ * where R[n] and I[n], respectively, denote the real and imaginary components for FFT bin n.
+ * Bins are numbered from 0 to M/2, where M is the FFT length. Bin index 0
+ * corresponds to the DC component, and bin index M/2 corresponds to the
+ * foldover frequency.
*
* Input Arguments:
- * pSrc - pointer to the complex-valued input sequence represented using
- * CCS format, of length (2^order) + 2; must be aligned on a 32-byte
- * boundary.
- * pFFTSpec - pointer to the preallocated and initialized specification
- * structure
- * scaleFactor - output scalefactor; range is [0,32]
+ * pSrc - pointer to the complex-valued input sequence represented using
+ * CCS format, of length (2^order) + 2; must be aligned on a 32-byte
+ * boundary.
+ * pFFTSpec - pointer to the preallocated and initialized specification
+ * structure
+ * scaleFactor - output scalefactor; range is [0,32]
*
* Output Arguments:
- * pDst - pointer to the real-valued output sequence, of length 2^order ; must be
- * aligned on a 32-byte boundary.
+ * pDst - pointer to the real-valued output sequence, of length 2^order ; must be
+ * aligned on a 32-byte boundary.
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - bad arguments if one or more of the following is true:
- * - pSrc, pDst, or pFFTSpec is NULL
- * - pSrc or pDst is not aligned on a 32-byte boundary
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - bad arguments if one or more of the following is true:
+ * - pSrc, pDst, or pFFTSpec is NULL
+ * - pSrc or pDst is not aligned on a 32-byte boundary
* - scaleFactor<0 or scaleFactor >32
*
*/
@@ -2489,24 +2455,24 @@ OMXResult omxSP_FFTInv_CCSToR_S32_Sfs (
* N=2^order.
*
* Input Arguments:
- * pSrc - pointer to the complex-valued input signal, of length 2^order ;
- * must be aligned on a 32-byte boundary.
- * pFFTSpec - pointer to the preallocated and initialized specification
- * structure
+ * pSrc - pointer to the complex-valued input signal, of length 2^order ;
+ * must be aligned on a 32-byte boundary.
+ * pFFTSpec - pointer to the preallocated and initialized specification
+ * structure
*
* Output Arguments:
- * order
- * pDst - pointer to the complex-valued output signal, of length 2^order;
- * must be aligned on a 32-byte boundary.
+ * order
+ * pDst - pointer to the complex-valued output signal, of length 2^order;
+ * must be aligned on a 32-byte boundary.
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
- * OMX_Sts_BadArgErr - returned if one or more of the following conditions
- * is true:
- * - one or more of the following pointers is NULL: pSrc, pDst, or
- * pFFTSpec.
- * - pSrc or pDst is not 32-byte aligned
+ *
+ * OMX_Sts_NoErr - no error
+ * OMX_Sts_BadArgErr - returned if one or more of the following conditions
+ * is true:
+ * - one or more of the following pointers is NULL: pSrc, pDst, or
+ * pFFTSpec.
+ * - pSrc or pDst is not 32-byte aligned
* - scaleFactor<0 or scaleFactor>32
*
*/
@@ -2515,30 +2481,20 @@ OMXResult omxSP_FFTInv_CToC_FC32_Sfs (
OMX_FC32 *pDst,
const OMXFFTSpec_C_FC32 *pFFTSpec
);
-#ifdef __arm__
-/*
- * Non-NEON version
- */
-OMXResult omxSP_FFTInv_CToC_FC32_Sfs_vfp (
- const OMX_FC32 *pSrc,
- OMX_FC32 *pDst,
- const OMXFFTSpec_C_FC32 *pFFTSpec
-);
-#endif
/**
* Function: omxSP_FFTInv_CCSToR_F32_Sfs
*
* Description:
- * These functions compute the inverse FFT for a conjugate-symmetric input
- * sequence. Transform length is determined by the specification structure,
- * which must be initialized prior to calling the FFT function using
- * <FFTInit_R_F32>. For a transform of length M, the input sequence is
- * represented using a packed CCS vector of length M+2, and is organized
- * as follows:
+ * These functions compute the inverse FFT for a conjugate-symmetric input
+ * sequence. Transform length is determined by the specification structure,
+ * which must be initialized prior to calling the FFT function using
+ * <FFTInit_R_F32>. For a transform of length M, the input sequence is
+ * represented using a packed CCS vector of length M+2, and is organized
+ * as follows:
*
- * Index: 0 1 2 3 4 5 . . . M-2 M-1 M M+1
- * Comp: R[0] 0 R[1] I[1] R[2] I[2] . . . R[M/2-1] I[M/2-1] R[M/2] 0
+ * Index: 0 1 2 3 4 5 . . . M-2 M-1 M M+1
+ * Comp: R[0] 0 R[1] I[1] R[2] I[2] . . . R[M/2-1] I[M/2-1] R[M/2] 0
*
* where R[n] and I[n], respectively, denote the real and imaginary
* components for FFT bin n. Bins are numbered from 0 to M/2, where M
@@ -2557,13 +2513,13 @@ OMXResult omxSP_FFTInv_CToC_FC32_Sfs_vfp (
* 2^order ; must be aligned on a 32-byte boundary.
*
* Return Value:
- *
- * OMX_Sts_NoErr - no error
-
+ *
+ * OMX_Sts_NoErr - no error
+ *
* OMX_Sts_BadArgErr - bad arguments if one or more of the
* following is true:
- * - pSrc, pDst, or pFFTSpec is NULL
- * - pSrc or pDst is not aligned on a 32-byte boundary
+ * - pSrc, pDst, or pFFTSpec is NULL
+ * - pSrc or pDst is not aligned on a 32-byte boundary
* - scaleFactor<0 or scaleFactor >32
*
*/
@@ -2573,28 +2529,67 @@ OMXResult omxSP_FFTInv_CCSToR_F32_Sfs(
const OMXFFTSpec_R_F32* pFFTSpec
);
-#ifdef __arm__
/*
- * Non-NEON version of omxSP_FFTInv_CCSToR_F32_Sfs
- */
-OMXResult omxSP_FFTInv_CCSToR_F32_Sfs_vfp(
+ * This block sets things up appropriately for run-time or build-time selection
+ * of NEON implementations.
+ */
+#if defined(__arm__) || defined(__aarch64__)
+/*
+ * Generic versions. Just like their *_Sfs counterparts, but automatically
+ * detect whether NEON is available or not and choose the appropriate routine.
+ */
+#if defined(DL_ARM_NEON_OPTIONAL)
+extern OMXResult (*omxSP_FFTFwd_RToCCS_F32)(
const OMX_F32* pSrc,
OMX_F32* pDst,
const OMXFFTSpec_R_F32* pFFTSpec
);
-
-/*
- * Just like omxSP_FFTInv_CCSToR_F32_Sfs, but automatically detects
- * whether NEON is available or not and chooses the appropriate
- * routine.
- */
extern OMXResult (*omxSP_FFTInv_CCSToR_F32)(
const OMX_F32* pSrc,
OMX_F32* pDst,
const OMXFFTSpec_R_F32* pFFTSpec);
+#elif defined(DL_ARM_NEON)
+/* Build-time NEON selection. */
+#define omxSP_FFTFwd_RToCCS_F32 omxSP_FFTFwd_RToCCS_F32_Sfs
+#define omxSP_FFTInv_CCSToR_F32 omxSP_FFTInv_CCSToR_F32_Sfs
#else
-#define omxSP_FFTInv_CCSToR_F32 omxSP_FFTInv_CCSToR_F32_Sfs
-#endif
+/* Build-time non-NEON selection. */
+#define omxSP_FFTFwd_RToCCS_F32 omxSP_FFTFwd_CCSToR_F32_vfp
+#define omxSP_FFTInv_CCSToR_F32 omxSP_FFTInv_CCSToR_F32_vfp
+#endif /* defined(DL_ARM_NEON_OPTIONAL) */
+
+#if defined(DL_ARM_NEON_OPTIONAL) || !defined(DL_ARM_NEON)
+/* Non-NEON versions. */
+OMXResult omxSP_FFTFwd_RToCCS_F32_Sfs_vfp(
+ const OMX_F32* pSrc,
+ OMX_F32* pDst,
+ const OMXFFTSpec_R_F32* pFFTSpec
+);
+
+OMXResult omxSP_FFTInv_CCSToR_F32_Sfs_vfp(
+ const OMX_F32* pSrc,
+ OMX_F32* pDst,
+ const OMXFFTSpec_R_F32* pFFTSpec
+);
+
+OMXResult omxSP_FFTFwd_CToC_FC32_Sfs_vfp (
+ const OMX_FC32 *pSrc,
+ OMX_FC32 *pDst,
+ const OMXFFTSpec_C_FC32 *pFFTSpec
+);
+
+OMXResult omxSP_FFTInv_CToC_FC32_Sfs_vfp (
+ const OMX_FC32 *pSrc,
+ OMX_FC32 *pDst,
+ const OMXFFTSpec_C_FC32 *pFFTSpec
+);
+#endif /* defined(DL_ARM_NEON_OPTIONAL) || !defined(DL_ARM_NEON) */
+
+#else
+/* Build-time non-ARM selection. */
+#define omxSP_FFTInv_RToCCS_F32 omxSP_FFTInv_RToCCS_F32_Sfs
+#define omxSP_FFTInv_CCSToR_F32 omxSP_FFTInv_CCSToR_F32_Sfs
+#endif /* defined(__arm__) || defined(__aarch64__) */
#ifdef __cplusplus
}
diff --git a/dl/sp/src/test/test_fft.gyp b/dl/sp/src/test/test_fft.gyp
index c1be018..859ea46 100644
--- a/dl/sp/src/test/test_fft.gyp
+++ b/dl/sp/src/test/test_fft.gyp
@@ -151,6 +151,11 @@
'dependencies!' : [
'test_utilities'
],
+ 'link_settings': {
+ 'libraries': [
+ '-lm',
+ ],
+ },
'sources' : [
'aligned_ptr.c',
'compare.c',
@@ -173,7 +178,7 @@
'support/float_rfft_neon.c',
],
}],
- ['target_arch == "ia32"', {
+ ['target_arch == "ia32" or target_arch == "x64"', {
'sources': [
'support/float_rfft_x86.c',
],
@@ -193,7 +198,7 @@
'test_fft_time.c',
],
'conditions': [
- ['target_arch == "ia32" or target_arch == "arm64" or target_arch == "mipsel"', {
+ ['target_arch == "ia32" or target_arch == "x64" or target_arch == "arm64" or target_arch == "mipsel"', {
'defines': [
# Timing test only for float FFTs on x86 and arm64 and MIPSEL.
'FLOAT_ONLY',
@@ -207,32 +212,44 @@
'type': 'none',
'conditions' : [
['target_arch == "arm"', {
- # Supported test programs for ARM
- 'dependencies': [
- 'test_fft16',
- 'test_fft32',
- 'test_float_fft',
- 'test_float_rfft',
- 'test_rfft16_s32',
- 'test_rfft16_s16',
- 'test_rfft32',
- # Non-Neon tests
- 'test_fft_time_armv7',
- 'test_float_fft_armv7',
- 'test_float_rfft_armv7',
- # Tests with detection
- 'test_float_rfft_detect',
+ 'conditions' : [
+ ['arm_neon==1 or OS=="android"', {
+ # NEON tests.
+ 'dependencies': [
+ 'test_fft16',
+ 'test_fft32',
+ 'test_float_fft',
+ 'test_float_rfft',
+ 'test_rfft16_s32',
+ 'test_rfft16_s16',
+ 'test_rfft32',
+ ],
+ }],
+ ['arm_neon==0 or OS=="android"', {
+ # Non-NEON tests.
+ 'dependencies': [
+ 'test_fft_time_armv7',
+ 'test_float_fft_armv7',
+ 'test_float_rfft_armv7',
+ ],
+ }],
+ ['OS=="android"', {
+ # Tests with detection.
+ 'dependencies': [
+ 'test_float_rfft_detect',
+ ],
+ }],
],
}],
['target_arch == "arm64"', {
- # Supported test programs for ARM64
+ # Supported test programs for ARM64.
'dependencies': [
'test_float_fft',
],
}],
],
'dependencies' : [
- # All architectures must support at least the float rfft test
+ # All architectures must support at least the float rfft test.
'test_float_rfft',
'test_fft_time',
],
diff --git a/dl/sp/src/test/test_fft_time.c b/dl/sp/src/test/test_fft_time.c
index 6154228..beaa895 100644
--- a/dl/sp/src/test/test_fft_time.c
+++ b/dl/sp/src/test/test_fft_time.c
@@ -11,6 +11,7 @@
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <sys/resource.h>
#include <sys/time.h>
#include <unistd.h>
@@ -609,11 +610,11 @@ void TimeOneSC32FFT(int count, int fft_log_size, float signal_value,
GetUserTime(&start_time);
for (k = 0; k < count; ++k) {
for (n = 0; n < fft_size; ++n) {
- if (fabs(x[n].Re) > factor) {
- factor = fabs(x[n].Re);
+ if (abs(x[n].Re) > factor) {
+ factor = abs(x[n].Re);
}
- if (fabs(x[n].Im) > factor) {
- factor = fabs(x[n].Im);
+ if (abs(x[n].Im) > factor) {
+ factor = abs(x[n].Im);
}
}
@@ -653,11 +654,11 @@ void TimeOneSC32FFT(int count, int fft_log_size, float signal_value,
GetUserTime(&start_time);
for (k = 0; k < count; ++k) {
for (n = 0; n < fft_size; ++n) {
- if (fabs(x[n].Re) > factor) {
- factor = fabs(x[n].Re);
+ if (abs(x[n].Re) > factor) {
+ factor = abs(x[n].Re);
}
- if (fabs(x[n].Im) > factor) {
- factor = fabs(x[n].Im);
+ if (abs(x[n].Im) > factor) {
+ factor = abs(x[n].Im);
}
}
factor = ((1 << 18) - 1) / factor;
@@ -791,11 +792,11 @@ void TimeOneSC16FFT(int count, int fft_log_size, float signal_value,
GetUserTime(&start_time);
for (k = 0; k < count; ++k) {
for (n = 0; n < fft_size; ++n) {
- if (fabs(x[n].Re) > factor) {
- factor = fabs(x[n].Re);
+ if (abs(x[n].Re) > factor) {
+ factor = abs(x[n].Re);
}
- if (fabs(x[n].Im) > factor) {
- factor = fabs(x[n].Im);
+ if (abs(x[n].Im) > factor) {
+ factor = abs(x[n].Im);
}
}
@@ -835,11 +836,11 @@ void TimeOneSC16FFT(int count, int fft_log_size, float signal_value,
GetUserTime(&start_time);
for (k = 0; k < count; ++k) {
for (n = 0; n < fft_size; ++n) {
- if (fabs(x[n].Re) > factor) {
- factor = fabs(x[n].Re);
+ if (abs(x[n].Re) > factor) {
+ factor = abs(x[n].Re);
}
- if (fabs(x[n].Im) > factor) {
- factor = fabs(x[n].Im);
+ if (abs(x[n].Im) > factor) {
+ factor = abs(x[n].Im);
}
}
factor = ((1 << 15) - 1) / factor;
@@ -1013,8 +1014,8 @@ void TimeOneRFFT16(int count, int fft_log_size, float signal_value,
* Spend some time computing the max of the signal, and then scaling it.
*/
for (n = 0; n < fft_size; ++n) {
- if (fabs(xr[n]) > factor) {
- factor = fabs(xr[n]);
+ if (abs(xr[n]) > factor) {
+ factor = abs(xr[n]);
}
}
@@ -1080,8 +1081,8 @@ void TimeOneRFFT16(int count, int fft_log_size, float signal_value,
* Spend some time scaling the FFT signal to fixed point.
*/
for (n = 0; n < fft_size; ++n) {
- if (fabs(yrTrue[n]) > factor) {
- factor = fabs(yrTrue[n]);
+ if (abs(yrTrue[n]) > factor) {
+ factor = abs(yrTrue[n]);
}
}
for (n = 0; n < fft_size; ++n) {
@@ -1282,8 +1283,8 @@ void TimeOneRFFT32(int count, int fft_log_size, float signal_value,
* Spend some time computing the max of the signal, and then scaling it.
*/
for (n = 0; n < fft_size; ++n) {
- if (fabs(xr[n]) > factor) {
- factor = fabs(xr[n]);
+ if (abs(xr[n]) > factor) {
+ factor = abs(xr[n]);
}
}
@@ -1331,8 +1332,8 @@ void TimeOneRFFT32(int count, int fft_log_size, float signal_value,
* Spend some time scaling the FFT signal to fixed point.
*/
for (n = 0; n < fft_size + 2; ++n) {
- if (fabs(yrTrue[n]) > factor) {
- factor = fabs(yrTrue[n]);
+ if (abs(yrTrue[n]) > factor) {
+ factor = abs(yrTrue[n]);
}
}
for (n = 0; n < fft_size + 2; ++n) {
diff --git a/dl/sp/src/test/test_util_fft.c b/dl/sp/src/test/test_util_fft.c
index 3deb041..025ee8d 100644
--- a/dl/sp/src/test/test_util_fft.c
+++ b/dl/sp/src/test/test_util_fft.c
@@ -10,6 +10,7 @@
#include "dl/sp/src/test/test_util.h"
#include "dl/sp/src/test/compare.h"
+#include "dl/sp/src/test/gensig.h"
/*
* Test results from running either forward or inverse FFT tests