• 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 * \file ihevce_multi_thrd_funcs.h
23 *
24 * \brief
25 *    This file contains interface defination of related to Job Ques and others,
26 *     required for multi threading
27 *
28 * \date
29 *    18/09/2012
30 *
31 * \author
32 *    Ittiam
33 *
34 ******************************************************************************
35 */
36 
37 #ifndef _IHEVCE_MULTI_THRD_FUNCS_H_
38 #define _IHEVCE_MULTI_THRD_FUNCS_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_enc_grp_get_next_job(
68     void *pv_multi_thrd_ctxt, WORD32 i4_job_type, WORD32 i4_blocking_mode, WORD32 i4_curr_frm_id);
69 
70 void *ihevce_pre_enc_grp_get_next_job(
71     void *pv_multi_thrd_ctxt, WORD32 i4_job_type, WORD32 i4_blocking_mode, WORD32 i4_ping_pong);
72 
73 void ihevce_pre_enc_grp_job_set_out_dep(
74     void *pv_multi_thrd_ctxt, job_queue_t *ps_curr_job, WORD32 i4_ping_pong);
75 
76 void ihevce_enc_grp_job_set_out_dep(
77     void *pv_multi_thrd_ctxt, job_queue_t *ps_curr_job, WORD32 i4_curr_frm_id);
78 
79 void ihevce_prepare_job_queue(
80     void *pv_enc_ctxt, ihevce_lap_enc_buf_t *ps_curr_inp, WORD32 i4_curr_frm_id);
81 
82 void ihevce_prepare_pre_enc_job_queue(
83     void *pv_enc_ctxt, ihevce_lap_enc_buf_t *ps_curr_inp, WORD32 i4_ping_pong);
84 
85 #endif /* _IHEVCE_MULTI_THRD_FUNCS_H_ */
86