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