xref: /aosp_15_r20/external/libmpeg2/decoder/impeg2d_debug.h (revision a97c2a1f0a796dc32bed80d3353c69c5fc07c750)
1*a97c2a1fSXin Li /******************************************************************************
2*a97c2a1fSXin Li  *
3*a97c2a1fSXin Li  * Copyright (C) 2015 The Android Open Source Project
4*a97c2a1fSXin Li  *
5*a97c2a1fSXin Li  * Licensed under the Apache License, Version 2.0 (the "License");
6*a97c2a1fSXin Li  * you may not use this file except in compliance with the License.
7*a97c2a1fSXin Li  * You may obtain a copy of the License at:
8*a97c2a1fSXin Li  *
9*a97c2a1fSXin Li  * http://www.apache.org/licenses/LICENSE-2.0
10*a97c2a1fSXin Li  *
11*a97c2a1fSXin Li  * Unless required by applicable law or agreed to in writing, software
12*a97c2a1fSXin Li  * distributed under the License is distributed on an "AS IS" BASIS,
13*a97c2a1fSXin Li  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*a97c2a1fSXin Li  * See the License for the specific language governing permissions and
15*a97c2a1fSXin Li  * limitations under the License.
16*a97c2a1fSXin Li  *
17*a97c2a1fSXin Li  *****************************************************************************
18*a97c2a1fSXin Li  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*a97c2a1fSXin Li */
20*a97c2a1fSXin Li /*****************************************************************************/
21*a97c2a1fSXin Li /*                                                                           */
22*a97c2a1fSXin Li /*  File Name         : c_coding_example.h                                   */
23*a97c2a1fSXin Li /*                                                                           */
24*a97c2a1fSXin Li /*  Description       : This file contains all the necessary examples to     */
25*a97c2a1fSXin Li /*                      establish a consistent use of Ittiam C coding        */
26*a97c2a1fSXin Li /*                      standards (based on Indian Hill C Standards)         */
27*a97c2a1fSXin Li /*                                                                           */
28*a97c2a1fSXin Li /*  List of Functions : <List the functions defined in this file>            */
29*a97c2a1fSXin Li /*                                                                           */
30*a97c2a1fSXin Li /*  Issues / Problems : None                                                 */
31*a97c2a1fSXin Li /*                                                                           */
32*a97c2a1fSXin Li /*  Revision History  :                                                      */
33*a97c2a1fSXin Li /*                                                                           */
34*a97c2a1fSXin Li /*         DD MM YYYY   Author(s)       Changes (Describe the changes made)  */
35*a97c2a1fSXin Li /*         10 01 2005   Ittiam          Draft                                */
36*a97c2a1fSXin Li /*                                                                           */
37*a97c2a1fSXin Li /*****************************************************************************/
38*a97c2a1fSXin Li #ifndef __IMPEG2D_DEBUG_H__
39*a97c2a1fSXin Li #define __IMPEG2D_DEBUG_H__
40*a97c2a1fSXin Li 
41*a97c2a1fSXin Li 
42*a97c2a1fSXin Li /*************************************************************************/
43*a97c2a1fSXin Li /* DEBUG                                                                 */
44*a97c2a1fSXin Li /*************************************************************************/
45*a97c2a1fSXin Li #define DEBUG_MB        0
46*a97c2a1fSXin Li 
47*a97c2a1fSXin Li 
48*a97c2a1fSXin Li #if DEBUG_MB
49*a97c2a1fSXin Li void impeg2d_trace_mb_start(UWORD32 mb_x, UWORD32 mb_y);
50*a97c2a1fSXin Li void impeg2d_frm_num_set(void);
51*a97c2a1fSXin Li UWORD32 impeg2d_frm_num_get(void);
52*a97c2a1fSXin Li 
53*a97c2a1fSXin Li #define IMPEG2D_TRACE_MB_START(mb_x, mb_y) void impeg2d_trace_mb_start(UWORD32 mb_x, UWORD32 mb_y);
54*a97c2a1fSXin Li #define IMPEG2D_FRM_NUM_SET()              void impeg2d_frm_num_set(void);
55*a97c2a1fSXin Li #define IMPEG2D_FRM_NUM_GET()              UWORD32 impeg2d_frm_num_get(void);
56*a97c2a1fSXin Li #else
57*a97c2a1fSXin Li #define IMPEG2D_TRACE_MB_START(mb_x, mb_y)
58*a97c2a1fSXin Li #define IMPEG2D_FRM_NUM_SET()
59*a97c2a1fSXin Li #define IMPEG2D_FRM_NUM_GET()
60*a97c2a1fSXin Li #endif
61*a97c2a1fSXin Li 
62*a97c2a1fSXin Li 
63*a97c2a1fSXin Li #define STATISTICS  0
64*a97c2a1fSXin Li 
65*a97c2a1fSXin Li #if STATISTICS
66*a97c2a1fSXin Li void impeg2d_idct_inp_statistics(WORD16 *pi2_idct_inp, WORD32 non_zero_cols, WORD32 non_zero_rows);
67*a97c2a1fSXin Li void impeg2d_iqnt_inp_statistics(WORD16 *pi2_iqnt_inp, WORD32 non_zero_cols, WORD32 non_zero_rows);
68*a97c2a1fSXin Li void impeg2d_print_statistics(void);
69*a97c2a1fSXin Li #define IMPEG2D_IDCT_INP_STATISTICS(pi2_idct_inp, non_zero_cols, non_zero_rows)  impeg2d_idct_inp_statistics(pi2_idct_inp, non_zero_cols, non_zero_rows)
70*a97c2a1fSXin Li #define IMPEG2D_IQNT_INP_STATISTICS(pi2_iqnt_inp, non_zero_cols, non_zero_rows)  impeg2d_iqnt_inp_statistics(pi2_iqnt_inp, non_zero_cols, non_zero_rows)
71*a97c2a1fSXin Li #define IMPEG2D_PRINT_STATISTICS()            impeg2d_print_statistics()
72*a97c2a1fSXin Li #else
73*a97c2a1fSXin Li #define IMPEG2D_IDCT_INP_STATISTICS(pi2_idct_inp, non_zero_cols, non_zero_rows)
74*a97c2a1fSXin Li #define IMPEG2D_IQNT_INP_STATISTICS(pi2_iqnt_inp, non_zero_cols, non_zero_rows)
75*a97c2a1fSXin Li #define IMPEG2D_PRINT_STATISTICS()
76*a97c2a1fSXin Li #endif
77*a97c2a1fSXin Li 
78*a97c2a1fSXin Li 
79*a97c2a1fSXin Li #if 0
80*a97c2a1fSXin Li #define PROFILE_DIS_SKIP_MB
81*a97c2a1fSXin Li #define PROFILE_DIS_MC
82*a97c2a1fSXin Li #define PROFILE_DIS_INVQUANT
83*a97c2a1fSXin Li #define PROFILE_DIS_IDCT
84*a97c2a1fSXin Li #define PROFILE_DIS_MEMSET_RESBUF
85*a97c2a1fSXin Li #endif
86*a97c2a1fSXin Li 
87*a97c2a1fSXin Li 
88*a97c2a1fSXin Li #ifdef PROFILE_DIS_SKIP_MB
89*a97c2a1fSXin Li #define PROFILE_DISABLE_SKIP_MB() return;
90*a97c2a1fSXin Li #else
91*a97c2a1fSXin Li #define PROFILE_DISABLE_SKIP_MB()
92*a97c2a1fSXin Li #endif
93*a97c2a1fSXin Li 
94*a97c2a1fSXin Li #ifdef PROFILE_DIS_MC
95*a97c2a1fSXin Li #define PROFILE_DISABLE_MC_IF0 if(0)
96*a97c2a1fSXin Li #define PROFILE_DISABLE_MC_RETURN return;
97*a97c2a1fSXin Li #else
98*a97c2a1fSXin Li #define PROFILE_DISABLE_MC_IF0
99*a97c2a1fSXin Li #define PROFILE_DISABLE_MC_RETURN
100*a97c2a1fSXin Li #endif
101*a97c2a1fSXin Li 
102*a97c2a1fSXin Li #ifdef PROFILE_DIS_INVQUANT
103*a97c2a1fSXin Li #define PROFILE_DISABLE_INVQUANT_IF0 if(0)
104*a97c2a1fSXin Li #else
105*a97c2a1fSXin Li #define PROFILE_DISABLE_INVQUANT_IF0
106*a97c2a1fSXin Li #endif
107*a97c2a1fSXin Li 
108*a97c2a1fSXin Li #ifdef PROFILE_DIS_IDCT
109*a97c2a1fSXin Li #define PROFILE_DISABLE_IDCT_IF0 if(0)
110*a97c2a1fSXin Li #else
111*a97c2a1fSXin Li #define PROFILE_DISABLE_IDCT_IF0
112*a97c2a1fSXin Li #endif
113*a97c2a1fSXin Li 
114*a97c2a1fSXin Li #ifdef PROFILE_DIS_MEMSET_RESBUF
115*a97c2a1fSXin Li #define PROFILE_DISABLE_MEMSET_RESBUF_IF0 if(0)
116*a97c2a1fSXin Li #else
117*a97c2a1fSXin Li #define PROFILE_DISABLE_MEMSET_RESBUF_IF0
118*a97c2a1fSXin Li #endif
119*a97c2a1fSXin Li 
120*a97c2a1fSXin Li 
121*a97c2a1fSXin Li #endif /* __IMPEG2D_DEBUG_H__ */
122