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