armCOMM.h revision 78e52bfac041d71ce53b5b13c2abf78af742b09d
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