libhevc-mirror/encoder
Ram Mohan fa4b60c764 libhevcenc: fix bitrate overshoot when lookahead is disabled
When rc lookahead is disabled, next frame encode context becomes NULL.
This context is used to signal end of gop. As this is NULL rc does not
know the end of gop causing over consumption of bits. Rely on intraframe
interval to resolve this.

Also, as there is no scene change detection, default all pics to single scene.

Bug: 140313463
Bug: 168628473
Bug: 166085628
Test: atest android.media.cts.VideoCodecTest

Change-Id: I6dcf9fb52d3aa18935e0b8d9ec9c193b15d30668
2020-09-18 17:56:53 +05:30
..
arm libhevcenc: pre enc intra cleanup 2019-11-08 13:22:26 -08:00
bit_allocation.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
bit_allocation.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
cast_types.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
cbr_buffer_control.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
cbr_buffer_control.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
common_rom.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
common_rom.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
convert_float_to_fix.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
defs.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
est_sad.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
est_sad.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
fixed_point_error_bits.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
fixed_point_error_bits.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
frame_info_collector.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_coarse.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_coarse.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_common_defs.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_common_utils.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_common_utils.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_datatype.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_defs.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_err_compute.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_err_compute.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_fullpel.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_fullpel.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_function_selector.c libhevcenc: integrate missing neon function in preset P0 2019-05-03 21:35:01 +00:00
hme_function_selector.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_globals.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_globals.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_interface.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_interface.h libhevcenc: reduce min resolution from 320x240 to 2x2 2019-05-03 21:36:21 +00:00
hme_refine.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_refine.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_search_algo.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_search_algo.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_subpel.c libhevcenc: integrate missing neon function in preset P0 2019-05-03 21:35:01 +00:00
hme_subpel.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_utils.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
hme_utils.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ia_basic_ops32.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ia_basic_ops40.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ia_type_def.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_api.h libhevcenc: Add support for force idr picture 2020-03-13 15:48:53 +05:30
ihevce_bitstream.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_bitstream.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_bs_compute_ctb.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_bs_compute_ctb.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_buffer_que.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_buffer_que_interface.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_buffer_que_private.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_cabac.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_cabac.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_cabac_cu_pu.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_cabac_rdo.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_cabac_rdo.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_cabac_tu.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_chroma_had_satd.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_cmn_utils_instr_set_router.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_cmn_utils_instr_set_router.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_coarse_me_pass.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_coarse_me_pass.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_common_utils.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_common_utils.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_deblk.c libhevcenc: reduce min resolution from 320x240 to 2x2 2019-05-03 21:36:21 +00:00
ihevce_deblk.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_decomp_pre_intra_pass.c libhevcenc: pre enc intra cleanup 2019-11-08 13:22:26 -08:00
ihevce_decomp_pre_intra_pass.h libhevcenc: pre enc intra cleanup 2019-11-08 13:22:26 -08:00
ihevce_decomp_pre_intra_structs.h libhevcenc: pre enc intra cleanup 2019-11-08 13:22:26 -08:00
ihevce_defs.h libhevcenc: Release async control command buffer am: 4a0581dafa am: 72305e8d1d 2020-06-05 20:47:32 +00:00
ihevce_dep_mngr.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_dep_mngr_interface.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_dep_mngr_private.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_enc_cu_recursion.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_enc_cu_recursion.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_enc_loop_inter_mode_sifter.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_enc_loop_inter_mode_sifter.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_enc_loop_pass.c Merge "libhevc: Fix asan issue in intra pred mode assembly function" into qt-qpr1-dev am: 06714eb8e9 2020-03-20 02:23:04 +00:00
ihevce_enc_loop_pass.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_enc_loop_structs.h libhevcenc: Move deblk, sao and subpel plane generation into nctb loop 2019-10-11 12:09:30 -07:00
ihevce_enc_loop_utils.c libhevcenc: default initialize enc ctxt at the start 2019-10-10 18:55:10 +05:30
ihevce_enc_loop_utils.h libhevcenc: default initialize enc ctxt at the start 2019-10-10 18:55:10 +05:30
ihevce_enc_sbh_funcs.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_enc_sbh_utils.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_enc_structs.h libhevcenc: pre enc intra cleanup 2019-11-08 13:22:26 -08:00
ihevce_enc_subpel_gen.c libhevcenc: Move deblk, sao and subpel plane generation into nctb loop 2019-10-11 12:09:30 -07:00
ihevce_enc_subpel_gen.h libhevcenc: Move deblk, sao and subpel plane generation into nctb loop 2019-10-11 12:09:30 -07:00
ihevce_encode_header.c libhevcenc: reduce min resolution from 320x240 to 2x2 2019-05-03 21:36:21 +00:00
ihevce_encode_header.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_encode_header_sei_vui.c libhevcenc: integer overflow in vui 2019-06-13 15:28:33 -07:00
ihevce_encode_header_sei_vui.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_entropy_cod.c libhevcenc: integer overflow in vui 2019-06-13 15:28:33 -07:00
ihevce_entropy_cod.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_entropy_ctxt.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_entropy_interface.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_entropy_interface.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_entropy_structs.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_error_check.c Merge "libhevcenc: Add support for force idr picture" am: 3d654001c4 am: 9aaf323625 2020-03-24 19:28:59 +00:00
ihevce_error_checks.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_error_codes.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_frame_process.c libhevcenc: pre enc intra cleanup 2019-11-08 13:22:26 -08:00
ihevce_frame_process.h libhevcenc: pre enc intra cleanup 2019-11-08 13:22:26 -08:00
ihevce_frame_process_utils.c libhevcenc: Add support for force idr picture 2020-03-13 15:48:53 +05:30
ihevce_frame_process_utils.h libhevcenc: Add support for dynamic change in bitrate 2019-05-20 16:58:32 -07:00
ihevce_function_selector.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_function_selector.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_global_tables.c libhevcenc: pre enc intra cleanup 2019-11-08 13:22:26 -08:00
ihevce_global_tables.h libhevcenc: pre enc intra cleanup 2019-11-08 13:22:26 -08:00
ihevce_had_satd.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_had_satd.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_hle_interface.c libhevcenc: Add support for force idr picture 2020-03-13 15:48:53 +05:30
ihevce_hle_interface.h libhevcenc: pre enc intra cleanup 2019-11-08 13:22:26 -08:00
ihevce_hle_q_func.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_hle_q_func.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_inter_pred.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_inter_pred.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_ipe_instr_set_router.c libhevcenc: reduce min resolution from 320x240 to 2x2 2019-05-03 21:36:21 +00:00
ihevce_ipe_instr_set_router.h libhevcenc: reduce min resolution from 320x240 to 2x2 2019-05-03 21:36:21 +00:00
ihevce_ipe_pass.c Merge "libhevcenc: pre enc intra cleanup" 2019-12-05 21:54:12 +00:00
ihevce_ipe_pass.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_ipe_structs.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_lap_enc_structs.h libhevcenc: pre enc intra cleanup 2019-11-08 13:22:26 -08:00
ihevce_lap_interface.c libhevcenc: fix bitrate overshoot when lookahead is disabled 2020-09-18 17:56:53 +05:30
ihevce_lap_interface.h libhevcenc: Add support for dynamic change in bitrate 2019-05-20 16:58:32 -07:00
ihevce_lap_structs.h libhevcenc: Add support for force idr picture 2020-03-13 15:48:53 +05:30
ihevce_me_common_defs.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_me_instr_set_router.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_me_instr_set_router.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_me_pass.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_me_pass.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_memory_init.c libhevcenc: pre enc intra cleanup 2019-11-08 13:22:26 -08:00
ihevce_memory_init.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_multi_thrd_funcs.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_multi_thrd_funcs.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_multi_thrd_structs.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_mv_pred.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_mv_pred.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_mv_pred_merge.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_mv_pred_merge.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_nbr_avail.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_nbr_avail.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_plugin.c libhevcenc: Release async control command buffer 2020-06-04 15:58:51 -07:00
ihevce_plugin.h libhevcenc: Add support for force idr picture 2020-03-13 15:48:53 +05:30
ihevce_plugin_priv.h libhevcenc: Add support for force idr picture 2020-03-13 15:48:53 +05:30
ihevce_profile.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_profile.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_rc_enc_structs.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_rc_interface.c libhevcenc: fix bitrate overshoot when lookahead is disabled 2020-09-18 17:56:53 +05:30
ihevce_rc_interface.h libhevcenc: Add support for force idr picture 2020-03-13 15:48:53 +05:30
ihevce_rc_structs.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_rdoq_macros.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_recur_bracketing.c libhevcenc: pre enc intra cleanup 2019-11-08 13:22:26 -08:00
ihevce_recur_bracketing.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_sao.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_sao.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_stasino_helpers.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_stasino_helpers.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_sub_pic_rc.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_sub_pic_rc.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_sys_api.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_tile_interface.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_tile_interface.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_trace.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_trace.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_tu_tree_selector.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ihevce_tu_tree_selector.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
init_qp.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
init_qp.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
itt_video_api.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
ittiam_datatypes.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
mb_model_based.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
mb_model_based.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
mem_req_and_acq.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_cond_var.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_cond_var.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_defaults.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_errno.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_error.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_handle.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_mbox.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_mutex.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_mutex.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_network.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_select_engine.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_semaphore.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_semaphore.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_thread.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
osal_thread.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
picture_type.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
picture_type.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
rate_control_api.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
rate_control_api.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
rate_control_api_structs.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
rc_cntrl_param.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
rc_common.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
rc_frame_info_collector.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
rc_look_ahead_params.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
rc_rd_model.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
rc_rd_model.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
rc_rd_model_fix.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
rc_rd_model_struct.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
rc_sad_acc.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
rc_sad_acc.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
sqrt_interp.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
sqrt_interp.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
trace_support.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
var_q_operator.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
var_q_operator.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
vbr_storage_vbv.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
vbr_storage_vbv.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
vbr_str_prms.c libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00
vbr_str_prms.h libhevcenc: Initial commit 2019-02-18 07:43:11 -08:00