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 /* File Name : impeg2d_api.h */ 23 /* */ 24 /* Description : This file contains all the necessary examples to */ 25 /* establish a consistent use of Ittiam C coding */ 26 /* standards (based on Indian Hill C Standards) */ 27 /* */ 28 /* List of Functions : <List the functions defined in this file> */ 29 /* */ 30 /* Issues / Problems : None */ 31 /* */ 32 /* Revision History : */ 33 /* */ 34 /* DD MM YYYY Author(s) Changes (Describe the changes made) */ 35 /* 10 10 2005 Ittiam Draft */ 36 /* */ 37 /*****************************************************************************/ 38 39 #ifndef __IMPEG2D_API_H__ 40 #define __IMPEG2D_API_H__ 41 42 43 /*****************************************************************************/ 44 /* Constant Macros */ 45 /*****************************************************************************/ 46 47 48 #define DEBUG_PRINT printf 49 50 51 52 53 #define NUM_MEM_RECORDS 4 * MAX_THREADS + NUM_INT_FRAME_BUFFERS + 5 + 2 + 1 54 55 56 #define SETBIT(a,i) ((a) |= (1 << i)) 57 58 59 /*********************/ 60 /* Codec Versioning */ 61 /*********************/ 62 63 64 65 66 /*****************************************************************************/ 67 /* Function Declarations */ 68 /*****************************************************************************/ 69 70 IV_API_CALL_STATUS_T impeg2d_api_num_mem_rec(void *pv_api_ip, void *pv_api_op); 71 72 IV_API_CALL_STATUS_T impeg2d_api_fill_mem_rec(void *pv_api_ip, void *pv_api_op); 73 74 IV_API_CALL_STATUS_T impeg2d_api_init(iv_obj_t *DECHDL, 75 void *ps_ip, 76 void *ps_op); 77 78 IV_API_CALL_STATUS_T impeg2d_api_set_display_frame(iv_obj_t *DECHDL, 79 void *pv_api_ip, 80 void *pv_api_op); 81 82 IV_API_CALL_STATUS_T impeg2d_api_rel_display_frame(iv_obj_t *DECHDL, 83 void *pv_api_ip, 84 void *pv_api_op); 85 86 IV_API_CALL_STATUS_T impeg2d_api_retrieve_mem_rec(iv_obj_t *DECHDL, 87 void *pv_api_ip, 88 void *pv_api_op); 89 90 IV_API_CALL_STATUS_T impeg2d_api_ctl(iv_obj_t *DECHDL, 91 void *pv_api_ip, 92 void *pv_api_op); 93 94 IV_API_CALL_STATUS_T impeg2d_api_get_version(iv_obj_t *DECHDL, 95 void *pv_api_ip, 96 void *pv_api_op); 97 98 IV_API_CALL_STATUS_T impeg2d_api_get_buf_info(iv_obj_t *DECHDL, 99 void *pv_api_ip, 100 void *pv_api_op); 101 102 IV_API_CALL_STATUS_T impeg2d_api_set_flush_mode(iv_obj_t *DECHDL, 103 void *pv_api_ip, 104 void *pv_api_op); 105 106 IV_API_CALL_STATUS_T impeg2d_api_set_default(iv_obj_t *DECHDL, 107 void *pv_api_ip, 108 void *pv_api_op); 109 110 IV_API_CALL_STATUS_T impeg2d_api_reset(iv_obj_t *DECHDL, 111 void *pv_api_ip, 112 void *pv_api_op); 113 114 IV_API_CALL_STATUS_T impeg2d_api_set_params(iv_obj_t *DECHDL, 115 void *pv_api_ip, 116 void *pv_api_op); 117 118 IV_API_CALL_STATUS_T impeg2d_api_get_status(iv_obj_t *DECHDL, 119 void *pv_api_ip, 120 void *pv_api_op); 121 122 IV_API_CALL_STATUS_T impeg2d_api_set_params(iv_obj_t *DECHDL, 123 void *pv_api_ip, 124 void *pv_api_op); 125 126 void impeg2d_fill_mem_rec(impeg2d_fill_mem_rec_ip_t *ps_ip, 127 impeg2d_fill_mem_rec_op_t *ps_op); 128 129 void impeg2d_dec_frm(void *dec, 130 impeg2d_video_decode_ip_t *ps_ip, 131 impeg2d_video_decode_op_t *ps_op); 132 133 void impeg2d_dec_hdr(void *dec, 134 impeg2d_video_decode_ip_t *ps_ip, 135 impeg2d_video_decode_op_t *ps_op); 136 137 IV_API_CALL_STATUS_T impeg2d_api_entity(iv_obj_t *DECHDL, 138 void *pv_api_ip, 139 void *pv_api_op); 140 141 IV_API_CALL_STATUS_T impeg2d_api_check_struct_sanity(iv_obj_t *ps_handle, 142 void *pv_api_ip, 143 void *pv_api_op); 144 145 146 147 148 #endif /* __IMPEG2D_API_H__ */ 149 150