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_hle_q_func.h
23 *
24 * \brief
25 *    This file contains interface defination Que related functions
26 *    of high level encoder
27 *
28 * \date
29 *    18/09/2012
30 *
31 * \author
32 *    Ittiam
33 *
34 ******************************************************************************
35 */
36 
37 #ifndef _IHEVCE_HEL_Q_FUNC_H_
38 #define _IHEVCE_HEL_Q_FUNC_H_
39 
40 /*****************************************************************************/
41 /* Constant Macros                                                           */
42 /*****************************************************************************/
43 
44 /*****************************************************************************/
45 /* Function Macros                                                           */
46 /*****************************************************************************/
47 
48 /*****************************************************************************/
49 /* Typedefs                                                                  */
50 /*****************************************************************************/
51 
52 /*****************************************************************************/
53 /* Enums                                                                     */
54 /*****************************************************************************/
55 
56 /*****************************************************************************/
57 /* Structure                                                                 */
58 /*****************************************************************************/
59 
60 /*****************************************************************************/
61 /* Extern Variable Declarations                                              */
62 /*****************************************************************************/
63 
64 /*****************************************************************************/
65 /* Extern Function Declarations                                              */
66 /*****************************************************************************/
67 void *ihevce_q_get_free_buff(
68     void *pv_enc_ctxt, WORD32 i4_q_id, WORD32 *pi4_buff_id, WORD32 i4_blocking_mode);
69 
70 IV_API_CALL_STATUS_T ihevce_q_set_buff_prod(void *pv_enc_ctxt, WORD32 i4_q_id, WORD32 i4_buff_id);
71 
72 void *ihevce_q_get_filled_buff(
73     void *pv_enc_ctxt, WORD32 i4_q_id, WORD32 *pi4_buff_id, WORD32 i4_blocking_mode);
74 
75 IV_API_CALL_STATUS_T ihevce_q_rel_buf(void *pv_enc_ctxt, WORD32 i4_q_id, WORD32 i4_buff_id);
76 
77 void ihevce_force_end(ihevce_hle_ctxt_t *ps_hle_ctxt);
78 
79 #endif /* _IHEVCE_HEL_Q_FUNC_H_ */
80