xref: /aosp_15_r20/external/libhevc/encoder/libhevcenc.cmake (revision c83a76b084498d55f252f48b2e3786804cdf24b7)
1# src files
2list(
3  APPEND
4  LIBHEVCENC_SRCS
5  "${HEVC_ROOT}/encoder/bit_allocation.c"
6  "${HEVC_ROOT}/encoder/cbr_buffer_control.c"
7  "${HEVC_ROOT}/encoder/common_rom.c"
8  "${HEVC_ROOT}/encoder/convert_float_to_fix.c"
9  "${HEVC_ROOT}/encoder/est_sad.c"
10  "${HEVC_ROOT}/encoder/fixed_point_error_bits.c"
11  "${HEVC_ROOT}/encoder/frame_info_collector.c"
12  "${HEVC_ROOT}/encoder/hme_coarse.c"
13  "${HEVC_ROOT}/encoder/hme_common_utils.c"
14  "${HEVC_ROOT}/encoder/hme_err_compute.c"
15  "${HEVC_ROOT}/encoder/hme_fullpel.c"
16  "${HEVC_ROOT}/encoder/hme_function_selector.c"
17  "${HEVC_ROOT}/encoder/hme_globals.c"
18  "${HEVC_ROOT}/encoder/hme_interface.c"
19  "${HEVC_ROOT}/encoder/hme_refine.c"
20  "${HEVC_ROOT}/encoder/hme_search_algo.c"
21  "${HEVC_ROOT}/encoder/hme_subpel.c"
22  "${HEVC_ROOT}/encoder/hme_utils.c"
23  "${HEVC_ROOT}/encoder/ihevce_bitstream.c"
24  "${HEVC_ROOT}/encoder/ihevce_bs_compute_ctb.c"
25  "${HEVC_ROOT}/encoder/ihevce_buffer_que.c"
26  "${HEVC_ROOT}/encoder/ihevce_cabac.c"
27  "${HEVC_ROOT}/encoder/ihevce_cabac_cu_pu.c"
28  "${HEVC_ROOT}/encoder/ihevce_cabac_rdo.c"
29  "${HEVC_ROOT}/encoder/ihevce_cabac_tu.c"
30  "${HEVC_ROOT}/encoder/ihevce_chroma_had_satd.c"
31  "${HEVC_ROOT}/encoder/ihevce_cmn_utils_instr_set_router.c"
32  "${HEVC_ROOT}/encoder/ihevce_coarse_me_pass.c"
33  "${HEVC_ROOT}/encoder/ihevce_common_utils.c"
34  "${HEVC_ROOT}/encoder/ihevce_deblk.c"
35  "${HEVC_ROOT}/encoder/ihevce_decomp_pre_intra_pass.c"
36  "${HEVC_ROOT}/encoder/ihevce_dep_mngr.c"
37  "${HEVC_ROOT}/encoder/ihevce_enc_cu_recursion.c"
38  "${HEVC_ROOT}/encoder/ihevce_enc_loop_inter_mode_sifter.c"
39  "${HEVC_ROOT}/encoder/ihevce_enc_loop_pass.c"
40  "${HEVC_ROOT}/encoder/ihevce_enc_loop_utils.c"
41  "${HEVC_ROOT}/encoder/ihevce_enc_sbh_funcs.c"
42  "${HEVC_ROOT}/encoder/ihevce_enc_subpel_gen.c"
43  "${HEVC_ROOT}/encoder/ihevce_encode_header.c"
44  "${HEVC_ROOT}/encoder/ihevce_encode_header_sei_vui.c"
45  "${HEVC_ROOT}/encoder/ihevce_entropy_cod.c"
46  "${HEVC_ROOT}/encoder/ihevce_entropy_interface.c"
47  "${HEVC_ROOT}/encoder/ihevce_error_check.c"
48  "${HEVC_ROOT}/encoder/ihevce_frame_process.c"
49  "${HEVC_ROOT}/encoder/ihevce_frame_process_utils.c"
50  "${HEVC_ROOT}/encoder/ihevce_function_selector.c"
51  "${HEVC_ROOT}/encoder/ihevce_global_tables.c"
52  "${HEVC_ROOT}/encoder/ihevce_had_satd.c"
53  "${HEVC_ROOT}/encoder/ihevce_hle_interface.c"
54  "${HEVC_ROOT}/encoder/ihevce_hle_q_func.c"
55  "${HEVC_ROOT}/encoder/ihevce_inter_pred.c"
56  "${HEVC_ROOT}/encoder/ihevce_ipe_instr_set_router.c"
57  "${HEVC_ROOT}/encoder/ihevce_ipe_pass.c"
58  "${HEVC_ROOT}/encoder/ihevce_lap_interface.c"
59  "${HEVC_ROOT}/encoder/ihevce_me_instr_set_router.c"
60  "${HEVC_ROOT}/encoder/ihevce_me_pass.c"
61  "${HEVC_ROOT}/encoder/ihevce_memory_init.c"
62  "${HEVC_ROOT}/encoder/ihevce_multi_thrd_funcs.c"
63  "${HEVC_ROOT}/encoder/ihevce_mv_pred.c"
64  "${HEVC_ROOT}/encoder/ihevce_mv_pred_merge.c"
65  "${HEVC_ROOT}/encoder/ihevce_nbr_avail.c"
66  "${HEVC_ROOT}/encoder/ihevce_plugin.c"
67  "${HEVC_ROOT}/encoder/ihevce_profile.c"
68  "${HEVC_ROOT}/encoder/ihevce_rc_interface.c"
69  "${HEVC_ROOT}/encoder/ihevce_recur_bracketing.c"
70  "${HEVC_ROOT}/encoder/ihevce_sao.c"
71  "${HEVC_ROOT}/encoder/ihevce_stasino_helpers.c"
72  "${HEVC_ROOT}/encoder/ihevce_sub_pic_rc.c"
73  "${HEVC_ROOT}/encoder/ihevce_sys_api.c"
74  "${HEVC_ROOT}/encoder/ihevce_tile_interface.c"
75  "${HEVC_ROOT}/encoder/ihevce_trace.c"
76  "${HEVC_ROOT}/encoder/ihevce_tu_tree_selector.c"
77  "${HEVC_ROOT}/encoder/init_qp.c"
78  "${HEVC_ROOT}/encoder/mb_model_based.c"
79  "${HEVC_ROOT}/encoder/osal.c"
80  "${HEVC_ROOT}/encoder/osal_cond_var.c"
81  "${HEVC_ROOT}/encoder/osal_error.c"
82  "${HEVC_ROOT}/encoder/osal_mutex.c"
83  "${HEVC_ROOT}/encoder/osal_semaphore.c"
84  "${HEVC_ROOT}/encoder/osal_thread.c"
85  "${HEVC_ROOT}/encoder/picture_type.c"
86  "${HEVC_ROOT}/encoder/rate_control_api.c"
87  "${HEVC_ROOT}/encoder/rc_rd_model.c"
88  "${HEVC_ROOT}/encoder/rc_rd_model_fix.c"
89  "${HEVC_ROOT}/encoder/rc_sad_acc.c"
90  "${HEVC_ROOT}/encoder/sqrt_interp.c"
91  "${HEVC_ROOT}/encoder/var_q_operator.c"
92  "${HEVC_ROOT}/encoder/vbr_storage_vbv.c"
93  "${HEVC_ROOT}/encoder/vbr_str_prms.c")
94
95include_directories(${HEVC_ROOT}/encoder)
96
97# arm/x86 sources
98if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64" OR "${CMAKE_SYSTEM_PROCESSOR}"
99                                                     STREQUAL "aarch32")
100  list(
101    APPEND
102    LIBHEVCENC_ASMS
103    "${HEVC_ROOT}/encoder/arm/ihevce_coarse_layer_sad_neon.c"
104    "${HEVC_ROOT}/encoder/arm/ihevce_coarse_layer_sad_neon.c"
105    "${HEVC_ROOT}/encoder/arm/ihevce_common_utils_neon.c"
106    "${HEVC_ROOT}/encoder/arm/ihevce_common_utils_neon.c"
107    "${HEVC_ROOT}/encoder/arm/ihevce_copy_neon.c"
108    "${HEVC_ROOT}/encoder/arm/ihevce_copy_neon.c"
109    "${HEVC_ROOT}/encoder/arm/ihevce_decomp_pre_intra_pass_neon.c"
110    "${HEVC_ROOT}/encoder/arm/ihevce_decomp_pre_intra_pass_neon.c"
111    "${HEVC_ROOT}/encoder/arm/ihevce_had_compute_neon.c"
112    "${HEVC_ROOT}/encoder/arm/ihevce_had_compute_neon.c"
113    "${HEVC_ROOT}/encoder/arm/ihevce_hme_utils_neon.c"
114    "${HEVC_ROOT}/encoder/arm/ihevce_hme_utils_neon.c"
115    "${HEVC_ROOT}/encoder/arm/ihevce_itrans_recon_neon.c"
116    "${HEVC_ROOT}/encoder/arm/ihevce_itrans_recon_neon.c"
117    "${HEVC_ROOT}/encoder/arm/ihevce_me_neon.c"
118    "${HEVC_ROOT}/encoder/arm/ihevce_me_neon.c"
119    "${HEVC_ROOT}/encoder/arm/ihevce_sad_compute_neon.c"
120    "${HEVC_ROOT}/encoder/arm/ihevce_sad_compute_neon.c"
121    "${HEVC_ROOT}/encoder/arm/ihevce_scale_by_2_neon.c"
122    "${HEVC_ROOT}/encoder/arm/ihevce_scale_by_2_neon.c"
123    "${HEVC_ROOT}/encoder/arm/ihevce_scan_coeffs_neon.c"
124    "${HEVC_ROOT}/encoder/arm/ihevce_scan_coeffs_neon.c"
125    "${HEVC_ROOT}/encoder/arm/ihevce_ssd_and_sad_calculator_neon.c"
126    "${HEVC_ROOT}/encoder/arm/ihevce_ssd_and_sad_calculator_neon.c"
127    "${HEVC_ROOT}/encoder/arm/ihevce_ssd_calculator_neon.c"
128    "${HEVC_ROOT}/encoder/arm/ihevce_ssd_calculator_neon.c"
129    "${HEVC_ROOT}/encoder/arm/ihevce_subpel_neon.c"
130    "${HEVC_ROOT}/encoder/arm/ihevce_subpel_neon.c"
131    "${HEVC_ROOT}/encoder/arm/ihevce_subpel_neon.c")
132
133  include_directories(${HEVC_ROOT}/encoder/arm ${HEVC_ROOT}/encoder)
134endif()
135
136add_library(libhevcenc STATIC ${LIBHEVC_COMMON_SRCS} ${LIBHEVC_COMMON_ASMS}
137                              ${LIBHEVCENC_ASMS} ${LIBHEVCENC_SRCS})
138
139target_compile_definitions(libhevcenc PRIVATE N_MB_ENABLE
140                                              ENABLE_MAIN_REXT_PROFILE)
141