blob: 813452446cd46477fb2e464640b9c03d5a487a27 [file] [log] [blame]
Hamsalekha S8d3d3032015-03-13 21:24:58 +05301/******************************************************************************
2 *
3 * Copyright (C) 2015 The Android Open Source Project
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 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*/
20
21/**
22******************************************************************************
23* @file
24* ih264e_trace.h
25*
26* @brief
27* This file contains extern declarations of routines that could be helpful
28* for debugging purposes.
29*
30* @author
31* ittiam
32*
33* @remarks
34* None
35*
36*******************************************************************************
37*/
38
39#ifndef IH264E_TRACE_H_
40#define IH264E_TRACE_H_
41
42#if ENABLE_TRACE
43/*****************************************************************************/
44/* Structures */
45/*****************************************************************************/
46
47/**
48******************************************************************************
49 * @brief Data for the trace functionality
50******************************************************************************
51 */
52typedef struct
53{
54 /**
55 * fp
56 */
57 FILE *fp;
58}enc_trace_t;
59
60/*****************************************************************************/
61/* Extern variable declarations */
62/*****************************************************************************/
63extern enc_trace_t g_enc_trace;
64
65/*****************************************************************************/
66/* Constant Macros */
67/*****************************************************************************/
68
69/**
70******************************************************************************
71 * @brief defines flag used for enabling trace
72******************************************************************************
73 */
74
75
76/*****************************************************************************/
77/* Function Macros */
78/*****************************************************************************/
79
80/**
81******************************************************************************
82 * @brief Macro to print trace messages
83******************************************************************************
84 */
85
86#define ENTROPY_TRACE(syntax_string, value) \
87 { \
88 if(g_enc_trace.fp) \
89 { \
90 fprintf( g_enc_trace.fp, "%-40s : %d\n", syntax_string, value ); \
91 fflush ( g_enc_trace.fp); \
92 } \
93 }
94
95
96/**
97******************************************************************************
98 * @brief Macro to print CABAC trace messages
99******************************************************************************
100 */
101
102#define AEV_TRACE(string, value, range) \
103 if(range && g_enc_trace.fp) \
104 { \
105 fprintf( g_enc_trace.fp, "%-40s:%8d R:%d\n", string, value, range); \
106 fflush ( g_enc_trace.fp); \
107 }
108
109#else
110
111/* Dummy macros when trace is disabled */
112#define ENTROPY_TRACE(syntax_string, value)
113
114#define AEV_TRACE(string, value, range)
115
116#endif
117
118
119/*****************************************************************************/
120/* Extern Function Declarations */
121/*****************************************************************************/
122
123
124/**
125******************************************************************************
126*
127* @brief Dummy trace init when trace is disabled in encoder
128*
129* @par Description
130* This routine needs to be called at start of trace
131*
132* @param[in] pu1_file_name
133* Name of file where trace outputs need to be stores (handle)
134*
135* @return success or failure error code
136*
137******************************************************************************
138*/
139extern WORD32 ih264e_trace_init
140 (
141 const char *pu1_file_name
142 );
143
144/**
145******************************************************************************
146*
147* @brief Dummy trace de-init function when trace is disabled
148*
149* @par Description
150* This routine needs to be called at end of trace
151*
152* @return success or failure error code
153*
154******************************************************************************
155*/
156extern WORD32 ih264e_trace_deinit
157 (
158 void
159 );
160
161#endif // IH264E_TRACE_H_