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