1*c83a76b0SSuyog Pawar /****************************************************************************** 2*c83a76b0SSuyog Pawar * 3*c83a76b0SSuyog Pawar * Copyright (C) 2018 The Android Open Source Project 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 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19*c83a76b0SSuyog Pawar */ 20*c83a76b0SSuyog Pawar 21*c83a76b0SSuyog Pawar /** 22*c83a76b0SSuyog Pawar ****************************************************************************** 23*c83a76b0SSuyog Pawar * @file ihevce_trace.h 24*c83a76b0SSuyog Pawar * 25*c83a76b0SSuyog Pawar * @brief 26*c83a76b0SSuyog Pawar * This file contains entropy and cabac trace related structures and macros 27*c83a76b0SSuyog Pawar * 28*c83a76b0SSuyog Pawar * @author 29*c83a76b0SSuyog Pawar * Ittiam 30*c83a76b0SSuyog Pawar ****************************************************************************** 31*c83a76b0SSuyog Pawar */ 32*c83a76b0SSuyog Pawar 33*c83a76b0SSuyog Pawar #ifndef _IHEVCE_TRACE_H_ 34*c83a76b0SSuyog Pawar #define _IHEVCE_TRACE_H_ 35*c83a76b0SSuyog Pawar 36*c83a76b0SSuyog Pawar #define ENABLE_TRACE 0 37*c83a76b0SSuyog Pawar 38*c83a76b0SSuyog Pawar /*****************************************************************************/ 39*c83a76b0SSuyog Pawar /* Constant Macros */ 40*c83a76b0SSuyog Pawar /*****************************************************************************/ 41*c83a76b0SSuyog Pawar /* strings assigned for prefix names */ 42*c83a76b0SSuyog Pawar // clang-format off 43*c83a76b0SSuyog Pawar #define SEQ_LEVEL "SEQ" /*!< prefix string for sequence params */ 44*c83a76b0SSuyog Pawar #define HRD_LEVEL "HRD" /*!< prefix string for hrd params */ 45*c83a76b0SSuyog Pawar #define PIC_LEVEL "PIC_INFO" /*!< prefix string for picture params */ 46*c83a76b0SSuyog Pawar #define SLICE_LEVEL "SLICE" /*!< prefix string for slice params */ 47*c83a76b0SSuyog Pawar #define MB_LEVEL "MB" /*!< prefix string for MB params */ 48*c83a76b0SSuyog Pawar #define ECD_DATA "ECD" 49*c83a76b0SSuyog Pawar #define LYR_COEFF_LEVEL "LYR" /*!< prefix string for current layer tx levels */ 50*c83a76b0SSuyog Pawar #define ACC_COEFF_LEVEL "LYR" /*!< prefix string for accumulated tx levels/coeffs */ 51*c83a76b0SSuyog Pawar #define ACC_COEFFS "LYR" /*!< prefix string for accumulated coeffs */ 52*c83a76b0SSuyog Pawar #define LYR_DIFF_SIG "LYR" /*!< prefix string for MB params */ 53*c83a76b0SSuyog Pawar #define LYR_IP_SIG "LYR" /*!< prefix string for MB params */ 54*c83a76b0SSuyog Pawar #define RES_CHANGE_SIG "RES CGE" 55*c83a76b0SSuyog Pawar #define REF_BASE_DEBLK "REF BASE" /*!< refix string for ref base parameters */ 56*c83a76b0SSuyog Pawar #define TARGET_DEBLK "TGT" /*!< prefix string for target layer parameters */ 57*c83a76b0SSuyog Pawar #define TARGET_MC "TGT" /*!< prefix string for target layer parameters */ 58*c83a76b0SSuyog Pawar #define DUMMY "NOT VALID" 59*c83a76b0SSuyog Pawar // clang-format on 60*c83a76b0SSuyog Pawar 61*c83a76b0SSuyog Pawar #define TRACE(a) ihevce_trace((a)) 62*c83a76b0SSuyog Pawar 63*c83a76b0SSuyog Pawar /*****************************************************************************/ 64*c83a76b0SSuyog Pawar /* Enums */ 65*c83a76b0SSuyog Pawar /*****************************************************************************/ 66*c83a76b0SSuyog Pawar typedef enum 67*c83a76b0SSuyog Pawar { 68*c83a76b0SSuyog Pawar IHEVCE_FALSE = 0, 69*c83a76b0SSuyog Pawar IHEVCE_TRUE = 1 70*c83a76b0SSuyog Pawar } IHEVCE_BOOL_T; 71*c83a76b0SSuyog Pawar 72*c83a76b0SSuyog Pawar // clang-format off 73*c83a76b0SSuyog Pawar typedef enum 74*c83a76b0SSuyog Pawar { 75*c83a76b0SSuyog Pawar TRACE_SEQ = 0x00000001, /*!< sequence params dump enable */ 76*c83a76b0SSuyog Pawar TRACE_PIC = 0x00000002, /*!< picparams dump enable */ 77*c83a76b0SSuyog Pawar TRACE_SLICE = 0x00000004, /*!< slice params dump enable */ 78*c83a76b0SSuyog Pawar TRACE_MB_PARAMS = 0x00000008, /*!< mb level decoded dump enable */ 79*c83a76b0SSuyog Pawar TRACE_MB_INF_PARAMS = 0x00000010, /*!< mb level inferred dumping enable */ 80*c83a76b0SSuyog Pawar TRACE_ECD_DATA = 0x00000020, /*!< ECD data dump */ 81*c83a76b0SSuyog Pawar TRACE_LYR_COEFF_LEVEL = 0x00000040, /*!< Current layer coeff levels */ 82*c83a76b0SSuyog Pawar TRACE_ACC_COEFF_LEVEL = 0x00000080, /*!< Accumulated coffs/level */ 83*c83a76b0SSuyog Pawar TRACE_ACC_COEFFS = 0x00000100, /*!< Accumulated coeffs */ 84*c83a76b0SSuyog Pawar TRACE_LYR_DIFF_SIG = 0x00000200, /*!< layer level differential signal */ 85*c83a76b0SSuyog Pawar TRACE_LYR_IP_SIG = 0x00000400, /*!< layer level Intra pred signal */ 86*c83a76b0SSuyog Pawar TRACE_INTRA_UPSMPL_SIG= 0x00000800, /*!< Intra upsampled data */ 87*c83a76b0SSuyog Pawar TRACE_RES_UPSMPL_SIG = 0x00001000, /*!< Residual upsampled data */ 88*c83a76b0SSuyog Pawar TRACE_BS_INFO = 0x00002000, /*!< BS information */ 89*c83a76b0SSuyog Pawar TRACE_RES_CGE_MV = 0x00100000, /*!< Res change Motion vectors */ 90*c83a76b0SSuyog Pawar TRACE_RES_CGE_MODE = 0x00200000, /*!< Res change MB modes */ 91*c83a76b0SSuyog Pawar TRACE_RES_CGE_DATA = 0x00400000, /*!< Res change data */ 92*c83a76b0SSuyog Pawar TRACE_TGT_MC_PRED = 0x00800000, /*!< moiton comp pred sugnal dump enable */ 93*c83a76b0SSuyog Pawar TRACE_TGT_LYR_DEBLK = 0x08000000, /*!< Input to target layer deblocking */ 94*c83a76b0SSuyog Pawar TRACE_REF_BASE_DEBLK = 0x10000000, /*!< deblocked data dumping enable */ 95*c83a76b0SSuyog Pawar TRACE_ALL = 0xFFFFFFFF /*!< all params dumping enable */ 96*c83a76b0SSuyog Pawar }TRACE_PREFIX_T; 97*c83a76b0SSuyog Pawar // clang-format on 98*c83a76b0SSuyog Pawar 99*c83a76b0SSuyog Pawar /*****************************************************************************/ 100*c83a76b0SSuyog Pawar /* Globals */ 101*c83a76b0SSuyog Pawar /*****************************************************************************/ 102*c83a76b0SSuyog Pawar extern const char *g_api1_prefix_name[32]; 103*c83a76b0SSuyog Pawar 104*c83a76b0SSuyog Pawar /* Dummy macros when trace is disabled */ 105*c83a76b0SSuyog Pawar #define ENTROPY_TRACE(syntax_string, value) 106*c83a76b0SSuyog Pawar 107*c83a76b0SSuyog Pawar #define AEV_TRACE(string, value, range) 108*c83a76b0SSuyog Pawar 109*c83a76b0SSuyog Pawar /*****************************************************************************/ 110*c83a76b0SSuyog Pawar /* Extern Function Declarations */ 111*c83a76b0SSuyog Pawar /*****************************************************************************/ 112*c83a76b0SSuyog Pawar WORD32 ihevce_trace(UWORD32 u4_prefix); 113*c83a76b0SSuyog Pawar 114*c83a76b0SSuyog Pawar #endif //_IHEVCE_TRACE_H_ 115