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 38typedef 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 45typedef 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. */ 54typedef 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 133OMX_S16 armRoundFloatToS16 (OMX_F64 Value); 134OMX_S32 armRoundFloatToS32 (OMX_F64 Value); 135OMX_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 151OMX_S16 armSatRoundFloatToS16 (OMX_F64 Value); 152OMX_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 168OMX_U16 armSatRoundFloatToU16 (OMX_F64 Value); 169OMX_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 191OMX_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 210OMX_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 233OMX_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 257OMX_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 */ 273OMXResult 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 292OMX_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 312OMX_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 335OMX_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 356OMX_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 375OMX_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 396OMX_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 420OMX_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 443OMX_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 463OMX_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 484OMX_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 506OMX_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 526OMX_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 548OMX_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