xref: /aosp_15_r20/external/libhevc/decoder/ihevcd_debug.h (revision c83a76b084498d55f252f48b2e3786804cdf24b7)
1*c83a76b0SSuyog Pawar /******************************************************************************
2*c83a76b0SSuyog Pawar *
3*c83a76b0SSuyog Pawar * Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore
4*c83a76b0SSuyog Pawar *
5*c83a76b0SSuyog Pawar * Licensed under the Apache License, Version 2.0 (the "License");
6*c83a76b0SSuyog Pawar * you may not use this file except in compliance with the License.
7*c83a76b0SSuyog Pawar * You may obtain a copy of the License at:
8*c83a76b0SSuyog Pawar *
9*c83a76b0SSuyog Pawar * http://www.apache.org/licenses/LICENSE-2.0
10*c83a76b0SSuyog Pawar *
11*c83a76b0SSuyog Pawar * Unless required by applicable law or agreed to in writing, software
12*c83a76b0SSuyog Pawar * distributed under the License is distributed on an "AS IS" BASIS,
13*c83a76b0SSuyog Pawar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*c83a76b0SSuyog Pawar * See the License for the specific language governing permissions and
15*c83a76b0SSuyog Pawar * limitations under the License.
16*c83a76b0SSuyog Pawar *
17*c83a76b0SSuyog Pawar ******************************************************************************/
18*c83a76b0SSuyog Pawar /**
19*c83a76b0SSuyog Pawar *******************************************************************************
20*c83a76b0SSuyog Pawar * @file
21*c83a76b0SSuyog Pawar *  ihevcd_debug.h
22*c83a76b0SSuyog Pawar *
23*c83a76b0SSuyog Pawar * @brief
24*c83a76b0SSuyog Pawar *  Debug defs
25*c83a76b0SSuyog Pawar *
26*c83a76b0SSuyog Pawar * @author
27*c83a76b0SSuyog Pawar *  Naveen S R
28*c83a76b0SSuyog Pawar *
29*c83a76b0SSuyog Pawar * @par List of Functions:
30*c83a76b0SSuyog Pawar *
31*c83a76b0SSuyog Pawar * @remarks
32*c83a76b0SSuyog Pawar *  None
33*c83a76b0SSuyog Pawar *
34*c83a76b0SSuyog Pawar *******************************************************************************
35*c83a76b0SSuyog Pawar */
36*c83a76b0SSuyog Pawar 
37*c83a76b0SSuyog Pawar #ifndef _IHEVCD_DEBUG_H_
38*c83a76b0SSuyog Pawar #define _IHEVCD_DEBUG_H_
39*c83a76b0SSuyog Pawar 
40*c83a76b0SSuyog Pawar #define DEBUG_REF_LIST 0
41*c83a76b0SSuyog Pawar #define DEBUG_PADDED_REGION 0
42*c83a76b0SSuyog Pawar #define DEBUG_DUMP_PRE_ILF 0
43*c83a76b0SSuyog Pawar #define DEBUG_PRINT_IQ_IT_RECON 0
44*c83a76b0SSuyog Pawar #define DEBUG_PRINT_MV 0
45*c83a76b0SSuyog Pawar #define DEBUG_DEBLK_LEAF_LEVEL 0
46*c83a76b0SSuyog Pawar #define DEBUG_NAL_TYPE 0
47*c83a76b0SSuyog Pawar #define DEBUG_SAO_TMP_BUF 0
48*c83a76b0SSuyog Pawar #define DEBUG_BREAK_AFTER_SLICE_NAL 0
49*c83a76b0SSuyog Pawar #define DEBUG_DUMP_FRAME_BUFFERS_INFO 0
50*c83a76b0SSuyog Pawar #define DEBUG_DUMP_FRAME_PU_INFO 0
51*c83a76b0SSuyog Pawar #define DEBUG_MV_MAP 0
52*c83a76b0SSuyog Pawar 
53*c83a76b0SSuyog Pawar #if (DEBUG_REF_LIST||DEBUG_PADDED_REGION||DEBUG_DUMP_PRE_ILF||DEBUG_PRINT_IQ_IT_RECON||DEBUG_PRINT_MV||DEBUG_DEBLK_LEAF_LEVEL||DEBUG_NAL_TYPE||DEBUG_SAO_TMP_BUF||DEBUG_BREAK_AFTER_SLICE_NAL || DEBUG_DUMP_FRAME_BUFFERS_INFO || DEBUG_DUMP_FRAME_PU_INFO)
54*c83a76b0SSuyog Pawar #define DEBUG_CODE 1
55*c83a76b0SSuyog Pawar #else
56*c83a76b0SSuyog Pawar #define DEBUG_CODE 0
57*c83a76b0SSuyog Pawar #endif
58*c83a76b0SSuyog Pawar 
59*c83a76b0SSuyog Pawar 
60*c83a76b0SSuyog Pawar #if DEBUG_DUMP_FRAME_PU_INFO
61*c83a76b0SSuyog Pawar #define DEBUG_DUMP_PIC_PU(ps_codec) ihevcd_debug_dump_pic_pu(ps_codec);
62*c83a76b0SSuyog Pawar #else
63*c83a76b0SSuyog Pawar #define DEBUG_DUMP_PIC_PU(ps_codec)
64*c83a76b0SSuyog Pawar #endif
65*c83a76b0SSuyog Pawar 
66*c83a76b0SSuyog Pawar 
67*c83a76b0SSuyog Pawar #if DEBUG_DUMP_FRAME_BUFFERS_INFO
68*c83a76b0SSuyog Pawar UWORD8 au1_pic_avail_ctb_flags[MAX_WD * MAX_HT / MIN_CTB_SIZE / MIN_CTB_SIZE];
69*c83a76b0SSuyog Pawar UWORD32 au4_pic_ctb_slice_xy[MAX_WD * MAX_HT / MIN_CTB_SIZE / MIN_CTB_SIZE];
70*c83a76b0SSuyog Pawar 
71*c83a76b0SSuyog Pawar #define DEBUG_DUMP_PIC_BUFFERS(ps_codec) ihevcd_debug_dump_pic_buffers(ps_codec);
72*c83a76b0SSuyog Pawar #else
73*c83a76b0SSuyog Pawar #define DEBUG_DUMP_PIC_BUFFERS(ps_codec)
74*c83a76b0SSuyog Pawar #endif
75*c83a76b0SSuyog Pawar 
76*c83a76b0SSuyog Pawar #if DEBUG_BREAK_AFTER_SLICE_NAL
77*c83a76b0SSuyog Pawar #define BREAK_AFTER_SLICE_NAL()                 \
78*c83a76b0SSuyog Pawar                 if(ps_codec->i4_header_done)    \
79*c83a76b0SSuyog Pawar                     break;
80*c83a76b0SSuyog Pawar #else
81*c83a76b0SSuyog Pawar #define BREAK_AFTER_SLICE_NAL()     ;
82*c83a76b0SSuyog Pawar #endif
83*c83a76b0SSuyog Pawar 
84*c83a76b0SSuyog Pawar 
85*c83a76b0SSuyog Pawar #if DEBUG_SAO_TMP_BUF
86*c83a76b0SSuyog Pawar #define DEBUG_INIT_TMP_BUF(pu1_buf_luma, pu1_buf_chroma) ihevcd_debug_init_tmp_buf(pu1_buf_luma, pu1_buf_chroma)
87*c83a76b0SSuyog Pawar #define DEBUG_PROCESS_TMP_BUF(pu1_buf_luma, pu1_buf_chroma) ihevcd_debug_process_tmp_buf(pu1_buf_luma, pu1_buf_chroma)
88*c83a76b0SSuyog Pawar #else
89*c83a76b0SSuyog Pawar #define DEBUG_INIT_TMP_BUF(pu1_buf_luma, pu1_buf_chroma)
90*c83a76b0SSuyog Pawar #define DEBUG_PROCESS_TMP_BUF(pu1_buf_luma, pu1_buf_chroma)
91*c83a76b0SSuyog Pawar #endif
92*c83a76b0SSuyog Pawar 
93*c83a76b0SSuyog Pawar #if DEBUG_NAL_TYPE
94*c83a76b0SSuyog Pawar 
95*c83a76b0SSuyog Pawar #define DEBUG_PRINT_NAL_INFO(ps_codec, nal_type) ihevcd_debug_print_nal_info(ps_codec, nal_type); \
96*c83a76b0SSuyog Pawar     break;
97*c83a76b0SSuyog Pawar #define RETURN_IF_NAL_INFO return;
98*c83a76b0SSuyog Pawar 
99*c83a76b0SSuyog Pawar #else
100*c83a76b0SSuyog Pawar 
101*c83a76b0SSuyog Pawar #define DEBUG_PRINT_NAL_INFO(ps_codec, nal_type)
102*c83a76b0SSuyog Pawar #define RETURN_IF_NAL_INFO
103*c83a76b0SSuyog Pawar 
104*c83a76b0SSuyog Pawar #endif
105*c83a76b0SSuyog Pawar 
106*c83a76b0SSuyog Pawar #if DEBUG_REF_LIST
107*c83a76b0SSuyog Pawar 
108*c83a76b0SSuyog Pawar #define DEBUG_PRINT_REF_LIST_POCS(i4_pic_order_cnt_val, ps_slice_hdr, ps_dpb_mgr, u4_num_st_curr_before, u4_num_st_curr_after, u4_num_st_foll, u4_num_lt_curr, u4_num_lt_foll, ai4_poc_st_curr_before, ai4_poc_st_curr_after, ai4_poc_st_foll, ai4_poc_lt_curr, ai4_poc_lt_foll)  \
109*c83a76b0SSuyog Pawar     ihevcd_debug_print_ref_list_pocs(i4_pic_order_cnt_val, ps_slice_hdr, ps_dpb_mgr, u4_num_st_curr_before, u4_num_st_curr_after, u4_num_st_foll, u4_num_lt_curr, u4_num_lt_foll, ai4_poc_st_curr_before, ai4_poc_st_curr_after, ai4_poc_st_foll, ai4_poc_lt_curr, ai4_poc_lt_foll);
110*c83a76b0SSuyog Pawar 
111*c83a76b0SSuyog Pawar #else
112*c83a76b0SSuyog Pawar 
113*c83a76b0SSuyog Pawar #define DEBUG_PRINT_REF_LIST_POCS(i4_pic_order_cnt_val, ps_slice_hdr, ps_dpb_mgr, u4_num_st_curr_before, u4_num_st_curr_after, u4_num_st_foll, u4_num_lt_curr, u4_num_lt_foll, ai4_poc_st_curr_before, ai4_poc_st_curr_after, ai4_poc_st_foll, ai4_poc_lt_curr, ai4_poc_lt_foll)
114*c83a76b0SSuyog Pawar 
115*c83a76b0SSuyog Pawar #endif
116*c83a76b0SSuyog Pawar 
117*c83a76b0SSuyog Pawar #if DEBUG_PADDED_REGION
118*c83a76b0SSuyog Pawar 
119*c83a76b0SSuyog Pawar #define DEBUG_VALIDATE_PADDED_REGION(ps_proc) ihevcd_debug_validate_padded_region(ps_proc);
120*c83a76b0SSuyog Pawar 
121*c83a76b0SSuyog Pawar #else
122*c83a76b0SSuyog Pawar 
123*c83a76b0SSuyog Pawar #define DEBUG_VALIDATE_PADDED_REGION(ps_proc)
124*c83a76b0SSuyog Pawar 
125*c83a76b0SSuyog Pawar #endif
126*c83a76b0SSuyog Pawar 
127*c83a76b0SSuyog Pawar #if DEBUG_DUMP_PRE_ILF
128*c83a76b0SSuyog Pawar 
129*c83a76b0SSuyog Pawar #define DUMP_PRE_ILF(pu1_cur_pic_luma, pu1_cur_pic_chroma, pic_wd, pic_ht, pic_strd) ihevcd_debug_dump_pic(pu1_cur_pic_luma, pu1_cur_pic_chroma, pic_wd, pic_ht, pic_strd)
130*c83a76b0SSuyog Pawar #define DUMP_BS(pu4_pic_vert_bs, pu4_pic_horz_bs, vert_size_in_bytes, horz_size_in_bytes) ihevcd_debug_dump_bs(pu4_pic_vert_bs, pu4_pic_horz_bs, vert_size_in_bytes, horz_size_in_bytes)
131*c83a76b0SSuyog Pawar #define DUMP_QP(pu1_qp, size_in_bytes) ihevcd_debug_dump_qp(pu1_qp, size_in_bytes)
132*c83a76b0SSuyog Pawar #define DUMP_QP_CONST_IN_CTB(pu1_qp_const_in_ctb, size_in_bytes) ihevcs_dump_qp_const_in_ctb(pu1_qp_const_in_ctb, size_in_bytes)
133*c83a76b0SSuyog Pawar #define DUMP_NO_LOOP_FILTER(pu1_pic_no_loop_filter, size_in_bytes) ihevcd_debug_dump_no_loop_filter(pu1_pic_no_loop_filter, size_in_bytes)
134*c83a76b0SSuyog Pawar #define DUMP_OFFSETS(beta_offset_div_2, tc_offset_div_2, qp_offset_u, qp_offset_v) ihevcd_debug_dump_offsets(beta_offset_div_2, tc_offset_div_2, qp_offset_u, qp_offset_v)
135*c83a76b0SSuyog Pawar 
136*c83a76b0SSuyog Pawar #else
137*c83a76b0SSuyog Pawar 
138*c83a76b0SSuyog Pawar #define DUMP_PRE_ILF(pu1_cur_pic_luma, pu1_cur_pic_chroma, pic_wd, pic_ht, pic_strd)
139*c83a76b0SSuyog Pawar #define DUMP_BS(pu4_pic_vert_bs, pu4_pic_horz_bs, vert_size_in_bytes, horz_size_in_bytes)
140*c83a76b0SSuyog Pawar #define DUMP_QP(pu1_qp, size_in_bytes)
141*c83a76b0SSuyog Pawar #define DUMP_QP_CONST_IN_CTB(pu1_qp_const_in_ctb, size_in_bytes)
142*c83a76b0SSuyog Pawar #define DUMP_NO_LOOP_FILTER(pu1_pic_no_loop_filter, size_in_bytes)
143*c83a76b0SSuyog Pawar #define DUMP_OFFSETS(beta_offset_div_2, tc_offset_div_2, qp_offset_u, qp_offset_v)
144*c83a76b0SSuyog Pawar 
145*c83a76b0SSuyog Pawar #endif
146*c83a76b0SSuyog Pawar 
147*c83a76b0SSuyog Pawar 
148*c83a76b0SSuyog Pawar #if DEBUG_DEBLK_LEAF_LEVEL
149*c83a76b0SSuyog Pawar 
150*c83a76b0SSuyog Pawar #define DUMP_DEBLK_LUMA_VERT(pu1_src, src_strd, u4_bs, qp_p, qp_q, beta_offset_div2, tc_offset_div2, filter_p, filter_q) ihevcd_debug_deblk_luma_vert(pu1_src, src_strd, u4_bs, qp_p, qp_q, beta_offset_div2, tc_offset_div2, filter_p, filter_q);
151*c83a76b0SSuyog Pawar #define DUMP_DEBLK_LUMA_HORZ(pu1_src, src_strd, u4_bs, qp_p, qp_q, beta_offset_div2, tc_offset_div2, filter_p, filter_q) ihevcd_debug_deblk_luma_horz(pu1_src, src_strd, u4_bs, qp_p, qp_q, beta_offset_div2, tc_offset_div2, filter_p, filter_q);
152*c83a76b0SSuyog Pawar #define DUMP_DEBLK_CHROMA_VERT(pu1_src, src_strd, u4_bs, qp_p, qp_q, qp_offset_u, qp_offset_v, tc_offset_div2, filter_p, filter_q) ihevcd_debug_deblk_chroma_vert(pu1_src, src_strd, u4_bs, qp_p, qp_q, qp_offset_u, qp_offset_v, tc_offset_div2, filter_p, filter_q)
153*c83a76b0SSuyog Pawar #define DUMP_DEBLK_CHROMA_HORZ(pu1_src, src_strd, u4_bs, qp_p, qp_q, qp_offset_u, qp_offset_v, tc_offset_div2, filter_p, filter_q) ihevcd_debug_deblk_chroma_horz(pu1_src, src_strd, u4_bs, qp_p, qp_q, qp_offset_u, qp_offset_v, tc_offset_div2, filter_p, filter_q)
154*c83a76b0SSuyog Pawar 
155*c83a76b0SSuyog Pawar #else
156*c83a76b0SSuyog Pawar 
157*c83a76b0SSuyog Pawar #define DUMP_DEBLK_LUMA_VERT(pu1_src, src_strd, u4_bs3, qp_p, qp_q, beta_offset_div2, tc_offset_div2, filter_p, filter_q)
158*c83a76b0SSuyog Pawar #define DUMP_DEBLK_LUMA_HORZ(pu1_src, src_strd, u4_bs3, qp_p, qp_q, beta_offset_div2, tc_offset_div2, filter_p, filter_q)
159*c83a76b0SSuyog Pawar #define DUMP_DEBLK_CHROMA_VERT(pu1_src, src_strd, u4_bs, qp_p, qp_q, qp_offset_u, qp_offset_v, tc_offset_div2, filter_p, filter_q)
160*c83a76b0SSuyog Pawar #define DUMP_DEBLK_CHROMA_HORZ(pu1_src, src_strd, u4_bs, qp_p, qp_q, qp_offset_u, qp_offset_v, tc_offset_div2, filter_p, filter_q)
161*c83a76b0SSuyog Pawar 
162*c83a76b0SSuyog Pawar #endif
163*c83a76b0SSuyog Pawar 
164*c83a76b0SSuyog Pawar #if DEBUG_MV_MAP
165*c83a76b0SSuyog Pawar #define DEBUG_DUMP_MV_MAP(ps_codec) ihevcd_debug_dump_mv_map(ps_codec);
166*c83a76b0SSuyog Pawar #else
167*c83a76b0SSuyog Pawar #define DEBUG_DUMP_MV_MAP(ps_codec)
168*c83a76b0SSuyog Pawar #endif
169*c83a76b0SSuyog Pawar void print_coeff(WORD16 *pi2_tu_coeff, WORD32 trans_size);
170*c83a76b0SSuyog Pawar 
171*c83a76b0SSuyog Pawar void print_dst(UWORD8 *pu1_dst,
172*c83a76b0SSuyog Pawar                WORD32 dst_strd,
173*c83a76b0SSuyog Pawar                WORD32 trans_size,
174*c83a76b0SSuyog Pawar                WORD32 is_luma);
175*c83a76b0SSuyog Pawar 
176*c83a76b0SSuyog Pawar #endif /* _IHEVCD_DEBUG_H_ */
177