/src/libavc/encoder/svc/isvce_utils.h
Line | Count | Source (jump to first uncovered line) |
1 | | /****************************************************************************** |
2 | | * |
3 | | * Copyright (C) 2022 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 | | * isvce_utils.h |
25 | | * |
26 | | * @brief |
27 | | * Contains function declarations for function declared in ih264e_svc_utils.c |
28 | | * |
29 | | * @author |
30 | | * ittiam |
31 | | * |
32 | | * @remarks |
33 | | * None |
34 | | * |
35 | | ******************************************************************************* |
36 | | */ |
37 | | |
38 | | #ifndef _ISVCE_UTILS_H_ |
39 | | #define _ISVCE_UTILS_H_ |
40 | | |
41 | | #include <stdio.h> |
42 | | #include <stddef.h> |
43 | | #include <stdlib.h> |
44 | | #include <string.h> |
45 | | #include <assert.h> |
46 | | |
47 | | #include "ih264_typedefs.h" |
48 | | #include "ih264e_bitstream.h" |
49 | | /* Dependencies of 'irc_picture_type.h' */ |
50 | | #include "irc_cntrl_param.h" |
51 | | #include "irc_frame_info_collector.h" |
52 | | #include "irc_mem_req_and_acq.h" |
53 | | /* Dependencies of 'irc_rate_control_api_structs' */ |
54 | | #include "irc_picture_type.h" |
55 | | #include "irc_rd_model.h" |
56 | | #include "irc_vbr_storage_vbv.h" |
57 | | #include "irc_est_sad.h" |
58 | | #include "irc_bit_allocation.h" |
59 | | #include "irc_mb_model_based.h" |
60 | | #include "irc_cbr_buffer_control.h" |
61 | | #include "irc_vbr_str_prms.h" |
62 | | #include "irc_common.h" |
63 | | #include "irc_rate_control_api_structs.h" |
64 | | #include "isvc_macros.h" |
65 | | #include "isvc_structs.h" |
66 | | #include "isvce_defs.h" |
67 | | #include "isvce_globals.h" |
68 | | #include "isvce_interface_structs.h" |
69 | | #include "isvce_structs.h" |
70 | | |
71 | | static FORCEINLINE void isvce_svc_au_buf_init(svc_au_buf_t *ps_svc_pic_buf, |
72 | | svc_params_t *ps_svc_params) |
73 | 329k | { |
74 | 329k | ps_svc_pic_buf->i1_temporal_id = -1; |
75 | 329k | ps_svc_pic_buf->u1_num_spatial_layers = ps_svc_params->u1_num_spatial_layers; |
76 | 329k | ps_svc_pic_buf->d_spatial_res_ratio = ps_svc_params->d_spatial_res_ratio; |
77 | 329k | } isvce_api.c:isvce_svc_au_buf_init Line | Count | Source | 73 | 329k | { | 74 | 329k | ps_svc_pic_buf->i1_temporal_id = -1; | 75 | 329k | ps_svc_pic_buf->u1_num_spatial_layers = ps_svc_params->u1_num_spatial_layers; | 76 | 329k | ps_svc_pic_buf->d_spatial_res_ratio = ps_svc_params->d_spatial_res_ratio; | 77 | 329k | } |
Unexecuted instantiation: isvce_encode.c:isvce_svc_au_buf_init Unexecuted instantiation: isvce_ibl_eval.c:isvce_svc_au_buf_init Unexecuted instantiation: isvce_ilp_mv.c:isvce_svc_au_buf_init Unexecuted instantiation: isvce_process.c:isvce_svc_au_buf_init Unexecuted instantiation: isvce_rc_mem_interface.c:isvce_svc_au_buf_init Unexecuted instantiation: isvce_residual_pred.c:isvce_svc_au_buf_init Unexecuted instantiation: isvce_utils.c:isvce_svc_au_buf_init Unexecuted instantiation: isvce_cabac_encode.c:isvce_svc_au_buf_init Unexecuted instantiation: isvce_cabac_init.c:isvce_svc_au_buf_init Unexecuted instantiation: isvce_cavlc.c:isvce_svc_au_buf_init Unexecuted instantiation: isvce_encode_header.c:isvce_svc_au_buf_init Unexecuted instantiation: isvce_me.c:isvce_svc_au_buf_init |
78 | | |
79 | | static FORCEINLINE WORD8 isvce_svc_temporal_id_compute(WORD32 i4_poc, UWORD8 u1_num_temporal_layers, |
80 | | PIC_TYPE_T e_pic_type) |
81 | 56.5k | { |
82 | 56.5k | if(e_pic_type == PIC_IDR) |
83 | 16.7k | { |
84 | 16.7k | return 0; |
85 | 16.7k | } |
86 | 39.7k | else |
87 | 39.7k | { |
88 | 39.7k | return i4_poc % u1_num_temporal_layers; |
89 | 39.7k | } |
90 | 56.5k | } Unexecuted instantiation: isvce_api.c:isvce_svc_temporal_id_compute Unexecuted instantiation: isvce_encode.c:isvce_svc_temporal_id_compute Unexecuted instantiation: isvce_ibl_eval.c:isvce_svc_temporal_id_compute Unexecuted instantiation: isvce_ilp_mv.c:isvce_svc_temporal_id_compute Unexecuted instantiation: isvce_process.c:isvce_svc_temporal_id_compute Unexecuted instantiation: isvce_rc_mem_interface.c:isvce_svc_temporal_id_compute Unexecuted instantiation: isvce_residual_pred.c:isvce_svc_temporal_id_compute isvce_utils.c:isvce_svc_temporal_id_compute Line | Count | Source | 81 | 56.5k | { | 82 | 56.5k | if(e_pic_type == PIC_IDR) | 83 | 16.7k | { | 84 | 16.7k | return 0; | 85 | 16.7k | } | 86 | 39.7k | else | 87 | 39.7k | { | 88 | 39.7k | return i4_poc % u1_num_temporal_layers; | 89 | 39.7k | } | 90 | 56.5k | } |
Unexecuted instantiation: isvce_cabac_encode.c:isvce_svc_temporal_id_compute Unexecuted instantiation: isvce_cabac_init.c:isvce_svc_temporal_id_compute Unexecuted instantiation: isvce_cavlc.c:isvce_svc_temporal_id_compute Unexecuted instantiation: isvce_encode_header.c:isvce_svc_temporal_id_compute Unexecuted instantiation: isvce_me.c:isvce_svc_temporal_id_compute |
91 | | |
92 | | static FORCEINLINE WORD32 isvcd_get_ceil_log2(WORD32 i4_input) |
93 | 21.9k | { |
94 | 21.9k | WORD32 i4_bits = 0; |
95 | | |
96 | | /* check for negative number */ |
97 | 21.9k | ASSERT(i4_input >= 0); |
98 | | |
99 | 21.9k | i4_input--; |
100 | | |
101 | 139k | while(i4_input > 0) |
102 | 118k | { |
103 | 118k | i4_bits++; |
104 | 118k | i4_input >>= 1; |
105 | 118k | } |
106 | | |
107 | 21.9k | return (i4_bits); |
108 | 21.9k | } Unexecuted instantiation: isvce_api.c:isvcd_get_ceil_log2 Unexecuted instantiation: isvce_encode.c:isvcd_get_ceil_log2 isvce_ibl_eval.c:isvcd_get_ceil_log2 Line | Count | Source | 93 | 10.9k | { | 94 | 10.9k | WORD32 i4_bits = 0; | 95 | | | 96 | | /* check for negative number */ | 97 | 10.9k | ASSERT(i4_input >= 0); | 98 | | | 99 | 10.9k | i4_input--; | 100 | | | 101 | 69.9k | while(i4_input > 0) | 102 | 59.0k | { | 103 | 59.0k | i4_bits++; | 104 | 59.0k | i4_input >>= 1; | 105 | 59.0k | } | 106 | | | 107 | 10.9k | return (i4_bits); | 108 | 10.9k | } |
Unexecuted instantiation: isvce_ilp_mv.c:isvcd_get_ceil_log2 Unexecuted instantiation: isvce_process.c:isvcd_get_ceil_log2 Unexecuted instantiation: isvce_rc_mem_interface.c:isvcd_get_ceil_log2 Unexecuted instantiation: isvce_residual_pred.c:isvcd_get_ceil_log2 isvce_utils.c:isvcd_get_ceil_log2 Line | Count | Source | 93 | 10.9k | { | 94 | 10.9k | WORD32 i4_bits = 0; | 95 | | | 96 | | /* check for negative number */ | 97 | 10.9k | ASSERT(i4_input >= 0); | 98 | | | 99 | 10.9k | i4_input--; | 100 | | | 101 | 69.9k | while(i4_input > 0) | 102 | 59.0k | { | 103 | 59.0k | i4_bits++; | 104 | 59.0k | i4_input >>= 1; | 105 | 59.0k | } | 106 | | | 107 | 10.9k | return (i4_bits); | 108 | 10.9k | } |
Unexecuted instantiation: isvce_cabac_encode.c:isvcd_get_ceil_log2 Unexecuted instantiation: isvce_cabac_init.c:isvcd_get_ceil_log2 Unexecuted instantiation: isvce_cavlc.c:isvcd_get_ceil_log2 Unexecuted instantiation: isvce_encode_header.c:isvcd_get_ceil_log2 Unexecuted instantiation: isvce_me.c:isvcd_get_ceil_log2 |
109 | | /** |
110 | | ******************************************************************************* |
111 | | * |
112 | | * @brief calculate coded subblock pattern from nnz |
113 | | * |
114 | | * @par Description: |
115 | | * calculate coded subblock pattern from nnz |
116 | | * |
117 | | * @param[in] ps_proc |
118 | | * process context |
119 | | * |
120 | | * @returns csbp |
121 | | * |
122 | | * @remarks none |
123 | | * |
124 | | ******************************************************************************* |
125 | | */ |
126 | | static FORCEINLINE UWORD32 isvce_calculate_csbp(isvce_process_ctxt_t *ps_proc) |
127 | 9.61M | { |
128 | 9.61M | WORD32 i; |
129 | | |
130 | 9.61M | UWORD8 *pu1_curr_nnz = ((UWORD8 *) ps_proc->au4_nnz) + 1; |
131 | 9.61M | UWORD32 u4_csbp = 0; |
132 | | |
133 | 163M | for(i = 0; i < 16; i++) |
134 | 153M | { |
135 | 153M | UWORD8 u1_zscan_idx = gau1_raster_to_zscan_map[i]; |
136 | | |
137 | 153M | u4_csbp |= ((!!pu1_curr_nnz[i]) << u1_zscan_idx); |
138 | 153M | } |
139 | | |
140 | 9.61M | return u4_csbp; |
141 | 9.61M | } Unexecuted instantiation: isvce_api.c:isvce_calculate_csbp Unexecuted instantiation: isvce_encode.c:isvce_calculate_csbp Unexecuted instantiation: isvce_ibl_eval.c:isvce_calculate_csbp Unexecuted instantiation: isvce_ilp_mv.c:isvce_calculate_csbp isvce_process.c:isvce_calculate_csbp Line | Count | Source | 127 | 9.61M | { | 128 | 9.61M | WORD32 i; | 129 | | | 130 | 9.61M | UWORD8 *pu1_curr_nnz = ((UWORD8 *) ps_proc->au4_nnz) + 1; | 131 | 9.61M | UWORD32 u4_csbp = 0; | 132 | | | 133 | 163M | for(i = 0; i < 16; i++) | 134 | 153M | { | 135 | 153M | UWORD8 u1_zscan_idx = gau1_raster_to_zscan_map[i]; | 136 | | | 137 | 153M | u4_csbp |= ((!!pu1_curr_nnz[i]) << u1_zscan_idx); | 138 | 153M | } | 139 | | | 140 | 9.61M | return u4_csbp; | 141 | 9.61M | } |
Unexecuted instantiation: isvce_rc_mem_interface.c:isvce_calculate_csbp Unexecuted instantiation: isvce_residual_pred.c:isvce_calculate_csbp Unexecuted instantiation: isvce_utils.c:isvce_calculate_csbp Unexecuted instantiation: isvce_cabac_encode.c:isvce_calculate_csbp Unexecuted instantiation: isvce_cabac_init.c:isvce_calculate_csbp Unexecuted instantiation: isvce_cavlc.c:isvce_calculate_csbp Unexecuted instantiation: isvce_encode_header.c:isvce_calculate_csbp Unexecuted instantiation: isvce_me.c:isvce_calculate_csbp |
142 | | |
143 | | static FORCEINLINE UWORD8 isvce_check_identical_mv(isvce_enc_pu_mv_t *ps_mv1, |
144 | | isvce_enc_pu_mv_t *ps_mv2, |
145 | | PRED_MODE_T e_pred_mode) |
146 | 10.6M | { |
147 | 10.6M | if(e_pred_mode != L0) |
148 | 0 | { |
149 | 0 | if(!((ps_mv1[L1].i1_ref_idx == ps_mv2[L1].i1_ref_idx) && |
150 | 0 | (ps_mv1[L1].s_mv.i2_mvx == ps_mv2[L1].s_mv.i2_mvx) && |
151 | 0 | (ps_mv1[L1].s_mv.i2_mvy == ps_mv2[L1].s_mv.i2_mvy))) |
152 | 0 | { |
153 | 0 | return 0; |
154 | 0 | } |
155 | 0 | } |
156 | | |
157 | 10.6M | if(e_pred_mode != L1) |
158 | 10.6M | { |
159 | 10.6M | if(!((ps_mv1[L0].i1_ref_idx == ps_mv2[L0].i1_ref_idx) && |
160 | 10.6M | (ps_mv1[L0].s_mv.i2_mvx == ps_mv2[L0].s_mv.i2_mvx) && |
161 | 10.6M | (ps_mv1[L0].s_mv.i2_mvy == ps_mv2[L0].s_mv.i2_mvy))) |
162 | 2.25M | { |
163 | 2.25M | return 0; |
164 | 2.25M | } |
165 | 10.6M | } |
166 | | |
167 | 8.42M | return 1; |
168 | 10.6M | } Unexecuted instantiation: isvce_api.c:isvce_check_identical_mv Unexecuted instantiation: isvce_encode.c:isvce_check_identical_mv Unexecuted instantiation: isvce_ibl_eval.c:isvce_check_identical_mv isvce_ilp_mv.c:isvce_check_identical_mv Line | Count | Source | 146 | 10.5M | { | 147 | 10.5M | if(e_pred_mode != L0) | 148 | 0 | { | 149 | 0 | if(!((ps_mv1[L1].i1_ref_idx == ps_mv2[L1].i1_ref_idx) && | 150 | 0 | (ps_mv1[L1].s_mv.i2_mvx == ps_mv2[L1].s_mv.i2_mvx) && | 151 | 0 | (ps_mv1[L1].s_mv.i2_mvy == ps_mv2[L1].s_mv.i2_mvy))) | 152 | 0 | { | 153 | 0 | return 0; | 154 | 0 | } | 155 | 0 | } | 156 | | | 157 | 10.5M | if(e_pred_mode != L1) | 158 | 10.5M | { | 159 | 10.5M | if(!((ps_mv1[L0].i1_ref_idx == ps_mv2[L0].i1_ref_idx) && | 160 | 10.5M | (ps_mv1[L0].s_mv.i2_mvx == ps_mv2[L0].s_mv.i2_mvx) && | 161 | 10.5M | (ps_mv1[L0].s_mv.i2_mvy == ps_mv2[L0].s_mv.i2_mvy))) | 162 | 2.17M | { | 163 | 2.17M | return 0; | 164 | 2.17M | } | 165 | 10.5M | } | 166 | | | 167 | 8.37M | return 1; | 168 | 10.5M | } |
isvce_process.c:isvce_check_identical_mv Line | Count | Source | 146 | 139k | { | 147 | 139k | if(e_pred_mode != L0) | 148 | 0 | { | 149 | 0 | if(!((ps_mv1[L1].i1_ref_idx == ps_mv2[L1].i1_ref_idx) && | 150 | 0 | (ps_mv1[L1].s_mv.i2_mvx == ps_mv2[L1].s_mv.i2_mvx) && | 151 | 0 | (ps_mv1[L1].s_mv.i2_mvy == ps_mv2[L1].s_mv.i2_mvy))) | 152 | 0 | { | 153 | 0 | return 0; | 154 | 0 | } | 155 | 0 | } | 156 | | | 157 | 139k | if(e_pred_mode != L1) | 158 | 139k | { | 159 | 139k | if(!((ps_mv1[L0].i1_ref_idx == ps_mv2[L0].i1_ref_idx) && | 160 | 139k | (ps_mv1[L0].s_mv.i2_mvx == ps_mv2[L0].s_mv.i2_mvx) && | 161 | 139k | (ps_mv1[L0].s_mv.i2_mvy == ps_mv2[L0].s_mv.i2_mvy))) | 162 | 86.8k | { | 163 | 86.8k | return 0; | 164 | 86.8k | } | 165 | 139k | } | 166 | | | 167 | 53.0k | return 1; | 168 | 139k | } |
Unexecuted instantiation: isvce_rc_mem_interface.c:isvce_check_identical_mv Unexecuted instantiation: isvce_residual_pred.c:isvce_check_identical_mv Unexecuted instantiation: isvce_utils.c:isvce_check_identical_mv Unexecuted instantiation: isvce_cabac_encode.c:isvce_check_identical_mv Unexecuted instantiation: isvce_cabac_init.c:isvce_check_identical_mv Unexecuted instantiation: isvce_cavlc.c:isvce_check_identical_mv Unexecuted instantiation: isvce_encode_header.c:isvce_check_identical_mv Unexecuted instantiation: isvce_me.c:isvce_check_identical_mv |
169 | | |
170 | | static FORCEINLINE WORD32 isvce_get_num_bits(bitstrm_t *ps_bitstream) |
171 | 46.6M | { |
172 | 46.6M | return GET_NUM_BITS(ps_bitstream); |
173 | 0 | } Unexecuted instantiation: isvce_api.c:isvce_get_num_bits Unexecuted instantiation: isvce_encode.c:isvce_get_num_bits Unexecuted instantiation: isvce_ibl_eval.c:isvce_get_num_bits Unexecuted instantiation: isvce_ilp_mv.c:isvce_get_num_bits isvce_process.c:isvce_get_num_bits Line | Count | Source | 171 | 19.5M | { | 172 | 19.5M | return GET_NUM_BITS(ps_bitstream); | 173 | 0 | } |
Unexecuted instantiation: isvce_rc_mem_interface.c:isvce_get_num_bits Unexecuted instantiation: isvce_residual_pred.c:isvce_get_num_bits Unexecuted instantiation: isvce_utils.c:isvce_get_num_bits isvce_cabac_encode.c:isvce_get_num_bits Line | Count | Source | 171 | 11.4M | { | 172 | 11.4M | return GET_NUM_BITS(ps_bitstream); | 173 | 0 | } |
Unexecuted instantiation: isvce_cabac_init.c:isvce_get_num_bits isvce_cavlc.c:isvce_get_num_bits Line | Count | Source | 171 | 15.5M | { | 172 | 15.5M | return GET_NUM_BITS(ps_bitstream); | 173 | 0 | } |
Unexecuted instantiation: isvce_encode_header.c:isvce_get_num_bits Unexecuted instantiation: isvce_me.c:isvce_get_num_bits |
174 | | |
175 | | extern WORD32 ih264e_get_min_level(WORD32 wd, WORD32 ht); |
176 | | |
177 | | extern WORD32 isvce_svc_au_props_validate(svc_inp_params_t *ps_svc_inp_params, UWORD32 u4_inp_wd, |
178 | | UWORD32 u4_inp_ht, UWORD32 u4_svc_comp_wd, |
179 | | UWORD32 u4_svc_comp_ht); |
180 | | |
181 | | extern WORD32 isvce_svc_inp_params_validate(isvce_init_ip_t *ps_ip, isvce_cfg_params_t *ps_cfg); |
182 | | |
183 | | extern WORD32 isvce_svc_frame_params_validate( |
184 | | rate_control_api_t *aps_rate_control_api[MAX_NUM_SPATIAL_LAYERS], UWORD8 u1_num_spatial_layers); |
185 | | |
186 | | extern WORD32 isvce_get_total_svc_au_buf_size(svc_inp_params_t *ps_svc_inp_params, |
187 | | WORD32 i4_pic_size, WORD32 i4_level, |
188 | | WORD32 i4_horz_pad, WORD32 i4_vert_pad, |
189 | | WORD32 i4_num_ref_frames, |
190 | | WORD32 i4_num_reorder_frames); |
191 | | |
192 | | extern UWORD32 isvce_get_total_svc_au_data_size(WORD32 i4_num_luma_samples, |
193 | | UWORD8 u1_num_spatial_layers, |
194 | | DOUBLE d_spatial_res_ratio); |
195 | | |
196 | | extern IH264E_ERROR_T isvce_svc_au_data_mgr_add_bufs(isvce_codec_t *ps_codec); |
197 | | |
198 | | extern IH264E_ERROR_T isvce_svc_au_buf_mgr_add_bufs(isvce_codec_t *ps_codec); |
199 | | |
200 | | extern UWORD32 isvce_get_svc_inp_buf_size(UWORD8 u1_num_spatial_layers, DOUBLE d_spatial_res_ratio, |
201 | | UWORD32 u4_wd, UWORD32 u4_ht); |
202 | | |
203 | | extern void isvce_svc_inp_buf_init(isvce_codec_t *ps_codec, iv_mem_rec_t *ps_mem_rec); |
204 | | |
205 | | extern void isvce_init_svc_dimension(isvce_inp_buf_t *ps_inp); |
206 | | |
207 | | extern void isvce_svc_inp_buf_populate(isvce_codec_t *ps_codec, isvce_inp_buf_t *ps_inp); |
208 | | |
209 | | extern void isvce_get_svc_compliant_dimensions(UWORD8 u1_num_spatial_layers, |
210 | | DOUBLE d_scaling_factor, UWORD32 u4_wd, |
211 | | UWORD32 u4_ht, UWORD32 *pu4_svc_comp_wd, |
212 | | UWORD32 *pu4_svc_comp_ht); |
213 | | |
214 | | extern UWORD32 isvce_get_svc_nbr_info_buf_size(UWORD8 u1_num_spatial_layers, |
215 | | DOUBLE d_spatial_res_ratio, UWORD32 u4_wd, |
216 | | UWORD32 u4_ht); |
217 | | |
218 | | extern void isvce_svc_nbr_info_buf_init(isvce_codec_t *ps_codec, iv_mem_rec_t *ps_mem_rec); |
219 | | |
220 | | extern IH264E_ERROR_T isvce_svc_au_init(isvce_codec_t *ps_codec, isvce_inp_buf_t *ps_inp_buf); |
221 | | |
222 | | extern IH264E_ERROR_T isvce_svc_layer_pic_init(isvce_codec_t *ps_codec, isvce_inp_buf_t *ps_inp_buf, |
223 | | UWORD8 u1_spatial_layer_id); |
224 | | |
225 | | extern IH264E_ERROR_T isvce_init_layer_proc_ctxt(isvce_process_ctxt_t *ps_proc); |
226 | | |
227 | | extern UWORD32 isvce_get_svc_ilp_buf_size(UWORD8 u1_num_spatial_layers, DOUBLE d_spatial_res_ratio, |
228 | | UWORD32 u4_wd, UWORD32 u4_ht); |
229 | | |
230 | | extern void isvce_svc_ilp_buf_init(isvce_codec_t *ps_codec, iv_mem_rec_t *ps_mem_rec); |
231 | | |
232 | | extern void isvce_svc_ilp_buf_update(isvce_process_ctxt_t *ps_proc); |
233 | | |
234 | | extern void isvce_svc_pad_frame(isvce_process_ctxt_t *ps_proc); |
235 | | |
236 | | extern IH264E_ERROR_T isvce_init_air_map(isvce_codec_t *ps_codec); |
237 | | |
238 | | extern void isvce_derive_nghbr_avbl_of_mbs(isvce_process_ctxt_t *ps_proc); |
239 | | |
240 | | extern void isvce_init_quant_params(isvce_process_ctxt_t *ps_proc, WORD32 qp); |
241 | | |
242 | | extern IH264E_ERROR_T isvce_codec_init(isvce_codec_t *ps_codec); |
243 | | |
244 | | extern IH264E_ERROR_T isvce_codec_update_config(isvce_codec_t *ps_codec, |
245 | | isvce_cfg_params_t *ps_cfg); |
246 | | |
247 | | extern WORD32 isvce_input_queue_update(isvce_codec_t *ps_codec, ive_video_encode_ip_t *ps_ive_ip, |
248 | | isvce_inp_buf_t *ps_enc_buff, WORD8 i1_layer_id); |
249 | | |
250 | | extern void isvce_join_threads(isvce_codec_t *ps_codec); |
251 | | |
252 | | extern UWORD32 isvce_get_min_outbuf_size(UWORD32 u4_wd, UWORD32 u4_ht, |
253 | | UWORD8 u1_num_spatial_layers); |
254 | | |
255 | | #endif |