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