armCOMM.h revision 0c1bc742181ded4930842b46e9507372f0b1b963
1/**
2 *
3 * File Name:  armCOMM.h
4 * OpenMAX DL: v1.0.2
5 * Revision:   12290
6 * Date:       Wednesday, April 9, 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