| /****************************************************************************** |
| * |
| * Copyright (C) 2018 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at: |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| ***************************************************************************** |
| * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore |
| */ |
| /*! |
| ****************************************************************************** |
| * \file ihevce_frame_process.h |
| * |
| * \brief |
| * This file contains interface defination of frame proceswsing pass |
| * |
| * \date |
| * 18/09/2012 |
| * |
| * \author |
| * Ittiam |
| * |
| ****************************************************************************** |
| */ |
| |
| #ifndef _IHEVCE_FRAME_PROCESS_H_ |
| #define _IHEVCE_FRAME_PROCESS_H_ |
| |
| /*****************************************************************************/ |
| /* Constant Macros */ |
| /*****************************************************************************/ |
| |
| /*****************************************************************************/ |
| /* Function Macros */ |
| /*****************************************************************************/ |
| |
| /*****************************************************************************/ |
| /* Typedefs */ |
| /*****************************************************************************/ |
| |
| /*****************************************************************************/ |
| /* Enums */ |
| /*****************************************************************************/ |
| |
| /*****************************************************************************/ |
| /* Structure */ |
| /*****************************************************************************/ |
| |
| /*****************************************************************************/ |
| /* Extern Variable Declarations */ |
| /*****************************************************************************/ |
| |
| /*****************************************************************************/ |
| /* Extern Function Declarations */ |
| /*****************************************************************************/ |
| DOUBLE ihevce_compute_psnr( |
| UWORD8 *pu1_ip_buf, |
| UWORD8 *pu1_ref_buf, |
| WORD32 width, |
| WORD32 height, |
| WORD32 horz_jmp, |
| WORD32 ip_stride, |
| WORD32 ref_stride, |
| double *acc_mse, |
| ihevce_logo_attrs_t *ps_logo_ctxt, |
| WORD32 i4_is_chroma); |
| |
| void ihevce_pre_enc_manage_ref_pics( |
| enc_ctxt_t *ps_enc_ctxt, |
| ihevce_lap_enc_buf_t *ps_curr_inp, |
| pre_enc_me_ctxt_t *ps_curr_out, |
| WORD32 i4_ping_pong); |
| |
| void ihevce_manage_ref_pics( |
| enc_ctxt_t *ps_enc_ctxt, |
| ihevce_lap_enc_buf_t *ps_curr_inp, |
| slice_header_t *ps_slice_header, |
| WORD32 i4_me_frm_id, |
| WORD32 i4_thrd_id, |
| WORD32 i4_bitrate_instance_id); |
| |
| void ihevce_get_frame_lambda_prms( |
| enc_ctxt_t *ps_enc_ctxt, |
| pre_enc_me_ctxt_t *ps_cur_pic_ctxt, |
| WORD32 i4_cur_frame_qp, |
| WORD32 first_field, |
| WORD32 i4_is_ref_pic, |
| WORD32 i4_temporal_lyr_id, |
| double f_i_pic_lamda_modifier, |
| WORD32 i4_inst_id, |
| WORD32 i4_lambda_type); |
| |
| void calc_l1_level_hme_intra_sad_different_qp( |
| enc_ctxt_t *ps_enc_ctxt, |
| pre_enc_me_ctxt_t *ps_curr_out, |
| ihevce_lap_enc_buf_t *ps_curr_inp, |
| WORD32 i4_tot_ctb_l1_x, |
| WORD32 i4_tot_ctb_l1_y); |
| |
| WORD32 ihevce_pre_enc_process_frame_thrd(void *pv_hle_ctxt); |
| |
| WORD32 ihevce_enc_process_frame_thrd(void *pv_hle_ctxt); |
| |
| WORD32 ihevce_enc_frm_proc_slave_thrd(void *pv_frm_proc_thrd_ctxt); |
| |
| WORD32 ihevce_pre_enc_frm_proc_slave_thrd(void *pv_frm_proc_thrd_ctxt); |
| |
| void ihevce_set_pre_enc_prms(enc_ctxt_t *ps_enc_ctxt); |
| |
| #endif /* _IHEVCE_FRAME_PROCESS_H_ */ |