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