1+ # OpenH264
2+
3+ set (OPENH264_DIR "${THIRDPARTY_DIR} /openh264" )
4+
5+ add_library (openh264 STATIC
6+ "${OPENH264_DIR} /codec/encoder/core/src/au_set.cpp"
7+ "${OPENH264_DIR} /codec/encoder/core/src/deblocking.cpp"
8+ "${OPENH264_DIR} /codec/encoder/core/src/decode_mb_aux.cpp"
9+ "${OPENH264_DIR} /codec/encoder/core/src/encode_mb_aux.cpp"
10+ "${OPENH264_DIR} /codec/encoder/core/src/encoder_data_tables.cpp"
11+ "${OPENH264_DIR} /codec/encoder/core/src/encoder_ext.cpp"
12+ "${OPENH264_DIR} /codec/encoder/core/src/encoder.cpp"
13+ "${OPENH264_DIR} /codec/encoder/core/src/get_intra_predictor.cpp"
14+ "${OPENH264_DIR} /codec/encoder/core/src/md.cpp"
15+ "${OPENH264_DIR} /codec/encoder/core/src/mv_pred.cpp"
16+ "${OPENH264_DIR} /codec/encoder/core/src/nal_encap.cpp"
17+ "${OPENH264_DIR} /codec/encoder/core/src/paraset_strategy.cpp"
18+ "${OPENH264_DIR} /codec/encoder/core/src/picture_handle.cpp"
19+ "${OPENH264_DIR} /codec/encoder/core/src/ratectl.cpp"
20+ "${OPENH264_DIR} /codec/encoder/core/src/ref_list_mgr_svc.cpp"
21+ "${OPENH264_DIR} /codec/encoder/core/src/sample.cpp"
22+ "${OPENH264_DIR} /codec/encoder/core/src/set_mb_syn_cabac.cpp"
23+ "${OPENH264_DIR} /codec/encoder/core/src/set_mb_syn_cavlc.cpp"
24+ "${OPENH264_DIR} /codec/encoder/core/src/slice_multi_threading.cpp"
25+ "${OPENH264_DIR} /codec/encoder/core/src/svc_base_layer_md.cpp"
26+ "${OPENH264_DIR} /codec/encoder/core/src/svc_enc_slice_segment.cpp"
27+ "${OPENH264_DIR} /codec/encoder/core/src/svc_encode_mb.cpp"
28+ "${OPENH264_DIR} /codec/encoder/core/src/svc_encode_slice.cpp"
29+ "${OPENH264_DIR} /codec/encoder/core/src/svc_mode_decision.cpp"
30+ "${OPENH264_DIR} /codec/encoder/core/src/svc_motion_estimate.cpp"
31+ "${OPENH264_DIR} /codec/encoder/core/src/svc_set_mb_syn_cabac.cpp"
32+ "${OPENH264_DIR} /codec/encoder/core/src/svc_set_mb_syn_cavlc.cpp"
33+ "${OPENH264_DIR} /codec/encoder/core/src/wels_preprocess.cpp"
34+ "${OPENH264_DIR} /codec/encoder/core/src/wels_task_base.cpp"
35+ "${OPENH264_DIR} /codec/encoder/core/src/wels_task_encoder.cpp"
36+ "${OPENH264_DIR} /codec/encoder/core/src/wels_task_management.cpp"
37+ "${OPENH264_DIR} /codec/encoder/plus/src/welsEncoderExt.cpp"
38+ "${OPENH264_DIR} /codec/common/src/welsCodecTrace.cpp"
39+ "${OPENH264_DIR} /codec/common/src/common_tables.cpp"
40+ "${OPENH264_DIR} /codec/common/src/copy_mb.cpp"
41+ "${OPENH264_DIR} /codec/common/src/cpu.cpp"
42+ "${OPENH264_DIR} /codec/common/src/crt_util_safe_x.cpp"
43+ "${OPENH264_DIR} /codec/common/src/deblocking_common.cpp"
44+ "${OPENH264_DIR} /codec/common/src/expand_pic.cpp"
45+ "${OPENH264_DIR} /codec/common/src/intra_pred_common.cpp"
46+ "${OPENH264_DIR} /codec/common/src/mc.cpp"
47+ "${OPENH264_DIR} /codec/common/src/memory_align.cpp"
48+ "${OPENH264_DIR} /codec/common/src/sad_common.cpp"
49+ "${OPENH264_DIR} /codec/common/src/WelsTaskThread.cpp"
50+ "${OPENH264_DIR} /codec/common/src/WelsThread.cpp"
51+ "${OPENH264_DIR} /codec/common/src/WelsThreadLib.cpp"
52+ "${OPENH264_DIR} /codec/common/src/WelsThreadPool.cpp"
53+ "${OPENH264_DIR} /codec/common/src/utils.cpp"
54+ "${OPENH264_DIR} /codec/processing/src/adaptivequantization/AdaptiveQuantization.cpp"
55+ "${OPENH264_DIR} /codec/processing/src/backgrounddetection/BackgroundDetection.cpp"
56+ "${OPENH264_DIR} /codec/processing/src/common/memory.cpp"
57+ "${OPENH264_DIR} /codec/processing/src/common/WelsFrameWork.cpp"
58+ "${OPENH264_DIR} /codec/processing/src/common/WelsFrameWorkEx.cpp"
59+ "${OPENH264_DIR} /codec/processing/src/complexityanalysis/ComplexityAnalysis.cpp"
60+ "${OPENH264_DIR} /codec/processing/src/denoise/denoise.cpp"
61+ "${OPENH264_DIR} /codec/processing/src/denoise/denoise_filter.cpp"
62+ "${OPENH264_DIR} /codec/processing/src/downsample/downsample.cpp"
63+ "${OPENH264_DIR} /codec/processing/src/downsample/downsamplefuncs.cpp"
64+ "${OPENH264_DIR} /codec/processing/src/imagerotate/imagerotate.cpp"
65+ "${OPENH264_DIR} /codec/processing/src/imagerotate/imagerotatefuncs.cpp"
66+ "${OPENH264_DIR} /codec/processing/src/scenechangedetection/SceneChangeDetection.cpp"
67+ "${OPENH264_DIR} /codec/processing/src/scrolldetection/ScrollDetection.cpp"
68+ "${OPENH264_DIR} /codec/processing/src/scrolldetection/ScrollDetectionFuncs.cpp"
69+ "${OPENH264_DIR} /codec/processing/src/vaacalc/vaacalcfuncs.cpp"
70+ "${OPENH264_DIR} /codec/processing/src/vaacalc/vaacalculation.cpp"
71+ )
72+ target_compile_options (openh264 PUBLIC
73+ -Wall -finline-functions -fno-strict-aliasing -O3 -frtti -Wno-unknown-pragmas -funroll-loops -fexceptions -fno-math-errno
74+ )
75+ set_target_properties (openh264 PROPERTIES
76+ ANDROID_ARM_MODE arm
77+ )
78+ target_compile_definitions (openh264 PRIVATE
79+ )
80+ target_compile_definitions (openh264 PUBLIC
81+ )
82+ target_include_directories (openh264 PUBLIC
83+ "${OPENH264_DIR} /codec/encoder/core/inc"
84+ "${OPENH264_DIR} /codec/encoder/plus/inc"
85+ "${OPENH264_DIR} /codec/decoder/plus/inc"
86+ "${OPENH264_DIR} /codec/common/inc"
87+ "${OPENH264_DIR} /codec/api/svc"
88+ "${OPENH264_DIR} /codec/processing/interface"
89+ "${OPENH264_DIR} /codec/processing/src/common"
90+ )
91+
92+ if (${ANDROID_ABI} STREQUAL "armeabi-v7a" )
93+ target_sources (openh264 PRIVATE
94+ "${OPENH264_DIR} /codec/encoder/core/arm/intra_pred_neon.S"
95+ "${OPENH264_DIR} /codec/encoder/core/arm/intra_pred_sad_3_opt_neon.S"
96+ "${OPENH264_DIR} /codec/encoder/core/arm/memory_neon.S"
97+ "${OPENH264_DIR} /codec/encoder/core/arm/pixel_neon.S"
98+ "${OPENH264_DIR} /codec/encoder/core/arm/reconstruct_neon.S"
99+ "${OPENH264_DIR} /codec/encoder/core/arm/svc_motion_estimation.S"
100+ "${OPENH264_DIR} /codec/common/arm/copy_mb_neon.S"
101+ "${OPENH264_DIR} /codec/common/arm/deblocking_neon.S"
102+ "${OPENH264_DIR} /codec/common/arm/expand_picture_neon.S"
103+ "${OPENH264_DIR} /codec/common/arm/intra_pred_common_neon.S"
104+ "${OPENH264_DIR} /codec/common/arm/mc_neon.S"
105+ "${OPENH264_DIR} /codec/processing/src/arm/adaptive_quantization.S"
106+ "${OPENH264_DIR} /codec/processing/src/arm/down_sample_neon.S"
107+ "${OPENH264_DIR} /codec/processing/src/arm/pixel_sad_neon.S"
108+ "${OPENH264_DIR} /codec/processing/src/arm/vaa_calc_neon.S"
109+ )
110+ target_include_directories (openh264 PUBLIC
111+ "${OPENH264_DIR} /codec/common/arm"
112+ )
113+ target_compile_definitions (openh264 PUBLIC
114+ HAVE_NEON=1
115+ )
116+ elseif (${ANDROID_ABI} STREQUAL "arm64-v8a" )
117+ target_sources (openh264 PRIVATE
118+ "${OPENH264_DIR} /codec/encoder/core/arm64/intra_pred_aarch64_neon.S"
119+ "${OPENH264_DIR} /codec/encoder/core/arm64/intra_pred_sad_3_opt_aarch64_neon.S"
120+ "${OPENH264_DIR} /codec/encoder/core/arm64/memory_aarch64_neon.S"
121+ "${OPENH264_DIR} /codec/encoder/core/arm64/pixel_aarch64_neon.S"
122+ "${OPENH264_DIR} /codec/encoder/core/arm64/reconstruct_aarch64_neon.S"
123+ "${OPENH264_DIR} /codec/encoder/core/arm64/svc_motion_estimation_aarch64_neon.S"
124+ "${OPENH264_DIR} /codec/common/arm64/copy_mb_aarch64_neon.S"
125+ "${OPENH264_DIR} /codec/common/arm64/deblocking_aarch64_neon.S"
126+ "${OPENH264_DIR} /codec/common/arm64/expand_picture_aarch64_neon.S"
127+ "${OPENH264_DIR} /codec/common/arm64/intra_pred_common_aarch64_neon.S"
128+ "${OPENH264_DIR} /codec/common/arm64/mc_aarch64_neon.S"
129+ "${OPENH264_DIR} /codec/processing/src/arm64/adaptive_quantization_aarch64_neon.S"
130+ "${OPENH264_DIR} /codec/processing/src/arm64/down_sample_aarch64_neon.S"
131+ "${OPENH264_DIR} /codec/processing/src/arm64/pixel_sad_aarch64_neon.S"
132+ "${OPENH264_DIR} /codec/processing/src/arm64/vaa_calc_aarch64_neon.S"
133+ )
134+ target_include_directories (openh264 PUBLIC
135+ "${OPENH264_DIR} /codec/common/arm64"
136+ )
137+ target_compile_definitions (openh264 PUBLIC
138+ HAVE_NEON_AARCH64=1
139+ )
140+ endif ()
0 commit comments