• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /******************************************************************************
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  */
52 typedef struct
53 {
54     /**
55      * fp
56      */
57     FILE    *fp;
58 }enc_trace_t;
59 
60 /*****************************************************************************/
61 /* Extern variable declarations                                              */
62 /*****************************************************************************/
63 extern 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 */
139 extern 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 */
156 extern WORD32    ih264e_trace_deinit
157         (
158             void
159         );
160 
161 #endif // IH264E_TRACE_H_
162