1*c83a76b0SSuyog Pawar /******************************************************************************
2*c83a76b0SSuyog Pawar *
3*c83a76b0SSuyog Pawar * Copyright (C) 2018 The Android Open Source Project
4*c83a76b0SSuyog Pawar *
5*c83a76b0SSuyog Pawar * Licensed under the Apache License, Version 2.0 (the "License");
6*c83a76b0SSuyog Pawar * you may not use this file except in compliance with the License.
7*c83a76b0SSuyog Pawar * You may obtain a copy of the License at:
8*c83a76b0SSuyog Pawar *
9*c83a76b0SSuyog Pawar * http://www.apache.org/licenses/LICENSE-2.0
10*c83a76b0SSuyog Pawar *
11*c83a76b0SSuyog Pawar * Unless required by applicable law or agreed to in writing, software
12*c83a76b0SSuyog Pawar * distributed under the License is distributed on an "AS IS" BASIS,
13*c83a76b0SSuyog Pawar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*c83a76b0SSuyog Pawar * See the License for the specific language governing permissions and
15*c83a76b0SSuyog Pawar * limitations under the License.
16*c83a76b0SSuyog Pawar *
17*c83a76b0SSuyog Pawar *****************************************************************************
18*c83a76b0SSuyog Pawar * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*c83a76b0SSuyog Pawar */
20*c83a76b0SSuyog Pawar /*!
21*c83a76b0SSuyog Pawar ******************************************************************************
22*c83a76b0SSuyog Pawar * \file ihevce_sys_api.c
23*c83a76b0SSuyog Pawar *
24*c83a76b0SSuyog Pawar * \brief
25*c83a76b0SSuyog Pawar * This file contains wrapper utilities to use hevc encoder library
26*c83a76b0SSuyog Pawar *
27*c83a76b0SSuyog Pawar * \date
28*c83a76b0SSuyog Pawar * 15/04/2014
29*c83a76b0SSuyog Pawar *
30*c83a76b0SSuyog Pawar * \author
31*c83a76b0SSuyog Pawar * Ittiam
32*c83a76b0SSuyog Pawar *
33*c83a76b0SSuyog Pawar * List of Functions
34*c83a76b0SSuyog Pawar *
35*c83a76b0SSuyog Pawar *
36*c83a76b0SSuyog Pawar ******************************************************************************
37*c83a76b0SSuyog Pawar */
38*c83a76b0SSuyog Pawar
39*c83a76b0SSuyog Pawar /*****************************************************************************/
40*c83a76b0SSuyog Pawar /* File Includes */
41*c83a76b0SSuyog Pawar /*****************************************************************************/
42*c83a76b0SSuyog Pawar /* System include files */
43*c83a76b0SSuyog Pawar #include <stdio.h>
44*c83a76b0SSuyog Pawar #include <string.h>
45*c83a76b0SSuyog Pawar #include <stdlib.h>
46*c83a76b0SSuyog Pawar #include <assert.h>
47*c83a76b0SSuyog Pawar #include <stdarg.h>
48*c83a76b0SSuyog Pawar #include <math.h>
49*c83a76b0SSuyog Pawar
50*c83a76b0SSuyog Pawar /* User include files */
51*c83a76b0SSuyog Pawar #include "ihevc_typedefs.h"
52*c83a76b0SSuyog Pawar #include "ihevc_macros.h"
53*c83a76b0SSuyog Pawar
54*c83a76b0SSuyog Pawar #include "itt_video_api.h"
55*c83a76b0SSuyog Pawar #include "ihevce_api.h"
56*c83a76b0SSuyog Pawar
57*c83a76b0SSuyog Pawar /*****************************************************************************/
58*c83a76b0SSuyog Pawar /* Function Definitions */
59*c83a76b0SSuyog Pawar /*****************************************************************************/
60*c83a76b0SSuyog Pawar
61*c83a76b0SSuyog Pawar /*!
62*c83a76b0SSuyog Pawar ******************************************************************************
63*c83a76b0SSuyog Pawar * \if Function name : ihevce_printf \endif
64*c83a76b0SSuyog Pawar *
65*c83a76b0SSuyog Pawar * \brief
66*c83a76b0SSuyog Pawar * This function implements printf
67*c83a76b0SSuyog Pawar *
68*c83a76b0SSuyog Pawar *****************************************************************************
69*c83a76b0SSuyog Pawar */
ihevce_printf(void * pv_handle,const char * format,...)70*c83a76b0SSuyog Pawar WORD32 ihevce_printf(void *pv_handle, const char *format, ...)
71*c83a76b0SSuyog Pawar {
72*c83a76b0SSuyog Pawar UNUSED(pv_handle);
73*c83a76b0SSuyog Pawar UNUSED(format);
74*c83a76b0SSuyog Pawar return 0;
75*c83a76b0SSuyog Pawar }
76*c83a76b0SSuyog Pawar
77*c83a76b0SSuyog Pawar /*!
78*c83a76b0SSuyog Pawar ******************************************************************************
79*c83a76b0SSuyog Pawar * \if Function name : ihevce_fopen \endif
80*c83a76b0SSuyog Pawar *
81*c83a76b0SSuyog Pawar * \brief
82*c83a76b0SSuyog Pawar * This function implements fopen
83*c83a76b0SSuyog Pawar *
84*c83a76b0SSuyog Pawar *****************************************************************************
85*c83a76b0SSuyog Pawar */
ihevce_fopen(void * pv_handle,const char * filename,const char * mode)86*c83a76b0SSuyog Pawar FILE *ihevce_fopen(void *pv_handle, const char *filename, const char *mode)
87*c83a76b0SSuyog Pawar {
88*c83a76b0SSuyog Pawar UNUSED(pv_handle);
89*c83a76b0SSuyog Pawar UNUSED(filename);
90*c83a76b0SSuyog Pawar UNUSED(mode);
91*c83a76b0SSuyog Pawar return NULL;
92*c83a76b0SSuyog Pawar }
93*c83a76b0SSuyog Pawar
94*c83a76b0SSuyog Pawar /*!
95*c83a76b0SSuyog Pawar ******************************************************************************
96*c83a76b0SSuyog Pawar * \if Function name : ihevce_fclose \endif
97*c83a76b0SSuyog Pawar *
98*c83a76b0SSuyog Pawar * \brief
99*c83a76b0SSuyog Pawar * This function implements fclose
100*c83a76b0SSuyog Pawar *
101*c83a76b0SSuyog Pawar *****************************************************************************
102*c83a76b0SSuyog Pawar */
ihevce_fclose(void * pv_handle,FILE * file_ptr)103*c83a76b0SSuyog Pawar int ihevce_fclose(void *pv_handle, FILE *file_ptr)
104*c83a76b0SSuyog Pawar {
105*c83a76b0SSuyog Pawar UNUSED(pv_handle);
106*c83a76b0SSuyog Pawar UNUSED(file_ptr);
107*c83a76b0SSuyog Pawar return -1;
108*c83a76b0SSuyog Pawar }
109*c83a76b0SSuyog Pawar
110*c83a76b0SSuyog Pawar /*!
111*c83a76b0SSuyog Pawar ******************************************************************************
112*c83a76b0SSuyog Pawar * \if Function name : ihevce_fflush \endif
113*c83a76b0SSuyog Pawar *
114*c83a76b0SSuyog Pawar * \brief
115*c83a76b0SSuyog Pawar * This function implements fflush
116*c83a76b0SSuyog Pawar *
117*c83a76b0SSuyog Pawar *****************************************************************************
118*c83a76b0SSuyog Pawar */
ihevce_fflush(void * pv_handle,FILE * file_ptr)119*c83a76b0SSuyog Pawar int ihevce_fflush(void *pv_handle, FILE *file_ptr)
120*c83a76b0SSuyog Pawar {
121*c83a76b0SSuyog Pawar UNUSED(pv_handle);
122*c83a76b0SSuyog Pawar UNUSED(file_ptr);
123*c83a76b0SSuyog Pawar return -1;
124*c83a76b0SSuyog Pawar }
125*c83a76b0SSuyog Pawar
126*c83a76b0SSuyog Pawar /*!
127*c83a76b0SSuyog Pawar ******************************************************************************
128*c83a76b0SSuyog Pawar * \if Function name : ihevce_fseek \endif
129*c83a76b0SSuyog Pawar *
130*c83a76b0SSuyog Pawar * \brief
131*c83a76b0SSuyog Pawar * This function implements fseek
132*c83a76b0SSuyog Pawar *
133*c83a76b0SSuyog Pawar *****************************************************************************
134*c83a76b0SSuyog Pawar */
ihevce_fseek(void * pv_handle,FILE * file_ptr,long offset,int origin)135*c83a76b0SSuyog Pawar int ihevce_fseek(void *pv_handle, FILE *file_ptr, long offset, int origin)
136*c83a76b0SSuyog Pawar {
137*c83a76b0SSuyog Pawar UNUSED(pv_handle);
138*c83a76b0SSuyog Pawar UNUSED(file_ptr);
139*c83a76b0SSuyog Pawar UNUSED(offset);
140*c83a76b0SSuyog Pawar UNUSED(origin);
141*c83a76b0SSuyog Pawar return -1;
142*c83a76b0SSuyog Pawar }
143*c83a76b0SSuyog Pawar
144*c83a76b0SSuyog Pawar /*!
145*c83a76b0SSuyog Pawar ******************************************************************************
146*c83a76b0SSuyog Pawar * \if Function name : ihevce_fscanf \endif
147*c83a76b0SSuyog Pawar *
148*c83a76b0SSuyog Pawar * \brief
149*c83a76b0SSuyog Pawar * This function implements fscanf
150*c83a76b0SSuyog Pawar *
151*c83a76b0SSuyog Pawar *****************************************************************************
152*c83a76b0SSuyog Pawar */
ihevce_fscanf(void * pv_handle,IHEVCE_DATA_TYPE e_data_type,FILE * file_ptr,const char * format,void * pv_dst)153*c83a76b0SSuyog Pawar int ihevce_fscanf(
154*c83a76b0SSuyog Pawar void *pv_handle, IHEVCE_DATA_TYPE e_data_type, FILE *file_ptr, const char *format, void *pv_dst)
155*c83a76b0SSuyog Pawar {
156*c83a76b0SSuyog Pawar UNUSED(pv_handle);
157*c83a76b0SSuyog Pawar UNUSED(e_data_type);
158*c83a76b0SSuyog Pawar UNUSED(file_ptr);
159*c83a76b0SSuyog Pawar UNUSED(format);
160*c83a76b0SSuyog Pawar UNUSED(pv_dst);
161*c83a76b0SSuyog Pawar return 0;
162*c83a76b0SSuyog Pawar }
163*c83a76b0SSuyog Pawar
164*c83a76b0SSuyog Pawar /*!
165*c83a76b0SSuyog Pawar ******************************************************************************
166*c83a76b0SSuyog Pawar * \if Function name : ihevce_fgets \endif
167*c83a76b0SSuyog Pawar *
168*c83a76b0SSuyog Pawar * \brief
169*c83a76b0SSuyog Pawar * This function implements fgets
170*c83a76b0SSuyog Pawar *
171*c83a76b0SSuyog Pawar *****************************************************************************
172*c83a76b0SSuyog Pawar */
ihevce_fgets(void * pv_handle,char * pi1_str,int i4_size,FILE * pf_stream)173*c83a76b0SSuyog Pawar char *ihevce_fgets(void *pv_handle, char *pi1_str, int i4_size, FILE *pf_stream)
174*c83a76b0SSuyog Pawar {
175*c83a76b0SSuyog Pawar UNUSED(pv_handle);
176*c83a76b0SSuyog Pawar UNUSED(pi1_str);
177*c83a76b0SSuyog Pawar UNUSED(i4_size);
178*c83a76b0SSuyog Pawar UNUSED(pf_stream);
179*c83a76b0SSuyog Pawar return NULL;
180*c83a76b0SSuyog Pawar }
181*c83a76b0SSuyog Pawar
182*c83a76b0SSuyog Pawar /*!
183*c83a76b0SSuyog Pawar ******************************************************************************
184*c83a76b0SSuyog Pawar * \if Function name : ihevce_fread \endif
185*c83a76b0SSuyog Pawar *
186*c83a76b0SSuyog Pawar * \brief
187*c83a76b0SSuyog Pawar * This function implements fread
188*c83a76b0SSuyog Pawar *
189*c83a76b0SSuyog Pawar *****************************************************************************
190*c83a76b0SSuyog Pawar */
191*c83a76b0SSuyog Pawar size_t
ihevce_fread(void * pv_handle,void * pv_dst,size_t element_size,size_t count,FILE * file_ptr)192*c83a76b0SSuyog Pawar ihevce_fread(void *pv_handle, void *pv_dst, size_t element_size, size_t count, FILE *file_ptr)
193*c83a76b0SSuyog Pawar {
194*c83a76b0SSuyog Pawar UNUSED(pv_handle);
195*c83a76b0SSuyog Pawar UNUSED(pv_dst);
196*c83a76b0SSuyog Pawar UNUSED(element_size);
197*c83a76b0SSuyog Pawar UNUSED(count);
198*c83a76b0SSuyog Pawar UNUSED(file_ptr);
199*c83a76b0SSuyog Pawar return 0;
200*c83a76b0SSuyog Pawar }
201*c83a76b0SSuyog Pawar
202*c83a76b0SSuyog Pawar /*!
203*c83a76b0SSuyog Pawar ******************************************************************************
204*c83a76b0SSuyog Pawar * \if Function name : ihevce_sscanf \endif
205*c83a76b0SSuyog Pawar *
206*c83a76b0SSuyog Pawar * \brief
207*c83a76b0SSuyog Pawar * This function implements sscanf
208*c83a76b0SSuyog Pawar *
209*c83a76b0SSuyog Pawar *****************************************************************************
210*c83a76b0SSuyog Pawar */
ihevce_sscanf(void * pv_handle,const char * pv_src,const char * format,int * p_dst_int)211*c83a76b0SSuyog Pawar int ihevce_sscanf(void *pv_handle, const char *pv_src, const char *format, int *p_dst_int)
212*c83a76b0SSuyog Pawar {
213*c83a76b0SSuyog Pawar UNUSED(pv_handle);
214*c83a76b0SSuyog Pawar UNUSED(pv_src);
215*c83a76b0SSuyog Pawar UNUSED(format);
216*c83a76b0SSuyog Pawar UNUSED(p_dst_int);
217*c83a76b0SSuyog Pawar return 0;
218*c83a76b0SSuyog Pawar }
219*c83a76b0SSuyog Pawar
220*c83a76b0SSuyog Pawar /*!
221*c83a76b0SSuyog Pawar ******************************************************************************
222*c83a76b0SSuyog Pawar * \if Function name : ihevce_fprintf \endif
223*c83a76b0SSuyog Pawar *
224*c83a76b0SSuyog Pawar * \brief
225*c83a76b0SSuyog Pawar * This function implements fprintf
226*c83a76b0SSuyog Pawar *
227*c83a76b0SSuyog Pawar *****************************************************************************
228*c83a76b0SSuyog Pawar */
ihevce_fprintf(void * pv_handle,FILE * file_ptr,const char * format,...)229*c83a76b0SSuyog Pawar int ihevce_fprintf(void *pv_handle, FILE *file_ptr, const char *format, ...)
230*c83a76b0SSuyog Pawar {
231*c83a76b0SSuyog Pawar UNUSED(pv_handle);
232*c83a76b0SSuyog Pawar UNUSED(file_ptr);
233*c83a76b0SSuyog Pawar UNUSED(format);
234*c83a76b0SSuyog Pawar return 0;
235*c83a76b0SSuyog Pawar }
236*c83a76b0SSuyog Pawar
237*c83a76b0SSuyog Pawar /*!
238*c83a76b0SSuyog Pawar ******************************************************************************
239*c83a76b0SSuyog Pawar * \if Function name : ihevce_fwrite \endif
240*c83a76b0SSuyog Pawar *
241*c83a76b0SSuyog Pawar * \brief
242*c83a76b0SSuyog Pawar * This function implements fwrite
243*c83a76b0SSuyog Pawar *
244*c83a76b0SSuyog Pawar *****************************************************************************
245*c83a76b0SSuyog Pawar */
ihevce_fwrite(void * pv_handle,const void * pv_src,size_t element_size,size_t count,FILE * file_ptr)246*c83a76b0SSuyog Pawar size_t ihevce_fwrite(
247*c83a76b0SSuyog Pawar void *pv_handle, const void *pv_src, size_t element_size, size_t count, FILE *file_ptr)
248*c83a76b0SSuyog Pawar {
249*c83a76b0SSuyog Pawar UNUSED(pv_handle);
250*c83a76b0SSuyog Pawar UNUSED(pv_src);
251*c83a76b0SSuyog Pawar UNUSED(element_size);
252*c83a76b0SSuyog Pawar UNUSED(count);
253*c83a76b0SSuyog Pawar UNUSED(file_ptr);
254*c83a76b0SSuyog Pawar return 0;
255*c83a76b0SSuyog Pawar }
256*c83a76b0SSuyog Pawar
257*c83a76b0SSuyog Pawar /*!
258*c83a76b0SSuyog Pawar ******************************************************************************
259*c83a76b0SSuyog Pawar * \if Function name : ihevce_sprintf \endif
260*c83a76b0SSuyog Pawar *
261*c83a76b0SSuyog Pawar * \brief
262*c83a76b0SSuyog Pawar * This function implements sprintf
263*c83a76b0SSuyog Pawar *
264*c83a76b0SSuyog Pawar *****************************************************************************
265*c83a76b0SSuyog Pawar */
ihevce_sprintf(void * pv_handle,char * dst,const char * format,...)266*c83a76b0SSuyog Pawar int ihevce_sprintf(void *pv_handle, char *dst, const char *format, ...)
267*c83a76b0SSuyog Pawar {
268*c83a76b0SSuyog Pawar UNUSED(pv_handle);
269*c83a76b0SSuyog Pawar UNUSED(dst);
270*c83a76b0SSuyog Pawar UNUSED(format);
271*c83a76b0SSuyog Pawar return 0;
272*c83a76b0SSuyog Pawar }
273*c83a76b0SSuyog Pawar
274*c83a76b0SSuyog Pawar /*!
275*c83a76b0SSuyog Pawar ******************************************************************************
276*c83a76b0SSuyog Pawar * \if Function name : ihevce_init_sys_api \endif
277*c83a76b0SSuyog Pawar *
278*c83a76b0SSuyog Pawar * \brief
279*c83a76b0SSuyog Pawar * This function initialises sysstem call apis
280*c83a76b0SSuyog Pawar *
281*c83a76b0SSuyog Pawar * \param[in]
282*c83a76b0SSuyog Pawar * pv_main_ctxt : This is used only for storing.
283*c83a76b0SSuyog Pawar * ps_sys_api : This is address to sys_api structure of static_cfg_prms
284*c83a76b0SSuyog Pawar *
285*c83a76b0SSuyog Pawar * \return
286*c83a76b0SSuyog Pawar * None
287*c83a76b0SSuyog Pawar *
288*c83a76b0SSuyog Pawar * \author
289*c83a76b0SSuyog Pawar * Ittiam
290*c83a76b0SSuyog Pawar *
291*c83a76b0SSuyog Pawar *****************************************************************************
292*c83a76b0SSuyog Pawar */
ihevce_init_sys_api(void * pv_cb_handle,ihevce_sys_api_t * ps_sys_api)293*c83a76b0SSuyog Pawar void ihevce_init_sys_api(void *pv_cb_handle, ihevce_sys_api_t *ps_sys_api)
294*c83a76b0SSuyog Pawar {
295*c83a76b0SSuyog Pawar ps_sys_api->pv_cb_handle = pv_cb_handle;
296*c83a76b0SSuyog Pawar
297*c83a76b0SSuyog Pawar /* Console IO APIs */
298*c83a76b0SSuyog Pawar ps_sys_api->ihevce_printf = ihevce_printf;
299*c83a76b0SSuyog Pawar
300*c83a76b0SSuyog Pawar ps_sys_api->ihevce_sscanf = ihevce_sscanf;
301*c83a76b0SSuyog Pawar ps_sys_api->ihevce_sprintf = ihevce_sprintf;
302*c83a76b0SSuyog Pawar
303*c83a76b0SSuyog Pawar /* File IO APIs */
304*c83a76b0SSuyog Pawar ps_sys_api->s_file_io_api.ihevce_fopen = ihevce_fopen;
305*c83a76b0SSuyog Pawar ps_sys_api->s_file_io_api.ihevce_fclose = ihevce_fclose;
306*c83a76b0SSuyog Pawar ps_sys_api->s_file_io_api.ihevce_fflush = ihevce_fflush;
307*c83a76b0SSuyog Pawar ps_sys_api->s_file_io_api.ihevce_fseek = ihevce_fseek;
308*c83a76b0SSuyog Pawar
309*c83a76b0SSuyog Pawar ps_sys_api->s_file_io_api.ihevce_fscanf = ihevce_fscanf;
310*c83a76b0SSuyog Pawar ps_sys_api->s_file_io_api.ihevce_fread = ihevce_fread;
311*c83a76b0SSuyog Pawar
312*c83a76b0SSuyog Pawar ps_sys_api->s_file_io_api.ihevce_fprintf = ihevce_fprintf;
313*c83a76b0SSuyog Pawar ps_sys_api->s_file_io_api.ihevce_fwrite = ihevce_fwrite;
314*c83a76b0SSuyog Pawar ps_sys_api->s_file_io_api.ihevce_fgets = ihevce_fgets;
315*c83a76b0SSuyog Pawar }
316