• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 ******************************************************************************
23 * @file
24 *  ihevce_lap_interface.h
25 *
26 * @brief
27 *  This file contains structure definitions related to look-ahead processing
28 *
29 * @author
30 *  ittiam
31 *
32 ******************************************************************************
33 */
34 
35 #ifndef _IHEVCE_LAP_INTERFACE_H_
36 #define _IHEVCE_LAP_INTERFACE_H_
37 
38 /*****************************************************************************/
39 /* Structures                                                                */
40 /*****************************************************************************/
41 
42 /**
43 ******************************************************************************
44  *  @brief  lap interface ctxt
45 ******************************************************************************
46  */
47 typedef struct
48 {
49     ihevce_sys_api_t *ps_sys_api;
50     void *pv_hle_ctxt;
51     void *pv_lap_module_ctxt;
52 
53     /**
54     * Control Input buffer Queue id
55     */
56 
57     WORD32 i4_ctrl_in_que_id;
58     /**
59     *
60     *EnC and application owned command buffer size
61     */
62     WORD32 i4_ctrl_cmd_buf_size;
63 
64     /**
65     * Control Input buffer blocking mode
66     */
67     WORD32 i4_ctrl_in_que_blocking_mode;
68 
69     /**
70     * Control output buffer Queue id
71     */
72     WORD32 i4_ctrl_out_que_id;
73 
74     /**
75     * Dynamic bitrate change Callback function
76     */
77     void (*ihevce_dyn_bitrate_cb)(void *pv_hle_ctxt, void *pv_dyn_bitrate_prms);
78 
79 } lap_intface_t;
80 
81 /*****************************************************************************/
82 /* Function Declarations                                                     */
83 /*****************************************************************************/
84 
85 WORD32 ihevce_lap_get_num_mem_recs(void);
86 
87 WORD32 ihevce_lap_get_mem_recs(iv_mem_rec_t *ps_mem_tab, WORD32 i4_mem_space);
88 
89 WORD32 ihevce_lap_get_num_ip_bufs(ihevce_lap_static_params_t *ps_lap_stat_prms);
90 
91 void *ihevce_lap_init(
92     iv_mem_rec_t *ps_mem_tab,
93     ihevce_lap_static_params_t *ps_lap_params,
94     ihevce_static_cfg_params_t *ps_static_cfg_prms);
95 
96 ihevce_lap_enc_buf_t *
97     ihevce_lap_process(void *pv_interface_ctxt, ihevce_lap_enc_buf_t *ps_curr_inp);
98 
99 WORD32 ihevce_check_last_inp_buf(WORD32 *pi4_cmd_buf);
100 
101 #endif /* _IHEVCE_LAP_INTERFACE_H_ */
102