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
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  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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  * 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 @@
  *
  * 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 @@
  *
  * 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 @@
  *
  * 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 @@
  *
  * 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 @@
  * 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 @@
  *
  * 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 @@
     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 @@
  *     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 @@
  * 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 @@
     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 @@
  * 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 @@
  *     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 @@
     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 @@
  *          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 @@
     const OMXFFTSpec_R_F32* pFFTSpec
 );
 
-#ifdef __arm__
 /*
- * Non-NEON version of omxSP_FFTInv_CCSToR_F32_Sfs
- */    
+ * 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
+);
+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
+/* 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
 );
 
-/*
- * 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);
+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
-#define omxSP_FFTInv_CCSToR_F32 omxSP_FFTInv_CCSToR_F32_Sfs    
-#endif
+/* 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 @@
       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 @@
       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 @@
       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 @@
       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 @@
          * 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 @@
          * 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 @@
          * 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 @@
          * 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