1*15dc779aSAndroid Build Coastguard Worker /******************************************************************************
2*15dc779aSAndroid Build Coastguard Worker * *
3*15dc779aSAndroid Build Coastguard Worker * Copyright (C) 2018 The Android Open Source Project
4*15dc779aSAndroid Build Coastguard Worker *
5*15dc779aSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
6*15dc779aSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
7*15dc779aSAndroid Build Coastguard Worker * You may obtain a copy of the License at:
8*15dc779aSAndroid Build Coastguard Worker *
9*15dc779aSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0
10*15dc779aSAndroid Build Coastguard Worker *
11*15dc779aSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
12*15dc779aSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
13*15dc779aSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*15dc779aSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
15*15dc779aSAndroid Build Coastguard Worker * limitations under the License.
16*15dc779aSAndroid Build Coastguard Worker *
17*15dc779aSAndroid Build Coastguard Worker *****************************************************************************
18*15dc779aSAndroid Build Coastguard Worker * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*15dc779aSAndroid Build Coastguard Worker */
20*15dc779aSAndroid Build Coastguard Worker #include <stdio.h>
21*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_type_def.h"
22*15dc779aSAndroid Build Coastguard Worker #include "ixheaac_error_standards.h"
23*15dc779aSAndroid Build Coastguard Worker #include "ixheaacd_error_handler.h"
24*15dc779aSAndroid Build Coastguard Worker
25*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
26*15dc779aSAndroid Build Coastguard Worker /* Global memory constants */
27*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
28*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
29*15dc779aSAndroid Build Coastguard Worker /* Ittiam enhaacplus_dec ErrorCode Definitions */
30*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
31*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
32*15dc779aSAndroid Build Coastguard Worker /* Class 0: API Errors
33*15dc779aSAndroid Build Coastguard Worker */
34*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
35*15dc779aSAndroid Build Coastguard Worker /* Non Fatal Errors */
36*15dc779aSAndroid Build Coastguard Worker pWORD8 ixheaacd_ppb_api_non_fatal[IA_MAX_ERROR_SUB_CODE] = {
37*15dc779aSAndroid Build Coastguard Worker (pWORD8) "No Error",
38*15dc779aSAndroid Build Coastguard Worker (pWORD8) "API Command not supported",
39*15dc779aSAndroid Build Coastguard Worker (pWORD8) "API Command type not supported"};
40*15dc779aSAndroid Build Coastguard Worker /* Fatal Errors */
41*15dc779aSAndroid Build Coastguard Worker pWORD8 ixheaacd_ppb_api_fatal[IA_MAX_ERROR_SUB_CODE] = {
42*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid Memory Table Index",
43*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid Library ID String Index",
44*15dc779aSAndroid Build Coastguard Worker (pWORD8) "NULL Pointer: Memory Allocation Error",
45*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid Config Param",
46*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid Execute type",
47*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid Command",
48*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Memory Allocation Error: Alignment requirement not met"};
49*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
50*15dc779aSAndroid Build Coastguard Worker /* Class 1: Configuration Errors
51*15dc779aSAndroid Build Coastguard Worker */
52*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
53*15dc779aSAndroid Build Coastguard Worker /* Non Fatal Errors */
54*15dc779aSAndroid Build Coastguard Worker pWORD8 ixheaacd_ppb_config_non_fatal[IA_MAX_ERROR_SUB_CODE] = {
55*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid Output PCM WORD Size. Setting to default, 16 ",
56*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid Down-mix flag option. Setting to default, 0 ",
57*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid eSBR PS flag option. Setting to default, 0 ",
58*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid downmix to stereo flag option. Setting to default, 0 ",
59*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid interleave to stereo flag option. Setting to default, 1 ",
60*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid downsample flag option. Setting to default, 0 ",
61*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid peak limiter flag option. Setting to default, 1 ",
62*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid MP4 flag option. Setting to default, 0 ",
63*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid maximum number of channels. limiting to between 2 and 8",
64*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid instance for coupling channel. Setting to default 1",
65*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid error concealment flag option. Setting to default 0",
66*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid Disable Sync flag option. Setting to default, 0 ",
67*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid Auto SBR upsample option. Setting to default, 1 ",
68*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid DRC heavy compression flag option. Setting to default 0",
69*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid DRC cut value",
70*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid DRC boost value",
71*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid DRC target",
72*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid Frame size",
73*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid LD testing flag option. Setting to default 0",
74*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid effect type",
75*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid target loudness value",
76*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid HQ eSBR flag option. Setting to default 0",
77*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid frame length flag option. Setting to default 0",
78*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid eSBR flag option. Setting to default 1"};
79*15dc779aSAndroid Build Coastguard Worker /* Fatal Errors */
80*15dc779aSAndroid Build Coastguard Worker pWORD8 ixheaacd_ppb_config_fatal[IA_MAX_ERROR_SUB_CODE] = {
81*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid Sample rate specified for RAW decoding"};
82*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
83*15dc779aSAndroid Build Coastguard Worker /* Class 2: Initialization Errors
84*15dc779aSAndroid Build Coastguard Worker */
85*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
86*15dc779aSAndroid Build Coastguard Worker /* Non Fatal Errors */
87*15dc779aSAndroid Build Coastguard Worker pWORD8 ixheaacd_ppb_init_non_fatal[IA_MAX_ERROR_SUB_CODE] = {
88*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Header not found at the beginning of input data continuing syncing",
89*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid number of QMF bands", (pWORD8) "Decoder initialization failed",
90*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Input bytes insufficient for decoding", (pWORD8) "Error in AAC decoding"};
91*15dc779aSAndroid Build Coastguard Worker /* Fatal Errors */
92*15dc779aSAndroid Build Coastguard Worker pWORD8 ixheaacd_ppb_init_fatal[IA_MAX_ERROR_SUB_CODE] = {
93*15dc779aSAndroid Build Coastguard Worker (pWORD8) "AAC Decoder initialization failed",
94*15dc779aSAndroid Build Coastguard Worker (pWORD8) "End of input reached during initialization",
95*15dc779aSAndroid Build Coastguard Worker (pWORD8) "No. of channels in stream greater than max channels defined",
96*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Audio object type is not supported",
97*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Decoder initialization failed",
98*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Channel coupling not supported"};
99*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
100*15dc779aSAndroid Build Coastguard Worker /* Class 3: Execution Errors
101*15dc779aSAndroid Build Coastguard Worker */
102*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
103*15dc779aSAndroid Build Coastguard Worker /* Non Fatal Errors */
104*15dc779aSAndroid Build Coastguard Worker pWORD8 ixheaacd_ppb_exe_non_fatal[IA_MAX_ERROR_SUB_CODE] = {
105*15dc779aSAndroid Build Coastguard Worker (pWORD8) "ADTS syncronization is lost. Re-syncing",
106*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Though SBR was present in previous frame, not present in current"
107*15dc779aSAndroid Build Coastguard Worker "frame (SBR turned off)",
108*15dc779aSAndroid Build Coastguard Worker (pWORD8) "SBR was not present in previous frame, but it is present in"
109*15dc779aSAndroid Build Coastguard Worker "current frame (SBR turned on)",
110*15dc779aSAndroid Build Coastguard Worker (pWORD8) "ADTS Header CRC failed.Re-syncing",
111*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Input bytes insufficient for decoding",
112*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Element instance tag mismatch, because of new channel mode",
113*15dc779aSAndroid Build Coastguard Worker (pWORD8) "max huffman decoded value exceeded",
114*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Error in AAC decoding",
115*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Scale factor exceeds the transmitted boundary",
116*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Gain control not supported",
117*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Filter Order of TNS data is greater than maximum order",
118*15dc779aSAndroid Build Coastguard Worker (pWORD8) "LTP data found, not supported",
119*15dc779aSAndroid Build Coastguard Worker (pWORD8) "The base sampling frequency has changed in ADTS header",
120*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Pulse Data exceeds the permitted boundary",
121*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid code ixheaacd_book number in ia_huffman_data_type decoding",
122*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Channel index not within allowed range",
123*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Smoothing mode not within allowed range",
124*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Smoothing time not within allowed range",
125*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Extension type in the bitstream not within allowed range",
126*15dc779aSAndroid Build Coastguard Worker (pWORD8) "QMF update type in the bitstream not within allowed range",
127*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Window type in the bitstream not within allowed range",
128*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Evaluated sine parameter not within allowed range"};
129*15dc779aSAndroid Build Coastguard Worker /* Fatal Errors */
130*15dc779aSAndroid Build Coastguard Worker pWORD8 ixheaacd_ppb_exe_fatal[IA_MAX_ERROR_SUB_CODE] = {
131*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Channel coupling not supported",
132*15dc779aSAndroid Build Coastguard Worker (pWORD8) "TNS data range is errorneous",
133*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid LOAS header",
134*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Invalid DRC data",
135*15dc779aSAndroid Build Coastguard Worker (pWORD8) "MPS reshaping input not valid",
136*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Tree config present in bit stream not valid",
137*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Number of timeslots not valid",
138*15dc779aSAndroid Build Coastguard Worker (pWORD8) "MPS dequantization parameter not valid",
139*15dc779aSAndroid Build Coastguard Worker (pWORD8) "MPS quantization mode not valid",
140*15dc779aSAndroid Build Coastguard Worker (pWORD8) "MPS input channels not valid",
141*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Bitstream data in arbitrary downmix spatial frame not valid",
142*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Window sequence value not valid",
143*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Temporal shape config in the bitstream not valid",
144*15dc779aSAndroid Build Coastguard Worker (pWORD8) "3D audio HRTF set present in the bitstream not valid",
145*15dc779aSAndroid Build Coastguard Worker (pWORD8) "TTT mode read from the bitstream not valid",
146*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Number of OTT boxes in the bitstream not valid",
147*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Number of parameter sets present in the bitstream not valid",
148*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Mapping of index data failed during decoding",
149*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Number of parameter bands present in the bitstream not valid"};
150*15dc779aSAndroid Build Coastguard Worker
151*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
152*15dc779aSAndroid Build Coastguard Worker /* error info structure */
153*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
154*15dc779aSAndroid Build Coastguard Worker /* The Module's Error Info Structure */
155*15dc779aSAndroid Build Coastguard Worker ia_error_info_struct ixheaacd_error_info = {
156*15dc779aSAndroid Build Coastguard Worker /* The Module Name */
157*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Ittiam xheaac_dec",
158*15dc779aSAndroid Build Coastguard Worker {/* The Class Names */
159*15dc779aSAndroid Build Coastguard Worker (pWORD8) "API", (pWORD8) "Configuration", (pWORD8) "Initialization",
160*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Execution", (pWORD8) "", (pWORD8) "", (pWORD8) "", (pWORD8) "",
161*15dc779aSAndroid Build Coastguard Worker (pWORD8) "", (pWORD8) "", (pWORD8) "", (pWORD8) "", (pWORD8) "",
162*15dc779aSAndroid Build Coastguard Worker (pWORD8) "", (pWORD8) "", (pWORD8) "xHeaac"},
163*15dc779aSAndroid Build Coastguard Worker {/* The Message Pointers */
164*15dc779aSAndroid Build Coastguard Worker {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
165*15dc779aSAndroid Build Coastguard Worker NULL, NULL, NULL, NULL},
166*15dc779aSAndroid Build Coastguard Worker {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
167*15dc779aSAndroid Build Coastguard Worker NULL, NULL, NULL, NULL}}};
168*15dc779aSAndroid Build Coastguard Worker
169*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
170*15dc779aSAndroid Build Coastguard Worker /* */
171*15dc779aSAndroid Build Coastguard Worker /* Function name : ixheaacd_error_handler_init */
172*15dc779aSAndroid Build Coastguard Worker /* */
173*15dc779aSAndroid Build Coastguard Worker /* Description : Initialize the error struct with string pointers */
174*15dc779aSAndroid Build Coastguard Worker /* */
175*15dc779aSAndroid Build Coastguard Worker /* Inputs : none */
176*15dc779aSAndroid Build Coastguard Worker /* */
177*15dc779aSAndroid Build Coastguard Worker /* Globals : ia_error_info_struct ixheaacd_error_info */
178*15dc779aSAndroid Build Coastguard Worker /* pWORD8 ixheaacd_ppb_api_non_fatal */
179*15dc779aSAndroid Build Coastguard Worker /* pWORD8 ixheaacd_ppb_api_fatal */
180*15dc779aSAndroid Build Coastguard Worker /* pWORD8 ixheaacd_ppb_config_non_fatal */
181*15dc779aSAndroid Build Coastguard Worker /* pWORD8 ixheaacd_ppb_config_fatal */
182*15dc779aSAndroid Build Coastguard Worker /* pWORD8 ixheaacd_ppb_init_non_fatal */
183*15dc779aSAndroid Build Coastguard Worker /* pWORD8 ixheaacd_ppb_init_fatal */
184*15dc779aSAndroid Build Coastguard Worker /* pWORD8 ixheaacd_ppb_exe_non_fatal */
185*15dc779aSAndroid Build Coastguard Worker /* pWORD8 ixheaacd_ppb_exe_fatal */
186*15dc779aSAndroid Build Coastguard Worker /* */
187*15dc779aSAndroid Build Coastguard Worker /* Processing : Init the struct with error string pointers */
188*15dc779aSAndroid Build Coastguard Worker /* */
189*15dc779aSAndroid Build Coastguard Worker /* Outputs : none */
190*15dc779aSAndroid Build Coastguard Worker /* */
191*15dc779aSAndroid Build Coastguard Worker /* Returns : none */
192*15dc779aSAndroid Build Coastguard Worker /* */
193*15dc779aSAndroid Build Coastguard Worker /* Issues : none */
194*15dc779aSAndroid Build Coastguard Worker /* */
195*15dc779aSAndroid Build Coastguard Worker /* Revision history : */
196*15dc779aSAndroid Build Coastguard Worker /* */
197*15dc779aSAndroid Build Coastguard Worker /* DD MM YYYY Author Changes */
198*15dc779aSAndroid Build Coastguard Worker /* 29 07 2005 Ittiam Created */
199*15dc779aSAndroid Build Coastguard Worker /* */
200*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
201*15dc779aSAndroid Build Coastguard Worker
ixheaacd_error_handler_init()202*15dc779aSAndroid Build Coastguard Worker VOID ixheaacd_error_handler_init() {
203*15dc779aSAndroid Build Coastguard Worker /* The Message Pointers */
204*15dc779aSAndroid Build Coastguard Worker ixheaacd_error_info.ppppb_error_msg_pointers[0][0] =
205*15dc779aSAndroid Build Coastguard Worker ixheaacd_ppb_api_non_fatal;
206*15dc779aSAndroid Build Coastguard Worker ixheaacd_error_info.ppppb_error_msg_pointers[1][0] = ixheaacd_ppb_api_fatal;
207*15dc779aSAndroid Build Coastguard Worker ixheaacd_error_info.ppppb_error_msg_pointers[0][1] =
208*15dc779aSAndroid Build Coastguard Worker ixheaacd_ppb_config_non_fatal;
209*15dc779aSAndroid Build Coastguard Worker ixheaacd_error_info.ppppb_error_msg_pointers[1][1] =
210*15dc779aSAndroid Build Coastguard Worker ixheaacd_ppb_config_fatal;
211*15dc779aSAndroid Build Coastguard Worker ixheaacd_error_info.ppppb_error_msg_pointers[0][2] =
212*15dc779aSAndroid Build Coastguard Worker ixheaacd_ppb_init_non_fatal;
213*15dc779aSAndroid Build Coastguard Worker ixheaacd_error_info.ppppb_error_msg_pointers[1][2] = ixheaacd_ppb_init_fatal;
214*15dc779aSAndroid Build Coastguard Worker ixheaacd_error_info.ppppb_error_msg_pointers[0][3] =
215*15dc779aSAndroid Build Coastguard Worker ixheaacd_ppb_exe_non_fatal;
216*15dc779aSAndroid Build Coastguard Worker ixheaacd_error_info.ppppb_error_msg_pointers[1][3] = ixheaacd_ppb_exe_fatal;
217*15dc779aSAndroid Build Coastguard Worker }
218*15dc779aSAndroid Build Coastguard Worker
219*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
220*15dc779aSAndroid Build Coastguard Worker /* ia_testbench ErrorCode Definitions */
221*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
222*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
223*15dc779aSAndroid Build Coastguard Worker /* Class 0: Memory & File Manager Errors
224*15dc779aSAndroid Build Coastguard Worker */
225*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
226*15dc779aSAndroid Build Coastguard Worker /* Non Fatal Errors */
227*15dc779aSAndroid Build Coastguard Worker /* Fatal Errors */
228*15dc779aSAndroid Build Coastguard Worker pWORD8 ixheaacd_ppb_ia_testbench_mem_file_man_fatal[IA_MAX_ERROR_SUB_CODE] = {
229*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Memory Allocation Error", (pWORD8) "File Open Failed"};
230*15dc779aSAndroid Build Coastguard Worker
231*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
232*15dc779aSAndroid Build Coastguard Worker /* error info structure */
233*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
234*15dc779aSAndroid Build Coastguard Worker /* The Module's Error Info Structure */
235*15dc779aSAndroid Build Coastguard Worker ia_error_info_struct ixheaacd_ia_testbench_error_info = {
236*15dc779aSAndroid Build Coastguard Worker /* The Module Name */
237*15dc779aSAndroid Build Coastguard Worker (pWORD8) "ia_testbench",
238*15dc779aSAndroid Build Coastguard Worker {/* The Class Names */
239*15dc779aSAndroid Build Coastguard Worker (pWORD8) "Memory & File Manager", (pWORD8) "", (pWORD8) "", (pWORD8) "",
240*15dc779aSAndroid Build Coastguard Worker (pWORD8) "", (pWORD8) "", (pWORD8) "", (pWORD8) "", (pWORD8) "",
241*15dc779aSAndroid Build Coastguard Worker (pWORD8) "", (pWORD8) "", (pWORD8) "", (pWORD8) "", (pWORD8) "",
242*15dc779aSAndroid Build Coastguard Worker (pWORD8) "", (pWORD8) ""},
243*15dc779aSAndroid Build Coastguard Worker {/* The Message Pointers */
244*15dc779aSAndroid Build Coastguard Worker {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
245*15dc779aSAndroid Build Coastguard Worker NULL, NULL, NULL, NULL},
246*15dc779aSAndroid Build Coastguard Worker {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
247*15dc779aSAndroid Build Coastguard Worker NULL, NULL, NULL, NULL}}};
248*15dc779aSAndroid Build Coastguard Worker
249*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
250*15dc779aSAndroid Build Coastguard Worker /* */
251*15dc779aSAndroid Build Coastguard Worker /* Function name : ia_testbench_error_handler_init */
252*15dc779aSAndroid Build Coastguard Worker /* */
253*15dc779aSAndroid Build Coastguard Worker /* Description : Initialize the error struct with string pointers */
254*15dc779aSAndroid Build Coastguard Worker /* */
255*15dc779aSAndroid Build Coastguard Worker /* Inputs : none */
256*15dc779aSAndroid Build Coastguard Worker /* */
257*15dc779aSAndroid Build Coastguard Worker /* Globals : ia_error_info_struct ixheaacd_ia_testbench_error_info */
258*15dc779aSAndroid Build Coastguard Worker /* pWORD8 ixheaacd_ppb_ia_testbench_mem_file_man_fatal */
259*15dc779aSAndroid Build Coastguard Worker /* */
260*15dc779aSAndroid Build Coastguard Worker /* Processing : Init the struct with error string pointers */
261*15dc779aSAndroid Build Coastguard Worker /* */
262*15dc779aSAndroid Build Coastguard Worker /* Outputs : none */
263*15dc779aSAndroid Build Coastguard Worker /* */
264*15dc779aSAndroid Build Coastguard Worker /* Returns : none */
265*15dc779aSAndroid Build Coastguard Worker /* */
266*15dc779aSAndroid Build Coastguard Worker /* Issues : none */
267*15dc779aSAndroid Build Coastguard Worker /* */
268*15dc779aSAndroid Build Coastguard Worker /* Revision history : */
269*15dc779aSAndroid Build Coastguard Worker /* */
270*15dc779aSAndroid Build Coastguard Worker /* DD MM YYYY Author Changes */
271*15dc779aSAndroid Build Coastguard Worker /* 29 07 2005 Ittiam Created */
272*15dc779aSAndroid Build Coastguard Worker /* */
273*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
274*15dc779aSAndroid Build Coastguard Worker
ia_testbench_error_handler_init()275*15dc779aSAndroid Build Coastguard Worker VOID ia_testbench_error_handler_init() {
276*15dc779aSAndroid Build Coastguard Worker /* The Message Pointers */
277*15dc779aSAndroid Build Coastguard Worker ixheaacd_ia_testbench_error_info.ppppb_error_msg_pointers[1][0] =
278*15dc779aSAndroid Build Coastguard Worker ixheaacd_ppb_ia_testbench_mem_file_man_fatal;
279*15dc779aSAndroid Build Coastguard Worker }
280*15dc779aSAndroid Build Coastguard Worker
281*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
282*15dc779aSAndroid Build Coastguard Worker /* */
283*15dc779aSAndroid Build Coastguard Worker /* Function name : ixheaacd_error_handler */
284*15dc779aSAndroid Build Coastguard Worker /* */
285*15dc779aSAndroid Build Coastguard Worker /* Description : Called Prints the status error code from the err_info */
286*15dc779aSAndroid Build Coastguard Worker /* */
287*15dc779aSAndroid Build Coastguard Worker /* Inputs : ia_error_info_struct *p_mod_err_info (Error info struct) */
288*15dc779aSAndroid Build Coastguard Worker /* WORD8 *pb_context (Context of error) */
289*15dc779aSAndroid Build Coastguard Worker /* IA_ERRORCODE code (Error code) */
290*15dc779aSAndroid Build Coastguard Worker /* */
291*15dc779aSAndroid Build Coastguard Worker /* Globals : none */
292*15dc779aSAndroid Build Coastguard Worker /* */
293*15dc779aSAndroid Build Coastguard Worker /* Processing : whenever any module calls the errorhandler, it informs */
294*15dc779aSAndroid Build Coastguard Worker /* it about the module for which it is called and a context */
295*15dc779aSAndroid Build Coastguard Worker /* in which it was called in addition to the error_code */
296*15dc779aSAndroid Build Coastguard Worker /* the message is displayed based on the module's error */
297*15dc779aSAndroid Build Coastguard Worker /* message array that maps to the error_code the context */
298*15dc779aSAndroid Build Coastguard Worker /* gives specific info in which the error occured e.g. for */
299*15dc779aSAndroid Build Coastguard Worker /* testbench module, memory allocator can call the */
300*15dc779aSAndroid Build Coastguard Worker /* errorhandler for memory inavailability in various */
301*15dc779aSAndroid Build Coastguard Worker /* contexts like input_buf or output_buf e.g. for mp3_enc */
302*15dc779aSAndroid Build Coastguard Worker /* module, there can be various instances running. context */
303*15dc779aSAndroid Build Coastguard Worker /* can be used to identify the particular instance the */
304*15dc779aSAndroid Build Coastguard Worker /* error handler is being called for */
305*15dc779aSAndroid Build Coastguard Worker /* */
306*15dc779aSAndroid Build Coastguard Worker /* Outputs : None */
307*15dc779aSAndroid Build Coastguard Worker /* */
308*15dc779aSAndroid Build Coastguard Worker /* Returns : IA_ERRORCODE error_value (Error value) */
309*15dc779aSAndroid Build Coastguard Worker /* */
310*15dc779aSAndroid Build Coastguard Worker /* Issues : none */
311*15dc779aSAndroid Build Coastguard Worker /* */
312*15dc779aSAndroid Build Coastguard Worker /* Revision history : */
313*15dc779aSAndroid Build Coastguard Worker /* */
314*15dc779aSAndroid Build Coastguard Worker /* DD MM YYYY Author Changes */
315*15dc779aSAndroid Build Coastguard Worker /* 29 07 2005 Tejaswi/Vishal Created */
316*15dc779aSAndroid Build Coastguard Worker /* */
317*15dc779aSAndroid Build Coastguard Worker /*****************************************************************************/
318*15dc779aSAndroid Build Coastguard Worker
ixheaacd_error_handler(ia_error_info_struct * p_mod_err_info,WORD8 * pb_context,IA_ERRORCODE code)319*15dc779aSAndroid Build Coastguard Worker IA_ERRORCODE ixheaacd_error_handler(ia_error_info_struct *p_mod_err_info,
320*15dc779aSAndroid Build Coastguard Worker WORD8 *pb_context, IA_ERRORCODE code) {
321*15dc779aSAndroid Build Coastguard Worker if (code == IA_NO_ERROR) {
322*15dc779aSAndroid Build Coastguard Worker return IA_NO_ERROR;
323*15dc779aSAndroid Build Coastguard Worker }
324*15dc779aSAndroid Build Coastguard Worker {
325*15dc779aSAndroid Build Coastguard Worker WORD is_fatal, err_class, err_sub_code;
326*15dc779aSAndroid Build Coastguard Worker
327*15dc779aSAndroid Build Coastguard Worker if (code == IA_FATAL_ERROR)
328*15dc779aSAndroid Build Coastguard Worker is_fatal = 1;
329*15dc779aSAndroid Build Coastguard Worker else
330*15dc779aSAndroid Build Coastguard Worker is_fatal = (((UWORD)code & 0x8000) >> 15);
331*15dc779aSAndroid Build Coastguard Worker
332*15dc779aSAndroid Build Coastguard Worker err_class = (((UWORD)code & 0x7800) >> 11);
333*15dc779aSAndroid Build Coastguard Worker err_sub_code = (((UWORD)code & 0x07FF));
334*15dc779aSAndroid Build Coastguard Worker
335*15dc779aSAndroid Build Coastguard Worker if (!is_fatal) {
336*15dc779aSAndroid Build Coastguard Worker printf("non ");
337*15dc779aSAndroid Build Coastguard Worker }
338*15dc779aSAndroid Build Coastguard Worker printf("fatal error: ");
339*15dc779aSAndroid Build Coastguard Worker
340*15dc779aSAndroid Build Coastguard Worker if (p_mod_err_info->pb_module_name != NULL) {
341*15dc779aSAndroid Build Coastguard Worker printf("%s: ", p_mod_err_info->pb_module_name);
342*15dc779aSAndroid Build Coastguard Worker }
343*15dc779aSAndroid Build Coastguard Worker if (p_mod_err_info->ppb_class_names[err_class] != NULL) {
344*15dc779aSAndroid Build Coastguard Worker printf("%s: ", p_mod_err_info->ppb_class_names[err_class]);
345*15dc779aSAndroid Build Coastguard Worker }
346*15dc779aSAndroid Build Coastguard Worker if (pb_context != NULL) {
347*15dc779aSAndroid Build Coastguard Worker printf("%s: ", pb_context);
348*15dc779aSAndroid Build Coastguard Worker }
349*15dc779aSAndroid Build Coastguard Worker if (err_sub_code >= IA_MAX_ERROR_SUB_CODE ||
350*15dc779aSAndroid Build Coastguard Worker p_mod_err_info->ppppb_error_msg_pointers[is_fatal][err_class]
351*15dc779aSAndroid Build Coastguard Worker [err_sub_code] == NULL) {
352*15dc779aSAndroid Build Coastguard Worker printf("error unlisted");
353*15dc779aSAndroid Build Coastguard Worker } else {
354*15dc779aSAndroid Build Coastguard Worker printf("%s\n",
355*15dc779aSAndroid Build Coastguard Worker p_mod_err_info
356*15dc779aSAndroid Build Coastguard Worker ->ppppb_error_msg_pointers[is_fatal][err_class][err_sub_code]);
357*15dc779aSAndroid Build Coastguard Worker }
358*15dc779aSAndroid Build Coastguard Worker }
359*15dc779aSAndroid Build Coastguard Worker return IA_NO_ERROR;
360*15dc779aSAndroid Build Coastguard Worker }