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