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