libavc/encoder
Ram Mohan 30858f49ad libavcenc: do not reset status before all threads are made aware
At the end of encoding of a frame, the entropy thread communicates
the encoded bit stream size to rc module for update. After this
update, if rc decides to skip the frame due to vbv overflow, the
bitstream context is reset and frame is marked for skip.

Due to an oversight, if entropy encoding sees an error, then this
update is happening at the end of each row. Now rc has decided to
skip the frame and the context is reset. As the bitstream context is
reset, other threads are unaware of this problem and continue encoding.

This is causing issues.

Restrict the rc update to the thread that entropy code the last row.

Bug: oss-fuzz:59543
Bug: 285891354
Test: avc_enc_fuzzer

Change-Id: If45a5f34abb59ece812733af8f54f72ae5474d03
2023-09-13 20:38:10 -07:00
..
arm Encoder: SVC encoding support added 2023-01-30 11:07:10 -08:00
armv8 armv8: Fix ime_calculate_sad3_prog_av8 2016-10-06 10:29:43 +03:00
riscv svcenc: fixed riscv4 soong build errors 2023-02-07 07:09:18 -08:00
svc svcenc: Handling frames with few MB's in In-frame RC 2023-07-25 08:06:32 -07:00
x86 Encoder: SVC encoding support added 2023-01-30 11:07:10 -08:00
ih264e.h libavc: Added support for SII SEI message 2023-02-14 22:00:13 -08:00
ih264e_api.c encoder: Add checks for ME search algorithm 2023-04-04 22:33:36 -07:00
ih264e_bitstream.c avcenc: Add bitstream overflow check during emulation prevention 2021-03-20 15:36:08 +00:00
ih264e_bitstream.h Encoder: Rename INSERT_EPB 2022-02-28 04:57:49 +00:00
ih264e_cabac.c avcenc: Add bitstream overflow check during emulation prevention 2021-03-20 15:36:08 +00:00
ih264e_cabac.h avcenc: Add bitstream overflow check during emulation prevention 2021-03-20 15:36:08 +00:00
ih264e_cabac_encode.c Encoder: Defined structures for accessing MB header data 2016-11-24 12:25:49 +05:30
ih264e_cabac_init.c Encoder: Fixed unaligned access of i1_ref_idx and u1_mv in cabac context 2016-11-24 12:22:25 +05:30
ih264e_cabac_structs.h Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
ih264e_cavlc.c Encoder: Defined structures for accessing MB header data 2016-11-24 12:25:49 +05:30
ih264e_cavlc.h Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
ih264e_config.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_core_coding.c Always do recon of 4x4 intra blocks 2015-07-02 13:22:18 +03:00
ih264e_core_coding.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_deblk.c Added support for Main Profile toolsets in encoder. 2015-06-24 20:36:11 +00:00
ih264e_deblk.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_debug.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_defs.h Encoder: add support for PSNR export 2022-08-17 17:22:00 +00:00
ih264e_encode.c libavcenc: fix null buffer dereferencing 2023-06-01 22:39:26 -07:00
ih264e_encode_header.c libavc: Added support for SII SEI message 2023-02-14 22:00:13 -08:00
ih264e_encode_header.h libavcenc: fix null buffer dereferencing 2023-06-01 22:39:26 -07:00
ih264e_error.h libavcenc: fix null buffer dereferencing 2023-06-01 22:39:26 -07:00
ih264e_fmt_conv.c Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
ih264e_fmt_conv.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_function_selector_generic.c Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
ih264e_globals.c Fixed QP lockups 2015-06-25 08:25:53 -07:00
ih264e_globals.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_half_pel.c Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
ih264e_half_pel.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_intra_modes_eval.c avcenc: Disable intra planar evaluation in FASTEST preset 2017-12-04 12:00:56 +05:30
ih264e_intra_modes_eval.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_list.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_master.h Encoder: add support for PSNR export 2022-08-17 17:22:00 +00:00
ih264e_mc.c Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
ih264e_mc.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_me.c Fixed issue in cost computation for BIPRED ME 2015-07-28 18:50:14 +00:00
ih264e_me.h avcenc: Disable SKIP_BIAS 2018-01-19 01:31:01 +00:00
ih264e_modify_frm_rate.c Don't use static structs for rc init 2015-06-25 08:25:57 -07:00
ih264e_modify_frm_rate.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_process.c libavcenc: do not reset status before all threads are made aware 2023-09-13 20:38:10 -07:00
ih264e_process.h Added support for Main Profile toolsets in encoder. 2015-06-24 20:36:11 +00:00
ih264e_rate_control.c Made gops closed 2015-07-31 18:51:20 +00:00
ih264e_rate_control.h Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
ih264e_rc_mem_interface.c Don't use static structs for rc init 2015-06-25 08:25:57 -07:00
ih264e_rc_mem_interface.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_sei.c Remove printf's from sei 2023-02-14 22:00:13 -08:00
ih264e_sei.h libavc: Added support for SII SEI message 2023-02-14 22:00:13 -08:00
ih264e_statistics.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_structs.h Updates to Android.bp and some formatting fixes 2023-03-08 20:27:18 -08:00
ih264e_time_stamp.c Encoder: Fixed an issue in handling FPS greater than 60 2015-08-03 09:45:14 -07:00
ih264e_time_stamp.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_trace.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_trace_support.h fix file permissions 2015-05-05 17:51:34 +00:00
ih264e_utils.c libavcenc: fix null buffer dereferencing 2023-06-01 22:39:26 -07:00
ih264e_utils.h Reduced memory requirements. 2015-06-25 08:25:54 -07:00
ih264e_version.c Stop using __DATE__/__TIME__ on all builds 2019-08-27 19:47:33 -07:00
ih264e_version.h fix file permissions 2015-05-05 17:51:34 +00:00
ime.c Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
ime.h avcenc: Move SKIP_BIAS macro definition to enc from me 2018-01-19 01:30:00 +00:00
ime_defs.h Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
ime_distortion_metrics.c Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
ime_distortion_metrics.h Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
ime_macros.h fix file permissions 2015-05-05 17:51:34 +00:00
ime_statistics.h fix file permissions 2015-05-05 17:51:34 +00:00
ime_structs.h Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
ime_typedefs.h fix file permissions 2015-05-05 17:51:34 +00:00
irc_bit_allocation.c Don't use static structs for rc init 2015-06-25 08:25:57 -07:00
irc_bit_allocation.h fix file permissions 2015-05-05 17:51:34 +00:00
irc_cbr_buffer_control.c Don't use static structs for rc init 2015-06-25 08:25:57 -07:00
irc_cbr_buffer_control.h fix file permissions 2015-05-05 17:51:34 +00:00
irc_cntrl_param.h fix file permissions 2015-05-05 17:51:34 +00:00
irc_common.h Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
irc_datatypes.h fix file permissions 2015-05-05 17:51:34 +00:00
irc_est_sad.c Don't use static structs for rc init 2015-06-25 08:25:57 -07:00
irc_est_sad.h fix file permissions 2015-05-05 17:51:34 +00:00
irc_fixed_point_error_bits.c Don't use static structs for rc init 2015-06-25 08:25:57 -07:00
irc_fixed_point_error_bits.h fix file permissions 2015-05-05 17:51:34 +00:00
irc_frame_info_collector.c fix file permissions 2015-05-05 17:51:34 +00:00
irc_frame_info_collector.h fix file permissions 2015-05-05 17:51:34 +00:00
irc_mb_model_based.c Don't use static structs for rc init 2015-06-25 08:25:57 -07:00
irc_mb_model_based.h fix file permissions 2015-05-05 17:51:34 +00:00
irc_mem_req_and_acq.h fix file permissions 2015-05-05 17:51:34 +00:00
irc_picture_type.c Don't use static structs for rc init 2015-06-25 08:25:57 -07:00
irc_picture_type.h Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
irc_rate_control_api.c Encoder: Update scene cut detection logic 2017-05-01 10:42:57 -07:00
irc_rate_control_api.h Added support for Main Profile toolsets in encoder. 2015-06-25 08:25:43 -07:00
irc_rate_control_api_structs.h Encoder: SVC encoding support added 2023-01-30 11:07:10 -08:00
irc_rd_model.c Don't declare variables after statements 2015-06-25 13:29:52 +03:00
irc_rd_model.h fix file permissions 2015-05-05 17:51:34 +00:00
irc_rd_model_struct.h fix file permissions 2015-05-05 17:51:34 +00:00
irc_trace_support.h fix file permissions 2015-05-05 17:51:34 +00:00
irc_vbr_storage_vbv.c Don't use static structs for rc init 2015-06-25 08:25:57 -07:00
irc_vbr_storage_vbv.h fix file permissions 2015-05-05 17:51:34 +00:00
irc_vbr_str_prms.c fix file permissions 2015-05-05 17:51:34 +00:00
irc_vbr_str_prms.h fix file permissions 2015-05-05 17:51:34 +00:00
iv2.h fix file permissions 2015-05-05 17:51:34 +00:00
ive2.h libavc: Added support for SII SEI message 2023-02-14 22:00:13 -08:00
libavcenc.cmake Encoder: add support for PSNR export 2022-08-17 17:22:00 +00:00
psnr.c Encoder: add support for PSNR export 2022-08-17 17:22:00 +00:00
psnr.h Encoder: add support for PSNR export 2022-08-17 17:22:00 +00:00