diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-10-24 01:11:02 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-10-24 01:11:02 +0000 |
commit | d146067979b0b4089d69bf133dddec0ee2c660b4 (patch) | |
tree | 0a88ac7c7c306b03a4d91932c5a6fc756bfdc5f2 | |
parent | f2cf3b4286ddd233527881e697d1ada563174f83 (diff) | |
parent | 61254bff3ebee3cfe99a863eca88058a122f9b75 (diff) | |
download | libhevc-android14-qpr2-release.tar.gz |
Snap for 10992821 from 61254bff3ebee3cfe99a863eca88058a122f9b75 to 24Q1-releaseandroid-14.0.0_r37android-14.0.0_r36android-14.0.0_r35android-14.0.0_r34android-14.0.0_r33android-14.0.0_r32android-14.0.0_r31android-14.0.0_r30android-14.0.0_r29android14-qpr2-s5-releaseandroid14-qpr2-s4-releaseandroid14-qpr2-s3-releaseandroid14-qpr2-s2-releaseandroid14-qpr2-s1-releaseandroid14-qpr2-release
Change-Id: I63f1c7c0ac8782506a65e12fe08906de5c150c53
-rw-r--r-- | Android.bp | 433 | ||||
-rw-r--r-- | METADATA | 6 | ||||
-rw-r--r-- | decoder/ihevcd_api.c | 1 | ||||
-rw-r--r-- | encoder/hme_interface.h | 3 | ||||
-rw-r--r-- | encoder/hme_refine.c | 17 | ||||
-rw-r--r-- | encoder/ihevce_enc_loop_inter_mode_sifter.c | 23 | ||||
-rw-r--r-- | encoder/ihevce_rc_interface.c | 14 |
7 files changed, 268 insertions, 229 deletions
@@ -59,64 +59,64 @@ cc_library_static { ], srcs: [ - "common/ihevc_quant_tables.c", - "common/ihevc_inter_pred_filters.c", - "common/ihevc_weighted_pred.c", - "common/ihevc_padding.c", - "common/ihevc_deblk_edge_filter.c", - "common/ihevc_deblk_tables.c", + "common/ihevc_buf_mgr.c", "common/ihevc_cabac_tables.c", - "common/ihevc_common_tables.c", - "common/ihevc_intra_pred_filters.c", "common/ihevc_chroma_intra_pred_filters.c", - "common/ihevc_mem_fns.c", - "common/ihevc_sao.c", - "common/ihevc_trans_tables.c", - "common/ihevc_recon.c", - "common/ihevc_itrans.c", - "common/ihevc_itrans_recon.c", - "common/ihevc_iquant_recon.c", - "common/ihevc_iquant_itrans_recon.c", - "common/ihevc_itrans_recon_32x32.c", - "common/ihevc_itrans_recon_16x16.c", - "common/ihevc_itrans_recon_8x8.c", - "common/ihevc_chroma_itrans_recon.c", - "common/ihevc_chroma_iquant_recon.c", "common/ihevc_chroma_iquant_itrans_recon.c", - "common/ihevc_chroma_recon.c", + "common/ihevc_chroma_iquant_recon.c", + "common/ihevc_chroma_itrans_recon.c", "common/ihevc_chroma_itrans_recon_16x16.c", "common/ihevc_chroma_itrans_recon_8x8.c", - "common/ihevc_buf_mgr.c", + "common/ihevc_chroma_recon.c", + "common/ihevc_common_tables.c", + "common/ihevc_deblk_edge_filter.c", + "common/ihevc_deblk_tables.c", "common/ihevc_disp_mgr.c", "common/ihevc_dpb_mgr.c", + "common/ihevc_inter_pred_filters.c", + "common/ihevc_intra_pred_filters.c", + "common/ihevc_iquant_itrans_recon.c", + "common/ihevc_iquant_recon.c", + "common/ihevc_itrans.c", + "common/ihevc_itrans_recon.c", + "common/ihevc_itrans_recon_16x16.c", + "common/ihevc_itrans_recon_32x32.c", + "common/ihevc_itrans_recon_8x8.c", + "common/ihevc_mem_fns.c", + "common/ihevc_padding.c", + "common/ihevc_quant_tables.c", + "common/ihevc_recon.c", + "common/ihevc_sao.c", + "common/ihevc_trans_tables.c", + "common/ihevc_weighted_pred.c", "common/ithread.c", - "decoder/ihevcd_version.c", "decoder/ihevcd_api.c", + "decoder/ihevcd_bitstream.c", + "decoder/ihevcd_boundary_strength.c", + "decoder/ihevcd_cabac.c", + "decoder/ihevcd_common_tables.c", + "decoder/ihevcd_deblk.c", "decoder/ihevcd_decode.c", + "decoder/ihevcd_fmt_conv.c", + "decoder/ihevcd_get_mv.c", + "decoder/ihevcd_ilf_padding.c", + "decoder/ihevcd_inter_pred.c", + "decoder/ihevcd_intra_pred_mode_prediction.c", + "decoder/ihevcd_iquant_itrans_recon_ctb.c", + "decoder/ihevcd_itrans_recon_dc.c", + "decoder/ihevcd_job_queue.c", + "decoder/ihevcd_mv_merge.c", + "decoder/ihevcd_mv_pred.c", "decoder/ihevcd_nal.c", - "decoder/ihevcd_bitstream.c", "decoder/ihevcd_parse_headers.c", - "decoder/ihevcd_parse_slice_header.c", - "decoder/ihevcd_parse_slice.c", "decoder/ihevcd_parse_residual.c", - "decoder/ihevcd_cabac.c", - "decoder/ihevcd_intra_pred_mode_prediction.c", + "decoder/ihevcd_parse_slice.c", + "decoder/ihevcd_parse_slice_header.c", "decoder/ihevcd_process_slice.c", - "decoder/ihevcd_utils.c", - "decoder/ihevcd_job_queue.c", "decoder/ihevcd_ref_list.c", - "decoder/ihevcd_get_mv.c", - "decoder/ihevcd_mv_pred.c", - "decoder/ihevcd_mv_merge.c", - "decoder/ihevcd_iquant_itrans_recon_ctb.c", - "decoder/ihevcd_itrans_recon_dc.c", - "decoder/ihevcd_common_tables.c", - "decoder/ihevcd_boundary_strength.c", - "decoder/ihevcd_deblk.c", - "decoder/ihevcd_inter_pred.c", "decoder/ihevcd_sao.c", - "decoder/ihevcd_ilf_padding.c", - "decoder/ihevcd_fmt_conv.c", + "decoder/ihevcd_utils.c", + "decoder/ihevcd_version.c", ], arch: { @@ -130,90 +130,90 @@ cc_library_static { "-DDEFAULT_ARCH=D_ARCH_ARMV8_GENERIC", ], local_include_dirs: [ - "decoder/arm", "common/arm", - "decoder/arm64", "common/arm64", + "decoder/arm", + "decoder/arm64", ], srcs: [ - "decoder/arm/ihevcd_function_selector.c", - "decoder/arm/ihevcd_function_selector_noneon.c", - "decoder/arm64/ihevcd_function_selector_av8.c", "common/arm/ihevc_intra_pred_filters_neon_intr.c", "common/arm/ihevc_weighted_pred_neon_intr.c", - "common/arm64/ihevc_mem_fns.s", - "common/arm64/ihevc_itrans_recon_32x32.s", - "common/arm64/ihevc_weighted_pred_bi_default.s", - "common/arm64/ihevc_weighted_pred_bi.s", - "common/arm64/ihevc_weighted_pred_uni.s", + "common/arm64/ihevc_deblk_chroma_horz.s", + "common/arm64/ihevc_deblk_chroma_vert.s", "common/arm64/ihevc_deblk_luma_horz.s", "common/arm64/ihevc_deblk_luma_vert.s", - "common/arm64/ihevc_deblk_chroma_vert.s", - "common/arm64/ihevc_deblk_chroma_horz.s", - "common/arm64/ihevc_sao_band_offset_luma.s", - "common/arm64/ihevc_sao_band_offset_chroma.s", - "common/arm64/ihevc_sao_edge_offset_class0.s", - "common/arm64/ihevc_sao_edge_offset_class0_chroma.s", - "common/arm64/ihevc_sao_edge_offset_class1.s", - "common/arm64/ihevc_sao_edge_offset_class1_chroma.s", - "common/arm64/ihevc_sao_edge_offset_class2.s", - "common/arm64/ihevc_sao_edge_offset_class2_chroma.s", - "common/arm64/ihevc_sao_edge_offset_class3.s", - "common/arm64/ihevc_sao_edge_offset_class3_chroma.s", - "common/arm64/ihevc_inter_pred_luma_horz_w16out.s", - "common/arm64/ihevc_inter_pred_filters_luma_horz.s", - "common/arm64/ihevc_inter_pred_filters_luma_vert.s", + "common/arm64/ihevc_inter_pred_chroma_copy.s", + "common/arm64/ihevc_inter_pred_chroma_copy_w16out.s", "common/arm64/ihevc_inter_pred_chroma_horz.s", "common/arm64/ihevc_inter_pred_chroma_horz_w16out.s", "common/arm64/ihevc_inter_pred_chroma_vert.s", - "common/arm64/ihevc_inter_pred_chroma_vert_w16out.s", "common/arm64/ihevc_inter_pred_chroma_vert_w16inp.s", "common/arm64/ihevc_inter_pred_chroma_vert_w16inp_w16out.s", + "common/arm64/ihevc_inter_pred_chroma_vert_w16out.s", + "common/arm64/ihevc_inter_pred_filters_luma_horz.s", + "common/arm64/ihevc_inter_pred_filters_luma_vert.s", "common/arm64/ihevc_inter_pred_filters_luma_vert_w16inp.s", "common/arm64/ihevc_inter_pred_filters_luma_vert_w16out.s", - "common/arm64/ihevc_inter_pred_luma_vert_w16inp_w16out.s", - "common/arm64/ihevc_inter_pred_luma_copy_w16out.s", "common/arm64/ihevc_inter_pred_luma_copy.s", - "common/arm64/ihevc_inter_pred_chroma_copy.s", - "common/arm64/ihevc_inter_pred_chroma_copy_w16out.s", - "common/arm64/ihevc_itrans_recon_4x4_ttype1.s", - "common/arm64/ihevc_itrans_recon_4x4.s", - "common/arm64/ihevc_itrans_recon_8x8.s", - "common/arm64/ihevc_itrans_recon_16x16.s", - "common/arm64/ihevc_intra_pred_chroma_planar.s", + "common/arm64/ihevc_inter_pred_luma_copy_w16out.s", + "common/arm64/ihevc_inter_pred_luma_horz_w16out.s", + "common/arm64/ihevc_inter_pred_luma_vert_w16inp_w16out.s", "common/arm64/ihevc_intra_pred_chroma_dc.s", "common/arm64/ihevc_intra_pred_chroma_horz.s", - "common/arm64/ihevc_intra_pred_chroma_ver.s", "common/arm64/ihevc_intra_pred_chroma_mode2.s", "common/arm64/ihevc_intra_pred_chroma_mode_18_34.s", + "common/arm64/ihevc_intra_pred_chroma_mode_27_to_33.s", + "common/arm64/ihevc_intra_pred_chroma_mode_3_to_9.s", + "common/arm64/ihevc_intra_pred_chroma_planar.s", + "common/arm64/ihevc_intra_pred_chroma_ver.s", "common/arm64/ihevc_intra_pred_filters_chroma_mode_11_to_17.s", "common/arm64/ihevc_intra_pred_filters_chroma_mode_19_to_25.s", - "common/arm64/ihevc_intra_pred_chroma_mode_3_to_9.s", - "common/arm64/ihevc_intra_pred_chroma_mode_27_to_33.s", - "common/arm64/ihevc_intra_pred_luma_planar.s", + "common/arm64/ihevc_intra_pred_filters_luma_mode_11_to_17.s", + "common/arm64/ihevc_intra_pred_filters_luma_mode_19_to_25.s", + "common/arm64/ihevc_intra_pred_luma_dc.s", "common/arm64/ihevc_intra_pred_luma_horz.s", "common/arm64/ihevc_intra_pred_luma_mode2.s", - "common/arm64/ihevc_intra_pred_luma_mode_27_to_33.s", "common/arm64/ihevc_intra_pred_luma_mode_18_34.s", - "common/arm64/ihevc_intra_pred_luma_vert.s", - "common/arm64/ihevc_intra_pred_luma_dc.s", - "common/arm64/ihevc_intra_pred_filters_luma_mode_11_to_17.s", - "common/arm64/ihevc_intra_pred_filters_luma_mode_19_to_25.s", + "common/arm64/ihevc_intra_pred_luma_mode_27_to_33.s", "common/arm64/ihevc_intra_pred_luma_mode_3_to_9.s", + "common/arm64/ihevc_intra_pred_luma_planar.s", + "common/arm64/ihevc_intra_pred_luma_vert.s", + "common/arm64/ihevc_itrans_recon_16x16.s", + "common/arm64/ihevc_itrans_recon_32x32.s", + "common/arm64/ihevc_itrans_recon_4x4.s", + "common/arm64/ihevc_itrans_recon_4x4_ttype1.s", + "common/arm64/ihevc_itrans_recon_8x8.s", + "common/arm64/ihevc_mem_fns.s", "common/arm64/ihevc_padding.s", - "decoder/arm64/ihevcd_itrans_recon_dc_luma.s", - "decoder/arm64/ihevcd_itrans_recon_dc_chroma.s", + "common/arm64/ihevc_sao_band_offset_chroma.s", + "common/arm64/ihevc_sao_band_offset_luma.s", + "common/arm64/ihevc_sao_edge_offset_class0.s", + "common/arm64/ihevc_sao_edge_offset_class0_chroma.s", + "common/arm64/ihevc_sao_edge_offset_class1.s", + "common/arm64/ihevc_sao_edge_offset_class1_chroma.s", + "common/arm64/ihevc_sao_edge_offset_class2.s", + "common/arm64/ihevc_sao_edge_offset_class2_chroma.s", + "common/arm64/ihevc_sao_edge_offset_class3.s", + "common/arm64/ihevc_sao_edge_offset_class3_chroma.s", + "common/arm64/ihevc_weighted_pred_bi.s", + "common/arm64/ihevc_weighted_pred_bi_default.s", + "common/arm64/ihevc_weighted_pred_uni.s", + "decoder/arm/ihevcd_function_selector.c", + "decoder/arm/ihevcd_function_selector_noneon.c", "decoder/arm64/ihevcd_fmt_conv_420sp_to_420p.s", "decoder/arm64/ihevcd_fmt_conv_420sp_to_420sp.s", "decoder/arm64/ihevcd_fmt_conv_420sp_to_rgba8888.s", + "decoder/arm64/ihevcd_function_selector_av8.c", + "decoder/arm64/ihevcd_itrans_recon_dc_chroma.s", + "decoder/arm64/ihevcd_itrans_recon_dc_luma.s", ], }, arm: { local_include_dirs: [ - "decoder/arm", "common/arm", + "decoder/arm", ], srcs: [ @@ -236,74 +236,74 @@ cc_library_static { neon: { srcs: [ - "decoder/arm/ihevcd_function_selector_a9q.c", - "common/arm/ihevc_intra_ref_substitution_a9q.c", - "common/arm/ihevc_intra_pred_filters_neon_intr.c", - "common/arm/ihevc_weighted_pred_neon_intr.c", - "common/arm/ihevc_mem_fns.s", - "common/arm/ihevc_itrans_recon_32x32.s", - "common/arm/ihevc_weighted_pred_bi_default.s", - "common/arm/ihevc_weighted_pred_bi.s", - "common/arm/ihevc_weighted_pred_uni.s", + "common/arm/ihevc_deblk_chroma_horz.s", + "common/arm/ihevc_deblk_chroma_vert.s", "common/arm/ihevc_deblk_luma_horz.s", "common/arm/ihevc_deblk_luma_vert.s", - "common/arm/ihevc_deblk_chroma_vert.s", - "common/arm/ihevc_deblk_chroma_horz.s", - "common/arm/ihevc_sao_band_offset_luma.s", - "common/arm/ihevc_sao_band_offset_chroma.s", - "common/arm/ihevc_sao_edge_offset_class0.s", - "common/arm/ihevc_sao_edge_offset_class0_chroma.s", - "common/arm/ihevc_sao_edge_offset_class1.s", - "common/arm/ihevc_sao_edge_offset_class1_chroma.s", - "common/arm/ihevc_sao_edge_offset_class2.s", - "common/arm/ihevc_sao_edge_offset_class2_chroma.s", - "common/arm/ihevc_sao_edge_offset_class3.s", - "common/arm/ihevc_sao_edge_offset_class3_chroma.s", - "common/arm/ihevc_inter_pred_luma_horz_w16out.s", - "common/arm/ihevc_inter_pred_filters_luma_horz.s", - "common/arm/ihevc_inter_pred_filters_luma_vert.s", + "common/arm/ihevc_inter_pred_chroma_copy.s", + "common/arm/ihevc_inter_pred_chroma_copy_w16out.s", "common/arm/ihevc_inter_pred_chroma_horz.s", "common/arm/ihevc_inter_pred_chroma_horz_w16out.s", "common/arm/ihevc_inter_pred_chroma_vert.s", - "common/arm/ihevc_inter_pred_chroma_vert_w16out.s", "common/arm/ihevc_inter_pred_chroma_vert_w16inp.s", "common/arm/ihevc_inter_pred_chroma_vert_w16inp_w16out.s", + "common/arm/ihevc_inter_pred_chroma_vert_w16out.s", + "common/arm/ihevc_inter_pred_filters_luma_horz.s", + "common/arm/ihevc_inter_pred_filters_luma_vert.s", "common/arm/ihevc_inter_pred_filters_luma_vert_w16inp.s", - "common/arm/ihevc_inter_pred_luma_vert_w16inp_w16out.s", - "common/arm/ihevc_inter_pred_luma_copy_w16out.s", "common/arm/ihevc_inter_pred_luma_copy.s", - "common/arm/ihevc_inter_pred_chroma_copy.s", - "common/arm/ihevc_inter_pred_chroma_copy_w16out.s", - "common/arm/ihevc_itrans_recon_4x4_ttype1.s", - "common/arm/ihevc_itrans_recon_4x4.s", - "common/arm/ihevc_itrans_recon_8x8.s", - "common/arm/ihevc_itrans_recon_16x16.s", - "common/arm/ihevc_intra_pred_chroma_planar.s", + "common/arm/ihevc_inter_pred_luma_copy_w16out.s", + "common/arm/ihevc_inter_pred_luma_horz_w16out.s", + "common/arm/ihevc_inter_pred_luma_vert_w16inp_w16out.s", "common/arm/ihevc_intra_pred_chroma_dc.s", "common/arm/ihevc_intra_pred_chroma_horz.s", - "common/arm/ihevc_intra_pred_chroma_ver.s", "common/arm/ihevc_intra_pred_chroma_mode2.s", "common/arm/ihevc_intra_pred_chroma_mode_18_34.s", + "common/arm/ihevc_intra_pred_chroma_mode_27_to_33.s", + "common/arm/ihevc_intra_pred_chroma_mode_3_to_9.s", + "common/arm/ihevc_intra_pred_chroma_planar.s", + "common/arm/ihevc_intra_pred_chroma_ver.s", "common/arm/ihevc_intra_pred_filters_chroma_mode_11_to_17.s", "common/arm/ihevc_intra_pred_filters_chroma_mode_19_to_25.s", - "common/arm/ihevc_intra_pred_chroma_mode_3_to_9.s", - "common/arm/ihevc_intra_pred_chroma_mode_27_to_33.s", - "common/arm/ihevc_intra_pred_luma_planar.s", + "common/arm/ihevc_intra_pred_filters_luma_mode_11_to_17.s", + "common/arm/ihevc_intra_pred_filters_luma_mode_19_to_25.s", + "common/arm/ihevc_intra_pred_filters_neon_intr.c", + "common/arm/ihevc_intra_pred_luma_dc.s", "common/arm/ihevc_intra_pred_luma_horz.s", "common/arm/ihevc_intra_pred_luma_mode2.s", - "common/arm/ihevc_intra_pred_luma_mode_27_to_33.s", "common/arm/ihevc_intra_pred_luma_mode_18_34.s", - "common/arm/ihevc_intra_pred_luma_vert.s", - "common/arm/ihevc_intra_pred_luma_dc.s", - "common/arm/ihevc_intra_pred_filters_luma_mode_11_to_17.s", - "common/arm/ihevc_intra_pred_filters_luma_mode_19_to_25.s", + "common/arm/ihevc_intra_pred_luma_mode_27_to_33.s", "common/arm/ihevc_intra_pred_luma_mode_3_to_9.s", + "common/arm/ihevc_intra_pred_luma_planar.s", + "common/arm/ihevc_intra_pred_luma_vert.s", + "common/arm/ihevc_intra_ref_substitution_a9q.c", + "common/arm/ihevc_itrans_recon_16x16.s", + "common/arm/ihevc_itrans_recon_32x32.s", + "common/arm/ihevc_itrans_recon_4x4.s", + "common/arm/ihevc_itrans_recon_4x4_ttype1.s", + "common/arm/ihevc_itrans_recon_8x8.s", + "common/arm/ihevc_mem_fns.s", "common/arm/ihevc_padding.s", - "decoder/arm/ihevcd_itrans_recon_dc_luma.s", - "decoder/arm/ihevcd_itrans_recon_dc_chroma.s", + "common/arm/ihevc_sao_band_offset_chroma.s", + "common/arm/ihevc_sao_band_offset_luma.s", + "common/arm/ihevc_sao_edge_offset_class0.s", + "common/arm/ihevc_sao_edge_offset_class0_chroma.s", + "common/arm/ihevc_sao_edge_offset_class1.s", + "common/arm/ihevc_sao_edge_offset_class1_chroma.s", + "common/arm/ihevc_sao_edge_offset_class2.s", + "common/arm/ihevc_sao_edge_offset_class2_chroma.s", + "common/arm/ihevc_sao_edge_offset_class3.s", + "common/arm/ihevc_sao_edge_offset_class3_chroma.s", + "common/arm/ihevc_weighted_pred_bi.s", + "common/arm/ihevc_weighted_pred_bi_default.s", + "common/arm/ihevc_weighted_pred_neon_intr.c", + "common/arm/ihevc_weighted_pred_uni.s", "decoder/arm/ihevcd_fmt_conv_420sp_to_420p.s", "decoder/arm/ihevcd_fmt_conv_420sp_to_420sp.s", "decoder/arm/ihevcd_fmt_conv_420sp_to_rgba8888.s", + "decoder/arm/ihevcd_function_selector_a9q.c", + "decoder/arm/ihevcd_itrans_recon_dc_chroma.s", + "decoder/arm/ihevcd_itrans_recon_dc_luma.s", ], cflags: [ "-UDISABLE_NEON", @@ -323,37 +323,37 @@ cc_library_static { ], local_include_dirs: [ - "decoder/x86", "common/x86", + "decoder/x86", ], srcs: [ - "decoder/x86/ihevcd_function_selector.c", - "decoder/x86/ihevcd_function_selector_generic.c", - "decoder/x86/ihevcd_function_selector_ssse3.c", - "decoder/x86/ihevcd_function_selector_sse42.c", + "common/x86/ihevc_16x16_itrans_recon_sse42_intr.c", + "common/x86/ihevc_32x32_itrans_recon_sse42_intr.c", + "common/x86/ihevc_chroma_intra_pred_filters_sse42_intr.c", + "common/x86/ihevc_chroma_intra_pred_filters_ssse3_intr.c", + "common/x86/ihevc_deblk_ssse3_intr.c", + "common/x86/ihevc_inter_pred_filters_sse42_intr.c", "common/x86/ihevc_inter_pred_filters_ssse3_intr.c", - "common/x86/ihevc_weighted_pred_ssse3_intr.c", + "common/x86/ihevc_intra_pred_filters_sse42_intr.c", "common/x86/ihevc_intra_pred_filters_ssse3_intr.c", - "common/x86/ihevc_chroma_intra_pred_filters_ssse3_intr.c", - "common/x86/ihevc_itrans_recon_ssse3_intr.c", "common/x86/ihevc_itrans_recon_16x16_ssse3_intr.c", "common/x86/ihevc_itrans_recon_32x32_ssse3_intr.c", - "common/x86/ihevc_sao_ssse3_intr.c", - "common/x86/ihevc_deblk_ssse3_intr.c", - "common/x86/ihevc_padding_ssse3_intr.c", + "common/x86/ihevc_itrans_recon_sse42_intr.c", + "common/x86/ihevc_itrans_recon_ssse3_intr.c", "common/x86/ihevc_mem_fns_ssse3_intr.c", - "decoder/x86/ihevcd_fmt_conv_ssse3_intr.c", - "decoder/x86/ihevcd_it_rec_dc_ssse3_intr.c", - "common/x86/ihevc_inter_pred_filters_sse42_intr.c", + "common/x86/ihevc_padding_ssse3_intr.c", + "common/x86/ihevc_sao_ssse3_intr.c", + "common/x86/ihevc_tables_x86_intr.c", "common/x86/ihevc_weighted_pred_sse42_intr.c", - "common/x86/ihevc_intra_pred_filters_sse42_intr.c", - "common/x86/ihevc_chroma_intra_pred_filters_sse42_intr.c", - "common/x86/ihevc_itrans_recon_sse42_intr.c", - "common/x86/ihevc_16x16_itrans_recon_sse42_intr.c", - "common/x86/ihevc_32x32_itrans_recon_sse42_intr.c", + "common/x86/ihevc_weighted_pred_ssse3_intr.c", + "decoder/x86/ihevcd_fmt_conv_ssse3_intr.c", + "decoder/x86/ihevcd_function_selector.c", + "decoder/x86/ihevcd_function_selector_generic.c", + "decoder/x86/ihevcd_function_selector_sse42.c", + "decoder/x86/ihevcd_function_selector_ssse3.c", "decoder/x86/ihevcd_it_rec_dc_sse42_intr.c", - "common/x86/ihevc_tables_x86_intr.c", + "decoder/x86/ihevcd_it_rec_dc_ssse3_intr.c", ], }, @@ -367,37 +367,37 @@ cc_library_static { ], local_include_dirs: [ - "decoder/x86", "common/x86", + "decoder/x86", ], srcs: [ - "decoder/x86/ihevcd_function_selector.c", - "decoder/x86/ihevcd_function_selector_generic.c", - "decoder/x86/ihevcd_function_selector_ssse3.c", - "decoder/x86/ihevcd_function_selector_sse42.c", + "common/x86/ihevc_16x16_itrans_recon_sse42_intr.c", + "common/x86/ihevc_32x32_itrans_recon_sse42_intr.c", + "common/x86/ihevc_chroma_intra_pred_filters_sse42_intr.c", + "common/x86/ihevc_chroma_intra_pred_filters_ssse3_intr.c", + "common/x86/ihevc_deblk_ssse3_intr.c", + "common/x86/ihevc_inter_pred_filters_sse42_intr.c", "common/x86/ihevc_inter_pred_filters_ssse3_intr.c", - "common/x86/ihevc_weighted_pred_ssse3_intr.c", + "common/x86/ihevc_intra_pred_filters_sse42_intr.c", "common/x86/ihevc_intra_pred_filters_ssse3_intr.c", - "common/x86/ihevc_chroma_intra_pred_filters_ssse3_intr.c", - "common/x86/ihevc_itrans_recon_ssse3_intr.c", "common/x86/ihevc_itrans_recon_16x16_ssse3_intr.c", "common/x86/ihevc_itrans_recon_32x32_ssse3_intr.c", - "common/x86/ihevc_sao_ssse3_intr.c", - "common/x86/ihevc_deblk_ssse3_intr.c", - "common/x86/ihevc_padding_ssse3_intr.c", + "common/x86/ihevc_itrans_recon_sse42_intr.c", + "common/x86/ihevc_itrans_recon_ssse3_intr.c", "common/x86/ihevc_mem_fns_ssse3_intr.c", - "decoder/x86/ihevcd_fmt_conv_ssse3_intr.c", - "decoder/x86/ihevcd_it_rec_dc_ssse3_intr.c", - "common/x86/ihevc_inter_pred_filters_sse42_intr.c", + "common/x86/ihevc_padding_ssse3_intr.c", + "common/x86/ihevc_sao_ssse3_intr.c", + "common/x86/ihevc_tables_x86_intr.c", "common/x86/ihevc_weighted_pred_sse42_intr.c", - "common/x86/ihevc_intra_pred_filters_sse42_intr.c", - "common/x86/ihevc_chroma_intra_pred_filters_sse42_intr.c", - "common/x86/ihevc_itrans_recon_sse42_intr.c", - "common/x86/ihevc_16x16_itrans_recon_sse42_intr.c", - "common/x86/ihevc_32x32_itrans_recon_sse42_intr.c", + "common/x86/ihevc_weighted_pred_ssse3_intr.c", + "decoder/x86/ihevcd_fmt_conv_ssse3_intr.c", + "decoder/x86/ihevcd_function_selector.c", + "decoder/x86/ihevcd_function_selector_generic.c", + "decoder/x86/ihevcd_function_selector_sse42.c", + "decoder/x86/ihevcd_function_selector_ssse3.c", "decoder/x86/ihevcd_it_rec_dc_sse42_intr.c", - "common/x86/ihevc_tables_x86_intr.c", + "decoder/x86/ihevcd_it_rec_dc_ssse3_intr.c", ], }, riscv64: { @@ -417,7 +417,7 @@ cc_library_static { misc_undefined: ["bounds"], // Enable CFI if this becomes a shared library. cfi: true, - config: { + config: { cfi_assembly_support: true, }, blocklist: "libhevc_blocklist.txt", @@ -462,7 +462,6 @@ cc_library_static { "-Wall", "-Wno-unused-variable", "-Wno-unused-parameter", - "-Wno-switch", ], export_include_dirs: [ @@ -590,31 +589,18 @@ cc_library_static { arm64: { local_include_dirs: [ - "encoder/arm", "common/arm", "common/arm64", + "encoder/arm", ], srcs: [ - "encoder/arm/ihevce_coarse_layer_sad_neon.c", - "encoder/arm/ihevce_common_utils_neon.c", - "encoder/arm/ihevce_copy_neon.c", - "encoder/arm/ihevce_had_compute_neon.c", - "encoder/arm/ihevce_hme_utils_neon.c", - "encoder/arm/ihevce_itrans_recon_neon.c", - "encoder/arm/ihevce_me_neon.c", - "encoder/arm/ihevce_sad_compute_neon.c", - "encoder/arm/ihevce_scale_by_2_neon.c", - "encoder/arm/ihevce_scan_coeffs_neon.c", - "encoder/arm/ihevce_ssd_and_sad_calculator_neon.c", - "encoder/arm/ihevce_ssd_calculator_neon.c", - "encoder/arm/ihevce_subpel_neon.c", + "common/arm/ihevc_intra_pred_filters_neon_intr.c", + "common/arm/ihevc_intra_ref_substitution_a9q.c", + "common/arm/ihevc_quant_iquant_ssd_neon_intr.c", "common/arm/ihevc_resi_trans_neon.c", "common/arm/ihevc_resi_trans_neon_32x32.c", - "common/arm/ihevc_quant_iquant_ssd_neon_intr.c", - "common/arm/ihevc_intra_pred_filters_neon_intr.c", "common/arm/ihevc_weighted_pred_neon_intr.c", - "common/arm/ihevc_intra_ref_substitution_a9q.c", "common/arm64/ihevc_deblk_chroma_horz.s", "common/arm64/ihevc_deblk_chroma_vert.s", "common/arm64/ihevc_deblk_luma_horz.s", @@ -675,6 +661,19 @@ cc_library_static { "common/arm64/ihevc_weighted_pred_bi.s", "common/arm64/ihevc_weighted_pred_bi_default.s", "common/arm64/ihevc_weighted_pred_uni.s", + "encoder/arm/ihevce_coarse_layer_sad_neon.c", + "encoder/arm/ihevce_common_utils_neon.c", + "encoder/arm/ihevce_copy_neon.c", + "encoder/arm/ihevce_had_compute_neon.c", + "encoder/arm/ihevce_hme_utils_neon.c", + "encoder/arm/ihevce_itrans_recon_neon.c", + "encoder/arm/ihevce_me_neon.c", + "encoder/arm/ihevce_sad_compute_neon.c", + "encoder/arm/ihevce_scale_by_2_neon.c", + "encoder/arm/ihevce_scan_coeffs_neon.c", + "encoder/arm/ihevce_ssd_and_sad_calculator_neon.c", + "encoder/arm/ihevce_ssd_calculator_neon.c", + "encoder/arm/ihevce_subpel_neon.c", ], cflags: [ @@ -686,33 +685,14 @@ cc_library_static { arm: { local_include_dirs: [ - "encoder/arm", "common/arm", + "encoder/arm", ], instruction_set: "arm", neon: { srcs: [ - "encoder/arm/ihevce_coarse_layer_sad_neon.c", - "encoder/arm/ihevce_common_utils_neon.c", - "encoder/arm/ihevce_copy_neon.c", - "encoder/arm/ihevce_had_compute_neon.c", - "encoder/arm/ihevce_hme_utils_neon.c", - "encoder/arm/ihevce_itrans_recon_neon.c", - "encoder/arm/ihevce_me_neon.c", - "encoder/arm/ihevce_sad_compute_neon.c", - "encoder/arm/ihevce_scale_by_2_neon.c", - "encoder/arm/ihevce_scan_coeffs_neon.c", - "encoder/arm/ihevce_ssd_and_sad_calculator_neon.c", - "encoder/arm/ihevce_ssd_calculator_neon.c", - "encoder/arm/ihevce_subpel_neon.c", - "common/arm/ihevc_resi_trans_neon.c", - "common/arm/ihevc_resi_trans_neon_32x32.c", - "common/arm/ihevc_quant_iquant_ssd_neon_intr.c", - "common/arm/ihevc_intra_pred_filters_neon_intr.c", - "common/arm/ihevc_weighted_pred_neon_intr.c", - "common/arm/ihevc_intra_ref_substitution_a9q.c", "common/arm/ihevc_deblk_chroma_horz.s", "common/arm/ihevc_deblk_chroma_vert.s", "common/arm/ihevc_deblk_luma_horz.s", @@ -744,6 +724,7 @@ cc_library_static { "common/arm/ihevc_intra_pred_filters_chroma_mode_19_to_25.s", "common/arm/ihevc_intra_pred_filters_luma_mode_11_to_17.s", "common/arm/ihevc_intra_pred_filters_luma_mode_19_to_25.s", + "common/arm/ihevc_intra_pred_filters_neon_intr.c", "common/arm/ihevc_intra_pred_luma_dc.s", "common/arm/ihevc_intra_pred_luma_horz.s", "common/arm/ihevc_intra_pred_luma_mode2.s", @@ -752,15 +733,19 @@ cc_library_static { "common/arm/ihevc_intra_pred_luma_mode_3_to_9.s", "common/arm/ihevc_intra_pred_luma_planar.s", "common/arm/ihevc_intra_pred_luma_vert.s", + "common/arm/ihevc_intra_ref_substitution_a9q.c", "common/arm/ihevc_itrans_recon_16x16.s", "common/arm/ihevc_itrans_recon_32x32.s", "common/arm/ihevc_itrans_recon_4x4.s", "common/arm/ihevc_itrans_recon_4x4_ttype1.s", "common/arm/ihevc_itrans_recon_8x8.s", - "common/arm/ihevc_resi_trans.s", - "common/arm/ihevc_resi_trans_32x32_a9q.s", "common/arm/ihevc_mem_fns.s", "common/arm/ihevc_padding.s", + "common/arm/ihevc_quant_iquant_ssd_neon_intr.c", + "common/arm/ihevc_resi_trans.s", + "common/arm/ihevc_resi_trans_32x32_a9q.s", + "common/arm/ihevc_resi_trans_neon.c", + "common/arm/ihevc_resi_trans_neon_32x32.c", "common/arm/ihevc_sao_band_offset_chroma.s", "common/arm/ihevc_sao_band_offset_luma.s", "common/arm/ihevc_sao_edge_offset_class0.s", @@ -771,9 +756,23 @@ cc_library_static { "common/arm/ihevc_sao_edge_offset_class2_chroma.s", "common/arm/ihevc_sao_edge_offset_class3.s", "common/arm/ihevc_sao_edge_offset_class3_chroma.s", - "common/arm/ihevc_weighted_pred_bi_default.s", "common/arm/ihevc_weighted_pred_bi.s", + "common/arm/ihevc_weighted_pred_bi_default.s", + "common/arm/ihevc_weighted_pred_neon_intr.c", "common/arm/ihevc_weighted_pred_uni.s", + "encoder/arm/ihevce_coarse_layer_sad_neon.c", + "encoder/arm/ihevce_common_utils_neon.c", + "encoder/arm/ihevce_copy_neon.c", + "encoder/arm/ihevce_had_compute_neon.c", + "encoder/arm/ihevce_hme_utils_neon.c", + "encoder/arm/ihevce_itrans_recon_neon.c", + "encoder/arm/ihevce_me_neon.c", + "encoder/arm/ihevce_sad_compute_neon.c", + "encoder/arm/ihevce_scale_by_2_neon.c", + "encoder/arm/ihevce_scan_coeffs_neon.c", + "encoder/arm/ihevce_ssd_and_sad_calculator_neon.c", + "encoder/arm/ihevce_ssd_calculator_neon.c", + "encoder/arm/ihevce_subpel_neon.c", ], cflags: [ @@ -806,7 +805,7 @@ cc_library_static { misc_undefined: ["bounds"], // Enable CFI if this becomes a shared library. cfi: true, - config: { + config: { cfi_assembly_support: true, }, blocklist: "libhevc_blocklist.txt", @@ -9,11 +9,11 @@ third_party { type: GIT value: "https://github.com/ittiam-systems/libhevc.git" } - version: "v1.2.0" + version: "v1.3.0" license_type: NOTICE last_upgrade_date { year: 2023 - month: 8 - day: 8 + month: 10 + day: 23 } } diff --git a/decoder/ihevcd_api.c b/decoder/ihevcd_api.c index e37d44b..29c14ad 100644 --- a/decoder/ihevcd_api.c +++ b/decoder/ihevcd_api.c @@ -2467,6 +2467,7 @@ WORD32 ihevcd_set_flush_mode(iv_obj_t *ps_codec_obj, ivd_ctl_flush_op_t *ps_ctl_op = (ivd_ctl_flush_op_t *)pv_api_op; UNUSED(pv_api_ip); ps_codec = (codec_t *)(ps_codec_obj->pv_codec_handle); + ihevcd_join_threads(ps_codec); /* Signal flush frame control call */ ps_codec->i4_flush_mode = 1; diff --git a/encoder/hme_interface.h b/encoder/hme_interface.h index 33c98fa..1481d3c 100644 --- a/encoder/hme_interface.h +++ b/encoder/hme_interface.h @@ -158,8 +158,7 @@ typedef enum ME_MEDIUM_SPEED, ME_HIGH_SPEED, ME_XTREME_SPEED, - ME_XTREME_SPEED_25, - ME_USER_DEFINED + ME_XTREME_SPEED_25 } ME_QUALITY_PRESETS_T; /*****************************************************************************/ diff --git a/encoder/hme_refine.c b/encoder/hme_refine.c index 2932bd1..7a2e980 100644 --- a/encoder/hme_refine.c +++ b/encoder/hme_refine.c @@ -5129,7 +5129,7 @@ void hme_populate_cu_tree( #if ENABLE_CU_TREE_CULLING { - cur_ctb_cu_tree_t *ps_32x32_root; + cur_ctb_cu_tree_t *ps_32x32_root = NULL; switch(e_parent_blk_pos) { @@ -5157,6 +5157,11 @@ void hme_populate_cu_tree( break; } + default: + { + DBG_PRINTF("Invalid block position %d\n", e_parent_blk_pos); + break; + } } if(ps_32x32_root->is_node_valid) @@ -5249,6 +5254,11 @@ void hme_populate_cu_tree( break; } + default: + { + DBG_PRINTF("Invalid block position %d\n", e_grandparent_blk_pos); + break; + } } switch(e_parent_blk_pos) @@ -5277,6 +5287,11 @@ void hme_populate_cu_tree( break; } + default: + { + DBG_PRINTF("Invalid block position %d\n", e_parent_blk_pos); + break; + } } ps_32x32_blk = &ps_ctb_cluster_info->ps_32x32_blk[e_grandparent_blk_pos]; diff --git a/encoder/ihevce_enc_loop_inter_mode_sifter.c b/encoder/ihevce_enc_loop_inter_mode_sifter.c index 6a05cda..46fefcf 100644 --- a/encoder/ihevce_enc_loop_inter_mode_sifter.c +++ b/encoder/ihevce_enc_loop_inter_mode_sifter.c @@ -426,8 +426,8 @@ static WORD8 ihevce_merge_cand_pred_buffer_preparation( WORD32 i4_part_wd_pu2; WORD32 i4_part_ht_pu2; WORD32 i4_buf_offset; - UWORD8 *pu1_pred_src; - UWORD8 *pu1_pred_dst; + UWORD8 *pu1_pred_src = NULL; + UWORD8 *pu1_pred_dst = NULL; WORD8 i1_retval = pau1_final_pred_buf_id[MERGE_DERIVED][0]; WORD32 i4_stride = i4_pred_stride * u1_num_bytes_per_pel; @@ -557,6 +557,11 @@ static WORD8 ihevce_merge_cand_pred_buffer_preparation( break; } + default: + { + DBG_PRINTF("Invalid partition type %d\n", u1_part_type); + break; + } } pf_copy_2d( @@ -591,7 +596,7 @@ static WORD8 ihevce_mixed_mode_cand_type1_pred_buffer_preparation( WORD32 i4_part_ht; WORD32 i4_part_wd_pu2; WORD32 i4_part_ht_pu2; - UWORD8 *pu1_pred_src; + UWORD8 *pu1_pred_src = NULL; UWORD8 *pu1_pred_dst = NULL; WORD8 i1_retval = pau1_final_pred_buf_id[ME_OR_SKIP_DERIVED][0]; @@ -669,6 +674,11 @@ static WORD8 ihevce_mixed_mode_cand_type1_pred_buffer_preparation( break; } + default: + { + DBG_PRINTF("Invalid partition type %d\n", u1_part_type); + break; + } } ps_cand->pu1_pred_data = (UWORD8 *)ppv_pred_buf_list[i1_retval]; @@ -910,7 +920,7 @@ static WORD8 ihevce_mixed_mode_cand_type0_pred_buffer_preparation( WORD32 i4_part_wd_pu2; WORD32 i4_part_ht_pu2; WORD32 i4_buf_offset; - UWORD8 *pu1_pred_src; + UWORD8 *pu1_pred_src = NULL; UWORD8 *pu1_pred_dst = NULL; WORD8 i1_retval = pau1_final_pred_buf_id[ME_OR_SKIP_DERIVED][0]; @@ -981,6 +991,11 @@ static WORD8 ihevce_mixed_mode_cand_type0_pred_buffer_preparation( break; } + default: + { + DBG_PRINTF("Invalid partition type %d\n", u1_part_type); + break; + } } ps_cand->pu1_pred_data = (UWORD8 *)ppv_pred_buf_list[i1_retval]; diff --git a/encoder/ihevce_rc_interface.c b/encoder/ihevce_rc_interface.c index d17dffc..a0a7101 100644 --- a/encoder/ihevce_rc_interface.c +++ b/encoder/ihevce_rc_interface.c @@ -1785,7 +1785,7 @@ WORD32 ihevce_get_L0_est_satd_based_scd_qp( WORD32 ihevce_rc_pre_enc_qp_query( void *pv_rc_ctxt, rc_lap_out_params_t *ps_rc_lap_out, WORD32 i4_update_delay) { - WORD32 scene_type, i4_is_scd = 0, i4_frame_qp, slice_type; + WORD32 scene_type, i4_is_scd = 0, i4_frame_qp, slice_type = ISLICE; rc_context_t *ps_rc_ctxt = (rc_context_t *)pv_rc_ctxt; rc_type_e e_rc_type = ps_rc_ctxt->e_rate_control_type; IV_PICTURE_CODING_TYPE_T pic_type = (IV_PICTURE_CODING_TYPE_T)ps_rc_lap_out->i4_rc_pic_type; @@ -1855,6 +1855,11 @@ WORD32 ihevce_rc_pre_enc_qp_query( slice_type = BSLICE; break; } + default: + { + DBG_PRINTF("Invalid picture type %d\n", pic_type); + break; + } } i4_frame_qp = ihevce_get_cur_frame_qp( @@ -2086,7 +2091,7 @@ WORD32 ihevce_rc_get_pic_quant( WORD32 i4_frame_qp, i4_frame_qp_q6, i4_hevc_frame_qp = -1, i4_deltaQP = 0; WORD32 i4_max_frame_bits = (1 << 30); rc_type_e e_rc_type = ps_rc_ctxt->e_rate_control_type; - WORD32 slice_type, index, i4_num_frames_in_cur_gop, i4_cur_est_texture_bits; + WORD32 slice_type = ISLICE, index, i4_num_frames_in_cur_gop, i4_cur_est_texture_bits; WORD32 temporal_layer_id = ps_rc_lap_out->i4_rc_temporal_lyr_id; IV_PICTURE_CODING_TYPE_T pic_type = (IV_PICTURE_CODING_TYPE_T)ps_rc_lap_out->i4_rc_pic_type; picture_type_e rc_pic_type = ihevce_rc_conv_pic_type( @@ -2140,6 +2145,11 @@ WORD32 ihevce_rc_get_pic_quant( slice_type = BSLICE; break; } + default: + { + DBG_PRINTF("Invalid picture type %d\n", pic_type); + break; + } } i4_frame_qp = ihevce_get_cur_frame_qp( |