1 /******************************************************************************
2 *
3 * Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at:
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 ******************************************************************************/
18 /**
19 *******************************************************************************
20 * @file
21 *  ihevcd_profile.h
22 *
23 * @brief
24 *  Contains macros for profiling individual modules of decoder
25 *
26 * @author
27 *  Naveen SR
28 *
29 * @par List of Functions:
30 *
31 * @remarks
32 *  None
33 *
34 *******************************************************************************
35 */
36 
37 #ifndef _IHEVCD_PROFILE_H_
38 #define _IHEVCD_PROFILE_H_
39 
40 #include "ihevc_defs.h"
41 /* Define return; to disable individual module */
42 #ifdef PROFILE_DIS_SAO_LEAF_LEVEL
43 #define PROFILE_DISABLE_SAO_LEAF_LEVEL() return;
44 #else
45 #define PROFILE_DISABLE_SAO_LEAF_LEVEL() ;
46 #endif
47 
48 #ifdef PROFILE_DIS_SAO
49 #define PROFILE_DISABLE_SAO() return;
50 #else
51 #define PROFILE_DISABLE_SAO() ;
52 #endif
53 
54 #ifdef PROFILE_DIS_DEBLK
55 #define PROFILE_DISABLE_DEBLK() return;
56 #else
57 #define PROFILE_DISABLE_DEBLK() ;
58 #endif
59 
60 #ifdef PROFILE_DIS_IQ_IT_RECON_INTRA_PRED
61 #define PROFILE_DISABLE_IQ_IT_RECON_INTRA_PRED() return;
62 #else
63 #define PROFILE_DISABLE_IQ_IT_RECON_INTRA_PRED() ;
64 #endif
65 
66 #ifdef PROFILE_DIS_INTER_PRED
67 #define PROFILE_DISABLE_INTER_PRED() return;
68 #else
69 #define PROFILE_DISABLE_INTER_PRED() ;
70 #endif
71 
72 #ifdef PROFILE_DIS_PROCESS_CTB
73 #define PROFILE_DISABLE_PROCESS_CTB() return;
74 /* When processing is disabled, no point in format converion as well */
75 #define PROFILE_DISABLE_FMT_CONV() return 0;
76 #else
77 #define PROFILE_DISABLE_PROCESS_CTB() ;
78 #define PROFILE_DISABLE_FMT_CONV();
79 #endif
80 
81 #ifdef PROFILE_DIS_BOUNDARY_STRENGTH
82 #define PROFILE_DISABLE_BOUNDARY_STRENGTH() return;
83 #else
84 #define PROFILE_DISABLE_BOUNDARY_STRENGTH() ;
85 #endif
86 
87 #ifdef PROFILE_DIS_MV_PREDICTION
88 #define PROFILE_DISABLE_MV_PREDICTION() return;
89 #else
90 #define PROFILE_DISABLE_MV_PREDICTION() ;
91 #endif
92 
93 //#define PROFILE_DISABLE_INTER_PRED_LUMA(clr_indx) {if(clr_indx == 0) continue;}
94 //#define PROFILE_DISABLE_INTER_PRED_CHROMA(clr_indx) {if(clr_indx == 1) continue;}
95 //#define PROFILE_DISABLE_INTER_PRED_LUMA_AVERAGING(clr_indx) {if(clr_indx == 0) continue;}
96 //#define PROFILE_DISABLE_INTER_PRED_CHROMA_AVERAGING(clr_indx) {if(clr_indx == 1) continue;}
97 
98 #define PROFILE_DISABLE_INTER_PRED_LUMA(clr_indx) ;
99 #define PROFILE_DISABLE_INTER_PRED_CHROMA(clr_indx) ;
100 #define PROFILE_DISABLE_INTER_PRED_LUMA_AVERAGING(clr_indx) ;
101 #define PROFILE_DISABLE_INTER_PRED_CHROMA_AVERAGING(clr_indx) ;
102 
103 #endif /* _IHEVCD_PROFILE_H_ */
104