Home | History | Annotate | Download | only in api
      1 /*
      2  * Copyright (C) 2007-2008 ARM Limited
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  *
     16  */
     17 /**
     18  *
     19  * File Name:  armCOMM.h
     20  * OpenMAX DL: v1.0.2
     21  * Revision:   9641
     22  * Date:       Thursday, February 7, 2008
     23  *
     24  *
     25  *
     26  *
     27  * File: armCOMM.h
     28  * Brief: Declares Common APIs/Data Types used across OpenMAX API's
     29  *
     30  */
     31 
     32 
     33 #ifndef _armCommon_H_
     34 #define _armCommon_H_
     35 
     36 #include "omxtypes.h"
     37 
     38 typedef struct
     39 {
     40   OMX_F32 Re; /** Real part */
     41   OMX_F32 Im; /** Imaginary part */
     42 
     43 } OMX_FC32; /** single precision floating point complex number */
     44 
     45 typedef struct
     46 {
     47   OMX_F64 Re; /** Real part */
     48   OMX_F64 Im; /** Imaginary part */
     49 
     50 } OMX_FC64; /** double precision floating point complex number */
     51 
     52 
     53 /* Used by both IP and IC domains for 8x8 JPEG blocks. */
     54 typedef OMX_S16 ARM_BLOCK8x8[64];
     55 
     56 
     57 #include "armOMX.h"
     58 
     59 #define  armPI (OMX_F64)(3.1415926535897932384626433832795)
     60 
     61 /***********************************************************************/
     62 
     63 /* Compiler extensions */
     64 #ifdef ARM_DEBUG
     65 /* debug version */
     66 #include <stdlib.h>
     67 #include <assert.h>
     68 #include <stdio.h>
     69 #define armError(str) {printf((str)); printf("\n"); exit(-1);}
     70 #define armWarn(str) {printf((str)); printf("\n");}
     71 #define armIgnore(a) ((void)a)
     72 #define armAssert(a) assert(a)
     73 #else
     74 /* release version */
     75 #define armError(str) ((void) (str))
     76 #define armWarn(str)  ((void) (str))
     77 #define armIgnore(a)  ((void) (a))
     78 #define armAssert(a)  ((void) (a))
     79 #endif /* ARM_DEBUG */
     80 
     81 /* Arithmetic operations */
     82 
     83 #define armMin(a,b)             ( (a) > (b) ?  (b):(a) )
     84 #define armMax(a,b)             ( (a) > (b) ?  (a):(b) )
     85 #define armAbs(a)               ( (a) <  0  ? -(a):(a) )
     86 
     87 /* Alignment operation */
     88 
     89 #define armAlignToBytes(Ptr,N)      (Ptr + ( ((N-(int)Ptr)&(N-1)) / sizeof(*Ptr) ))
     90 #define armAlignTo2Bytes(Ptr)       armAlignToBytes(Ptr,2)
     91 #define armAlignTo4Bytes(Ptr)       armAlignToBytes(Ptr,4)
     92 #define armAlignTo8Bytes(Ptr)       armAlignToBytes(Ptr,8)
     93 #define armAlignTo16Bytes(Ptr)      armAlignToBytes(Ptr,16)
     94 
     95 /* Error and Alignment check */
     96 
     97 #define armRetArgErrIf(condition, code)  if(condition) { return (code); }
     98 #define armRetDataErrIf(condition, code) if(condition) { return (code); }
     99 
    100 #ifndef ALIGNMENT_DOESNT_MATTER
    101 #define armIsByteAligned(Ptr,N)     ((((int)(Ptr)) % N)==0)
    102 #define armNotByteAligned(Ptr,N)    ((((int)(Ptr)) % N)!=0)
    103 #else
    104 #define armIsByteAligned(Ptr,N)     (1)
    105 #define armNotByteAligned(Ptr,N)    (0)
    106 #endif
    107 
    108 #define armIs2ByteAligned(Ptr)      armIsByteAligned(Ptr,2)
    109 #define armIs4ByteAligned(Ptr)      armIsByteAligned(Ptr,4)
    110 #define armIs8ByteAligned(Ptr)      armIsByteAligned(Ptr,8)
    111 #define armIs16ByteAligned(Ptr)     armIsByteAligned(Ptr,16)
    112 
    113 #define armNot2ByteAligned(Ptr)     armNotByteAligned(Ptr,2)
    114 #define armNot4ByteAligned(Ptr)     armNotByteAligned(Ptr,4)
    115 #define armNot8ByteAligned(Ptr)     armNotByteAligned(Ptr,8)
    116 #define armNot16ByteAligned(Ptr)    armNotByteAligned(Ptr,16)
    117 #define armNot32ByteAligned(Ptr)    armNotByteAligned(Ptr,32)
    118 
    119 /**
    120  * Function: armRoundFloatToS16_ref/armRoundFloatToS32_ref/armRoundFloatToS64
    121  *
    122  * Description:
    123  * Converts a double precision value into a short int/int after rounding
    124  *
    125  * Parameters:
    126  * [in]  Value                 Float value to be converted
    127  *
    128  * Return Value:
    129  * [out] converted value in OMX_S16/OMX_S32 format
    130  *
    131  */
    132 
    133 OMX_S16 armRoundFloatToS16 (OMX_F64 Value);
    134 OMX_S32 armRoundFloatToS32 (OMX_F64 Value);
    135 OMX_S64 armRoundFloatToS64 (OMX_F64 Value);
    136 
    137 /**
    138  * Function: armSatRoundFloatToS16_ref/armSatRoundFloatToS32
    139  *
    140  * Description:
    141  * Converts a double precision value into a short int/int after rounding and saturation
    142  *
    143  * Parameters:
    144  * [in]  Value                 Float value to be converted
    145  *
    146  * Return Value:
    147  * [out] converted value in OMX_S16/OMX_S32 format
    148  *
    149  */
    150 
    151 OMX_S16 armSatRoundFloatToS16 (OMX_F64 Value);
    152 OMX_S32 armSatRoundFloatToS32 (OMX_F64 Value);
    153 
    154 /**
    155  * Function: armSatRoundFloatToU16_ref/armSatRoundFloatToU32
    156  *
    157  * Description:
    158  * Converts a double precision value into a unsigned short int/int after rounding and saturation
    159  *
    160  * Parameters:
    161  * [in]  Value                 Float value to be converted
    162  *
    163  * Return Value:
    164  * [out] converted value in OMX_U16/OMX_U32 format
    165  *
    166  */
    167 
    168 OMX_U16 armSatRoundFloatToU16 (OMX_F64 Value);
    169 OMX_U32 armSatRoundFloatToU32 (OMX_F64 Value);
    170 
    171 /**
    172  * Function: armSignCheck
    173  *
    174  * Description:
    175  * Checks the sign of a variable:
    176  * returns 1 if it is Positive
    177  * returns 0 if it is 0
    178  * returns -1 if it is Negative
    179  *
    180  * Remarks:
    181  *
    182  * Parameters:
    183  * [in]	    var     Variable to be checked
    184  *
    185  * Return Value:
    186  * OMX_INT --   returns 1 if it is Positive
    187  *              returns 0 if it is 0
    188  *              returns -1 if it is Negative
    189  */
    190 
    191 OMX_INT armSignCheck (OMX_S16 var);
    192 
    193 /**
    194  * Function: armClip
    195  *
    196  * Description: Clips the input between MAX and MIN value
    197  *
    198  *
    199  * Remarks:
    200  *
    201  * Parameters:
    202  * [in] Min     lower bound
    203  * [in] Max     upper bound
    204  * [in] src     variable to the clipped
    205  *
    206  * Return Value:
    207  * OMX_S32 --   returns clipped value
    208  */
    209 
    210 OMX_S32 armClip (
    211         OMX_INT min,
    212         OMX_INT max,
    213         OMX_S32 src
    214         );
    215 
    216 /**
    217  * Function: armClip_F32
    218  *
    219  * Description: Clips the input between MAX and MIN value
    220  *
    221  *
    222  * Remarks:
    223  *
    224  * Parameters:
    225  * [in] Min     lower bound
    226  * [in] Max     upper bound
    227  * [in] src     variable to the clipped
    228  *
    229  * Return Value:
    230  * OMX_F32 --   returns clipped value
    231  */
    232 
    233 OMX_F32 armClip_F32 (
    234         OMX_F32 min,
    235         OMX_F32 max,
    236         OMX_F32 src
    237         );
    238 
    239 /**
    240  * Function: armShiftSat_F32
    241  *
    242  * Description: Divides a float value by 2^shift and
    243  * saturates it for unsigned value range for satBits.
    244  * Second parameter is like "shifting" the corresponding
    245  * integer value. Takes care of rounding while clipping the final
    246  * value.
    247  *
    248  * Parameters:
    249  * [in] v          Number to be operated upon
    250  * [in] shift      Divides the input "v" by "2^shift"
    251  * [in] satBits    Final range is [0, 2^satBits)
    252  *
    253  * Return Value:
    254  * OMX_S32 --   returns "shifted" saturated value
    255  */
    256 
    257 OMX_U32 armShiftSat_F32(
    258         OMX_F32 v,
    259         OMX_INT shift,
    260         OMX_INT satBits
    261         );
    262 
    263 /**
    264  * Functions: armSwapElem
    265  *
    266  * Description:
    267  * This function swaps two elements at the specified pointer locations.
    268  * The size of each element could be anything as specified by <elemSize>
    269  *
    270  * Return Value:
    271  * OMXResult -- Error status from the function
    272  */
    273 OMXResult armSwapElem(OMX_U8 *pBuf1, OMX_U8 *pBuf2, OMX_INT elemSize);
    274 
    275 
    276 /**
    277  * Function: armMedianOf3
    278  *
    279  * Description: Finds the median of three numbers
    280  *
    281  * Remarks:
    282  *
    283  * Parameters:
    284  * [in] fEntry     First entry
    285  * [in] sEntry     second entry
    286  * [in] tEntry     Third entry
    287  *
    288  * Return Value:
    289  * OMX_S32 --   returns the median value
    290  */
    291 
    292 OMX_S32 armMedianOf3 (
    293     OMX_S32 fEntry,
    294     OMX_S32 sEntry,
    295     OMX_S32 tEntry
    296     );
    297 
    298 /**
    299  * Function: armLogSize
    300  *
    301  * Description: Finds the size of a positive value and returns the same
    302  *
    303  * Remarks:
    304  *
    305  * Parameters:
    306  * [in] value    Positive value
    307  *
    308  * Return Value:
    309  * OMX_U8 --   returns the size of the positive value
    310  */
    311 
    312 OMX_U8 armLogSize (
    313     OMX_U16 value
    314     );
    315 
    316 /***********************************************************************/
    317                 /* Saturating Arithmetic operations */
    318 
    319 /**
    320  * Function :armSatAdd_S32()
    321  *
    322  * Description :
    323  *   Returns the result of saturated addition of the two inputs Value1, Value2
    324  *
    325  * Parametrs:
    326  * [in] Value1       First Operand
    327  * [in] Value2       Second Operand
    328  *
    329  * Return:
    330  * [out]             Result of operation
    331  *
    332  *
    333  **/
    334 
    335 OMX_S32 armSatAdd_S32(
    336                 OMX_S32 Value1,
    337                 OMX_S32 Value2
    338                 );
    339 
    340 /**
    341  * Function :armSatAdd_S64()
    342  *
    343  * Description :
    344  *   Returns the result of saturated addition of the two inputs Value1, Value2
    345  *
    346  * Parametrs:
    347  * [in] Value1       First Operand
    348  * [in] Value2       Second Operand
    349  *
    350  * Return:
    351  * [out]             Result of operation
    352  *
    353  *
    354  **/
    355 
    356 OMX_S64 armSatAdd_S64(
    357                 OMX_S64 Value1,
    358                 OMX_S64 Value2
    359                 );
    360 
    361 /** Function :armSatSub_S32()
    362  *
    363  * Description :
    364  *     Returns the result of saturated substraction of the two inputs Value1, Value2
    365  *
    366  * Parametrs:
    367  * [in] Value1       First Operand
    368  * [in] Value2       Second Operand
    369  *
    370  * Return:
    371  * [out]             Result of operation
    372  *
    373  **/
    374 
    375 OMX_S32 armSatSub_S32(
    376                     OMX_S32 Value1,
    377                     OMX_S32 Value2
    378                     );
    379 
    380 /**
    381  * Function :armSatMac_S32()
    382  *
    383  * Description :
    384  *     Returns the result of Multiplication of Value1 and Value2 and subesquent saturated
    385  *     accumulation with Mac
    386  *
    387  * Parametrs:
    388  * [in] Value1       First Operand
    389  * [in] Value2       Second Operand
    390  * [in] Mac          Accumulator
    391  *
    392  * Return:
    393  * [out]             Result of operation
    394  **/
    395 
    396 OMX_S32 armSatMac_S32(
    397                     OMX_S32 Mac,
    398                     OMX_S16 Value1,
    399                     OMX_S16 Value2
    400                     );
    401 
    402 /**
    403  * Function :armSatMac_S16S32_S32
    404  *
    405  * Description :
    406  *   Returns the result of saturated MAC operation of the three inputs delayElem, filTap , mac
    407  *
    408  *   mac = mac + Saturate_in_32Bits(delayElem * filTap)
    409  *
    410  * Parametrs:
    411  * [in] delayElem    First 32 bit Operand
    412  * [in] filTap       Second 16 bit Operand
    413  * [in] mac          Result of MAC operation
    414  *
    415  * Return:
    416  * [out]  mac        Result of operation
    417  *
    418  **/
    419 
    420 OMX_S32 armSatMac_S16S32_S32(
    421                         OMX_S32 mac,
    422                         OMX_S32 delayElem,
    423                         OMX_S16 filTap );
    424 
    425 /**
    426  * Function :armSatRoundRightShift_S32_S16
    427  *
    428  * Description :
    429  *   Returns the result of rounded right shift operation of input by the scalefactor
    430  *
    431  *   output = Saturate_in_16Bits( ( RightShift( (Round(input) , scaleFactor ) )
    432  *
    433  * Parametrs:
    434  * [in] input       The input to be operated on
    435  * [in] scaleFactor The shift number
    436  *
    437  * Return:
    438  * [out]            Result of operation
    439  *
    440  **/
    441 
    442 
    443 OMX_S16 armSatRoundRightShift_S32_S16(
    444                         OMX_S32 input,
    445                         OMX_INT scaleFactor);
    446 
    447 /**
    448  * Function :armSatRoundLeftShift_S32()
    449  *
    450  * Description :
    451  *     Returns the result of saturating left-shift operation on input
    452  *     Or rounded Right shift if the input Shift is negative.
    453  *
    454  * Parametrs:
    455  * [in] Value        Operand
    456  * [in] shift        Operand for shift operation
    457  *
    458  * Return:
    459  * [out]             Result of operation
    460  *
    461  **/
    462 
    463 OMX_S32 armSatRoundLeftShift_S32(
    464                         OMX_S32 Value,
    465                         OMX_INT shift
    466                         );
    467 
    468 /**
    469  * Function :armSatRoundLeftShift_S64()
    470  *
    471  * Description :
    472  *     Returns the result of saturating left-shift operation on input
    473  *     Or rounded Right shift if the input Shift is negative.
    474  *
    475  * Parametrs:
    476  * [in] Value        Operand
    477  * [in] shift        Operand for shift operation
    478  *
    479  * Return:
    480  * [out]             Result of operation
    481  *
    482  **/
    483 
    484 OMX_S64 armSatRoundLeftShift_S64(
    485                         OMX_S64 Value,
    486                         OMX_INT shift
    487                         );
    488 
    489 /**
    490  * Function :armSatMulS16S32_S32()
    491  *
    492  * Description :
    493  *     Returns the result of a S16 data type multiplied with an S32 data type
    494  *     in a S32 container
    495  *
    496  * Parametrs:
    497  * [in] input1       Operand 1
    498  * [in] input2       Operand 2
    499  *
    500  * Return:
    501  * [out]             Result of operation
    502  *
    503  **/
    504 
    505 
    506 OMX_S32 armSatMulS16S32_S32(
    507                     OMX_S16 input1,
    508                     OMX_S32 input2);
    509 
    510 /**
    511  * Function :armSatMulS32S32_S32()
    512  *
    513  * Description :
    514  *     Returns the result of a S32 data type multiplied with an S32 data type
    515  *     in a S32 container
    516  *
    517  * Parametrs:
    518  * [in] input1       Operand 1
    519  * [in] input2       Operand 2
    520  *
    521  * Return:
    522  * [out]             Result of operation
    523  *
    524  **/
    525 
    526 OMX_S32 armSatMulS32S32_S32(
    527                     OMX_S32 input1,
    528                     OMX_S32 input2);
    529 
    530 
    531 /**
    532  * Function :armIntDivAwayFromZero()
    533  *
    534  * Description : Integer division with rounding to the nearest integer.
    535  *               Half-integer values are rounded away from zero
    536  *               unless otherwise specified. For example 3//2 is rounded
    537  *               to 2, and -3//2 is rounded to -2.
    538  *
    539  * Parametrs:
    540  * [in] Num        Operand 1
    541  * [in] Deno       Operand 2
    542  *
    543  * Return:
    544  * [out]             Result of operation input1//input2
    545  *
    546  **/
    547 
    548 OMX_S32 armIntDivAwayFromZero (OMX_S32 Num, OMX_S32 Deno);
    549 
    550 
    551 /***********************************************************************/
    552 /*
    553  * Debugging macros
    554  *
    555  */
    556 
    557 
    558 /*
    559  * Definition of output stream - change to stderr if necessary
    560  */
    561 #define DEBUG_STREAM stdout
    562 
    563 /*
    564  * Debug printf macros, one for each argument count.
    565  * Add more if needed.
    566  */
    567 #ifdef DEBUG_ON
    568 #include <stdio.h>
    569 
    570 #define DEBUG_PRINTF_0(a)                                               fprintf(DEBUG_STREAM, a)
    571 #define DEBUG_PRINTF_1(a, b)                                            fprintf(DEBUG_STREAM, a, b)
    572 #define DEBUG_PRINTF_2(a, b, c)                                         fprintf(DEBUG_STREAM, a, b, c)
    573 #define DEBUG_PRINTF_3(a, b, c, d)                                      fprintf(DEBUG_STREAM, a, b, c, d)
    574 #define DEBUG_PRINTF_4(a, b, c, d, e)                                   fprintf(DEBUG_STREAM, a, b, c, d, e)
    575 #define DEBUG_PRINTF_5(a, b, c, d, e, f)                                fprintf(DEBUG_STREAM, a, b, c, d, e, f)
    576 #define DEBUG_PRINTF_6(a, b, c, d, e, f, g)                             fprintf(DEBUG_STREAM, a, b, c, d, e, f, g)
    577 #define DEBUG_PRINTF_7(a, b, c, d, e, f, g, h)                          fprintf(DEBUG_STREAM, a, b, c, d, e, f, g, h)
    578 #define DEBUG_PRINTF_8(a, b, c, d, e, f, g, h, i)                       fprintf(DEBUG_STREAM, a, b, c, d, e, f, g, h, i)
    579 #define DEBUG_PRINTF_9(a, b, c, d, e, f, g, h, i, j)                    fprintf(DEBUG_STREAM, a, b, c, d, e, f, g, h, i, j)
    580 #define DEBUG_PRINTF_10(a, b, c, d, e, f, g, h, i, j, k)                fprintf(DEBUG_STREAM, a, b, c, d, e, f, g, h, i, j, k)
    581 #define DEBUG_PRINTF_11(a, b, c, d, e, f, g, h, i, j, k, l)             fprintf(DEBUG_STREAM, a, b, c, d, e, f, g, h, i, j, k, l)
    582 #define DEBUG_PRINTF_12(a, b, c, d, e, f, g, h, i, j, k, l, m)          fprintf(DEBUG_STREAM, a, b, c, d, e, f, g, h, i, j, k, l, m)
    583 #define DEBUG_PRINTF_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n)       fprintf(DEBUG_STREAM, a, b, c, d, e, f, g, h, i, j, k, l, m, n)
    584 #define DEBUG_PRINTF_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)    fprintf(DEBUG_STREAM, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
    585 #else /* DEBUG_ON */
    586 #define DEBUG_PRINTF_0(a)
    587 #define DEBUG_PRINTF_1(a, b)
    588 #define DEBUG_PRINTF_2(a, b, c)
    589 #define DEBUG_PRINTF_3(a, b, c, d)
    590 #define DEBUG_PRINTF_4(a, b, c, d, e)
    591 #define DEBUG_PRINTF_5(a, b, c, d, e, f)
    592 #define DEBUG_PRINTF_6(a, b, c, d, e, f, g)
    593 #define DEBUG_PRINTF_7(a, b, c, d, e, f, g, h)
    594 #define DEBUG_PRINTF_8(a, b, c, d, e, f, g, h, i)
    595 #define DEBUG_PRINTF_9(a, b, c, d, e, f, g, h, i, j)
    596 #define DEBUG_PRINTF_10(a, b, c, d, e, f, g, h, i, j, k)
    597 #define DEBUG_PRINTF_11(a, b, c, d, e, f, g, h, i, j, k, l)
    598 #define DEBUG_PRINTF_12(a, b, c, d, e, f, g, h, i, j, k, l, m)
    599 #define DEBUG_PRINTF_13(a, b, c, d, e, f, g, h, i, j, k, l, m, n)
    600 #define DEBUG_PRINTF_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
    601 #endif /* DEBUG_ON */
    602 
    603 
    604 /*
    605  * Domain and sub domain definitions
    606  *
    607  * In order to turn on debug for an entire domain or sub-domain
    608  * at compile time, one of the DEBUG_DOMAIN_* below may be defined,
    609  * which will activate debug in all of the defines it contains.
    610  */
    611 
    612 #ifdef DEBUG_DOMAIN_AC
    613 #define DEBUG_OMXACAAC_DECODECHANPAIRELT_MPEG4
    614 #define DEBUG_OMXACAAC_DECODECHANPAIRELT
    615 #define DEBUG_OMXACAAC_DECODEDATSTRELT
    616 #define DEBUG_OMXACAAC_DECODEFILLELT
    617 #define DEBUG_OMXACAAC_DECODEISSTEREO_S32
    618 #define DEBUG_OMXACAAC_DECODEMSPNS_S32
    619 #define DEBUG_OMXACAAC_DECODEMSSTEREO_S32_I
    620 #define DEBUG_OMXACAAC_DECODEPRGCFGELT
    621 #define DEBUG_OMXACAAC_DECODETNS_S32_I
    622 #define DEBUG_OMXACAAC_DEINTERLEAVESPECTRUM_S32
    623 #define DEBUG_OMXACAAC_ENCODETNS_S32_I
    624 #define DEBUG_OMXACAAC_LONGTERMPREDICT_S32
    625 #define DEBUG_OMXACAAC_LONGTERMRECONSTRUCT_S32
    626 #define DEBUG_OMXACAAC_MDCTFWD_S32
    627 #define DEBUG_OMXACAAC_MDCTINV_S32_S16
    628 #define DEBUG_OMXACAAC_NOISELESSDECODE
    629 #define DEBUG_OMXACAAC_QUANTINV_S32_I
    630 #define DEBUG_OMXACAAC_UNPACKADIFHEADER
    631 #define DEBUG_OMXACAAC_UNPACKADTSFRAMEHEADER
    632 #define DEBUG_OMXACMP3_HUFFMANDECODESFBMBP_S32
    633 #define DEBUG_OMXACMP3_HUFFMANDECODESFB_S32
    634 #define DEBUG_OMXACMP3_HUFFMANDECODE_S32
    635 #define DEBUG_OMXACMP3_MDCTINV_S32
    636 #define DEBUG_OMXACMP3_REQUANTIZESFB_S32_I
    637 #define DEBUG_OMXACMP3_REQUANTIZE_S32_I
    638 #define DEBUG_OMXACMP3_SYNTHPQMF_S32_S16
    639 #define DEBUG_OMXACMP3_UNPACKFRAMEHEADER
    640 #define DEBUG_OMXACMP3_UNPACKSCALEFACTORS_S8
    641 #define DEBUG_OMXACMP3_UNPACKSIDEINFO
    642 #endif /* DEBUG_DOMAIN_AC */
    643 
    644 
    645 #ifdef DEBUG_DOMAIN_VC
    646 #define DEBUG_OMXVCM4P10_AVERAGE_16X
    647 #define DEBUG_OMXVCM4P10_AVERAGE_4X
    648 #define DEBUG_OMXVCM4P10_AVERAGE_8X
    649 #define DEBUG_OMXVCM4P10_DEBLOCKCHROMA_U8_C1IR
    650 #define DEBUG_OMXVCM4P10_DEBLOCKLUMA_U8_C1IR
    651 #define DEBUG_OMXVCM4P10_DECODECHROMADCCOEFFSTOPAIRCAVLC_U8
    652 #define DEBUG_OMXVCM4P10_DECODECOEFFSTOPAIRCAVLC_U8
    653 #define DEBUG_OMXVCM4P10_DEQUANTTRANSFORMACFROMPAIR_U8_S16_C1_DLX
    654 #define DEBUG_OMXVCM4P10_EXPANDFRAME
    655 #define DEBUG_OMXVCM4P10_FILTERDEBLOCKINGCHROMA_HOREDGE_U8_C1IR
    656 #define DEBUG_OMXVCM4P10_FILTERDEBLOCKINGCHROMA_VEREDGE_U8_C1IR
    657 #define DEBUG_OMXVCM4P10_FILTERDEBLOCKINGLUMA_HOREDGE_U8_C1IR
    658 #define DEBUG_OMXVCM4P10_FILTERDEBLOCKINGLUMA_VEREDGE_U8_C1IR
    659 #define DEBUG_OMXVCM4P10_PREDICTINTRACHROMA8X8_U8_C1R
    660 #define DEBUG_OMXVCM4P10_PREDICTINTRA_16X16_U8_C1R
    661 #define DEBUG_OMXVCM4P10_PREDICTINTRA_4X4_U8_C1R
    662 #define DEBUG_OMXVCM4P10_SADQUAR_16X
    663 #define DEBUG_OMXVCM4P10_SADQUAR_4X
    664 #define DEBUG_OMXVCM4P10_SADQUAR_8X
    665 #define DEBUG_OMXVCM4P10_SAD_16X
    666 #define DEBUG_OMXVCM4P10_SAD_4X
    667 #define DEBUG_OMXVCM4P10_SAD_8X
    668 #define DEBUG_OMXVCM4P10_SATD_4X4
    669 #define DEBUG_OMXVCM4P10_TRANSFORMDEQUANTCHROMADCFROMPAIR_U8_S16_C1
    670 #define DEBUG_OMXVCM4P10_TRANSFORMDEQUANTLUMADCFROMPAIR_U8_S16_C1
    671 #define DEBUG_OMXVCM4P10_TRANSFORMQUANT_CHROMADC
    672 #define DEBUG_OMXVCM4P10_TRANSFORMQUANT_LUMADC
    673 #define DEBUG_OMXVCM4P2_BLOCKMATCH_HALF_16X16
    674 #define DEBUG_OMXVCM4P2_BLOCKMATCH_HALF_8X8
    675 #define DEBUG_OMXVCM4P2_BLOCKMATCH_INTEGER_16X16
    676 #define DEBUG_OMXVCM4P2_BLOCKMATCH_INTEGER_8X8
    677 #define DEBUG_OMXVCM4P2_COMPUTETEXTUREERRORBLOCK_SAD_U8_S16
    678 #define DEBUG_OMXVCM4P2_COMPUTETEXTUREERRORBLOCK_U8_S16
    679 #define DEBUG_OMXVCM4P2_DCT8X8BLKDLX
    680 #define DEBUG_OMXVCM4P2_DECODEBLOCKCOEF_INTER_S16
    681 #define DEBUG_OMXVCM4P2_DECODEPADMV_PVOP
    682 #define DEBUG_OMXVCM4P2_DECODEVLCZIGZAG_INTER_S16
    683 #define DEBUG_OMXVCM4P2_DECODEVLCZIGZAG_INTRAACVLC_S16
    684 #define DEBUG_OMXVCM4P2_DECODEVLCZIGZAG_INTRADCVLC_S16
    685 #define DEBUG_OMXVCM4P2_ENCODEMV_U8_S16
    686 #define DEBUG_OMXVCM4P2_ENCODEVLCZIGZAG_INTER_S16
    687 #define DEBUG_OMXVCM4P2_ENCODEVLCZIGZAG_INTRAACVLC_S16
    688 #define DEBUG_OMXVCM4P2_ENCODEVLCZIGZAG_INTRADCVLC_S16
    689 #define DEBUG_OMXVCM4P2_FINDMVPRED
    690 #define DEBUG_OMXVCM4P2_IDCT8X8BLKDLX
    691 #define DEBUG_OMXVCM4P2_LIMITMVTORECT
    692 #define DEBUG_OMXVCM4P2_MOTIONESTIMATIONMB
    693 #define DEBUG_OMXVCM4P2_PADMBGRAY_U8
    694 #define DEBUG_OMXVCM4P2_PADMBHORIZONTAL_U8
    695 #define DEBUG_OMXVCM4P2_PADMBVERTICAL_U8
    696 #define DEBUG_OMXVCM4P2_PADMV
    697 #define DEBUG_OMXVCM4P2_QUANTINTER_S16_I
    698 #define DEBUG_OMXVCM4P2_QUANTINTRA_S16_I
    699 #define DEBUG_OMXVCM4P2_QUANTINVINTER_S16_I
    700 #define DEBUG_OMXVCM4P2_QUANTINVINTRA_S16_I
    701 #define DEBUG_OMXVCM4P2_TRANSRECBLOCKCEOF_INTER
    702 #define DEBUG_OMXVCM4P2_TRANSRECBLOCKCEOF_INTRA
    703 #endif /* DEBUG_DOMAIN_VC */
    704 
    705 
    706 #ifdef DEBUG_DOMAIN_IC
    707 /* To be filled in */
    708 #endif /* DEBUG_DOMAIN_IC */
    709 
    710 
    711 #ifdef DEBUG_DOMAIN_SP
    712 #define DEBUG_OMXACSP_DOTPROD_S16
    713 #define DEBUG_OMXACSP_BLOCKEXP_S16
    714 #define DEBUG_OMXACSP_BLOCKEXP_S32
    715 #define DEBUG_OMXACSP_COPY_S16
    716 #define DEBUG_OMXACSP_DOTPROD_S16
    717 #define DEBUG_OMXACSP_DOTPROD_S16_SFS
    718 #define DEBUG_OMXACSP_FFTFWD_CTOC_SC16_SFS
    719 #define DEBUG_OMXACSP_FFTFWD_CTOC_SC32_SFS
    720 #define DEBUG_OMXACSP_FFTFWD_RTOCCS_S16S32_SFS
    721 #define DEBUG_OMXACSP_FFTFWD_RTOCCS_S32_SFS
    722 #define DEBUG_OMXACSP_FFTGETBUFSIZE_C_SC16
    723 #define DEBUG_OMXACSP_FFTGETBUFSIZE_C_SC32
    724 #define DEBUG_OMXACSP_FFTGETBUFSIZE_R_S16_S32
    725 #define DEBUG_OMXACSP_FFTGETBUFSIZE_R_S32
    726 #define DEBUG_OMXACSP_FFTINIT_C_SC16
    727 #define DEBUG_OMXACSP_FFTINIT_C_SC32
    728 #define DEBUG_OMXACSP_FFTINIT_R_S16_S32
    729 #define DEBUG_OMXACSP_FFTINIT_R_S32
    730 #define DEBUG_OMXACSP_FFTINV_CCSTOR_S32S16_SFS
    731 #define DEBUG_OMXACSP_FFTINV_CCSTOR_S32_SFS
    732 #define DEBUG_OMXACSP_FFTINV_CTOC_SC16_SFS
    733 #define DEBUG_OMXACSP_FFTINV_CTOC_SC32_SFS
    734 #define DEBUG_OMXACSP_FILTERMEDIAN_S32_I
    735 #define DEBUG_OMXACSP_FILTERMEDIAN_S32
    736 #define DEBUG_OMXACSP_FIRONE_DIRECT_S16_ISFS
    737 #define DEBUG_OMXACSP_FIRONE_DIRECT_S16_I
    738 #define DEBUG_OMXACSP_FIRONE_DIRECT_S16
    739 #define DEBUG_OMXACSP_FIRONE_DIRECT_S16_SFS
    740 #define DEBUG_OMXACSP_FIR_DIRECT_S16_ISFS
    741 #define DEBUG_OMXACSP_FIR_DIRECT_S16_I
    742 #define DEBUG_OMXACSP_FIR_DIRECT_S16
    743 #define DEBUG_OMXACSP_FIR_DIRECT_S16_SFS
    744 #define DEBUG_OMXACSP_IIRONE_BIQUADDIRECT_S16_I
    745 #define DEBUG_OMXACSP_IIRONE_BIQUADDIRECT_S16
    746 #define DEBUG_OMXACSP_IIRONE_DIRECT_S16_I
    747 #define DEBUG_OMXACSP_IIRONE_DIRECT_S16
    748 #define DEBUG_OMXACSP_IIR_BIQUADDIRECT_S16_I
    749 #define DEBUG_OMXACSP_IIR_BIQUADDIRECT_S16
    750 #define DEBUG_OMXACSP_IIR_DIRECT_S16_I
    751 #define DEBUG_OMXACSP_IIR_DIRECT_S16
    752 #endif /* DEBUG_DOMAIN_SP */
    753 
    754 
    755 #ifdef DEBUG_DOMAIN_IP
    756 #define DEBUG_OMXIPBM_ADDC_U8_C1R_SFS
    757 #define DEBUG_OMXIPBM_COPY_U8_C1R
    758 #define DEBUG_OMXIPBM_COPY_U8_C3R
    759 #define DEBUG_OMXIPBM_MIRROR_U8_C1R
    760 #define DEBUG_OMXIPBM_MULC_U8_C1R_SFS
    761 #define DEBUG_OMXIPCS_COLORTWISTQ14_U8_C3R
    762 #define DEBUG_OMXIPCS_RGB565TOYCBCR420LS_MCU_U16_S16_C3P3R
    763 #define DEBUG_OMXIPCS_RGB565TOYCBCR422LS_MCU_U16_S16_C3P3R
    764 #define DEBUG_OMXIPCS_RGB565TOYCBCR444LS_MCU_U16_S16_C3P3R
    765 #define DEBUG_OMXIPCS_RGBTOYCBCR420LS_MCU_U8_S16_C3P3R
    766 #define DEBUG_OMXIPCS_RGBTOYCBCR422LS_MCU_U8_S16_C3P3R
    767 #define DEBUG_OMXIPCS_RGBTOYCBCR444LS_MCU_U8_S16_C3P3R
    768 #define DEBUG_OMXIPCS_YCBCR420RSZROT_U8_P3R
    769 #define DEBUG_OMXIPCS_YCBCR420TORGB565LS_MCU_S16_U16_P3C3R
    770 #define DEBUG_OMXIPCS_YCBCR420TORGB565_U8_U16_P3C3R
    771 #define DEBUG_OMXIPCS_YCBCR420TORGBLS_MCU_S16_U8_P3C3R
    772 #define DEBUG_OMXIPCS_YCBCR422RSZCSCROTRGB_U8_C2R
    773 #define DEBUG_OMXIPCS_YCBCR422RSZROT_U8_P3R
    774 #define DEBUG_OMXIPCS_YCBCR422TORGB565LS_MCU_S16_U16_P3C3R
    775 #define DEBUG_OMXIPCS_YCBCR422TORGB565_U8_U16_C2C3R
    776 #define DEBUG_OMXIPCS_YCBCR422TORGBLS_MCU_S16_U8_P3C3R
    777 #define DEBUG_OMXIPCS_YCBCR422TORGB_U8_C2C3R
    778 #define DEBUG_OMXIPCS_YCBCR422TOYCBCR420ROTATE_U8_C2P3R
    779 #define DEBUG_OMXIPCS_YCBCR422TOYCBCR420ROTATE_U8_P3R
    780 #define DEBUG_OMXIPCS_YCBCR444TORGB565LS_MCU_S16_U16_P3C3R
    781 #define DEBUG_OMXIPCS_YCBCR444TORGBLS_MCU_S16_U8_P3C3R
    782 #define DEBUG_OMXIPCS_YCBCRTORGB565_U8_U16_C3R
    783 #define DEBUG_OMXIPCS_YCBCRTORGB565_U8_U16_P3C3R
    784 #define DEBUG_OMXIPCS_YCBCRTORGB_U8_C3R
    785 #define DEBUG_OMXIPPP_GETCENTRALMOMENT_S64
    786 #define DEBUG_OMXIPPP_GETSPATIALMOMENT_S64
    787 #define DEBUG_OMXIPPP_MOMENTGETSTATESIZE_S64
    788 #define DEBUG_OMXIPPP_MOMENTINIT_S64
    789 #define DEBUG_OMXIPPP_MOMENTS64S_U8_C1R
    790 #define DEBUG_OMXIPPP_MOMENTS64S_U8_C3R
    791 #endif /* DEBUG_DOMAIN_IP */
    792 
    793 
    794 #endif /* _armCommon_H_ */
    795 
    796 /*End of File*/
    797 
    798 
    799 
    800 
    801