2 # Copyright (c) 2017, Alliance for Open Media. All rights reserved
4 # This source code is subject to the terms of the BSD 2 Clause License and the
5 # Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License was
6 # not distributed with this source code in the LICENSE file, you can obtain it
7 # at www.aomedia.org/license/software. If the Alliance for Open Media Patent
8 # License 1.0 was not distributed with this source code in the PATENTS file, you
9 # can obtain it at www.aomedia.org/license/patent.
11 if(AOM_AV1_AV1_CMAKE_)
13 endif() # AOM_AV1_AV1_CMAKE_
14 set(AOM_AV1_AV1_CMAKE_ 1)
16 list(APPEND AOM_AV1_COMMON_SOURCES
17 "${AOM_ROOT}/common/args_helper.h"
18 "${AOM_ROOT}/common/args_helper.c"
19 "${AOM_ROOT}/av1/arg_defs.h"
20 "${AOM_ROOT}/av1/arg_defs.c"
21 "${AOM_ROOT}/av1/av1_iface_common.h"
22 "${AOM_ROOT}/av1/common/alloccommon.c"
23 "${AOM_ROOT}/av1/common/alloccommon.h"
24 "${AOM_ROOT}/av1/common/av1_common_int.h"
25 "${AOM_ROOT}/av1/common/av1_inv_txfm1d.c"
26 "${AOM_ROOT}/av1/common/av1_inv_txfm1d.h"
27 "${AOM_ROOT}/av1/common/av1_inv_txfm1d_cfg.h"
28 "${AOM_ROOT}/av1/common/av1_inv_txfm2d.c"
29 "${AOM_ROOT}/av1/common/av1_loopfilter.c"
30 "${AOM_ROOT}/av1/common/av1_loopfilter.h"
31 "${AOM_ROOT}/av1/common/av1_txfm.c"
32 "${AOM_ROOT}/av1/common/av1_txfm.h"
33 "${AOM_ROOT}/av1/common/blockd.c"
34 "${AOM_ROOT}/av1/common/blockd.h"
35 "${AOM_ROOT}/av1/common/cdef.c"
36 "${AOM_ROOT}/av1/common/cdef.h"
37 "${AOM_ROOT}/av1/common/cdef_block.c"
38 "${AOM_ROOT}/av1/common/cdef_block.h"
39 "${AOM_ROOT}/av1/common/cfl.c"
40 "${AOM_ROOT}/av1/common/cfl.h"
41 "${AOM_ROOT}/av1/common/common.h"
42 "${AOM_ROOT}/av1/common/common_data.h"
43 "${AOM_ROOT}/av1/common/convolve.c"
44 "${AOM_ROOT}/av1/common/convolve.h"
45 "${AOM_ROOT}/av1/common/debugmodes.c"
46 "${AOM_ROOT}/av1/common/entropy.c"
47 "${AOM_ROOT}/av1/common/entropy.h"
48 "${AOM_ROOT}/av1/common/entropymode.c"
49 "${AOM_ROOT}/av1/common/entropymode.h"
50 "${AOM_ROOT}/av1/common/entropymv.c"
51 "${AOM_ROOT}/av1/common/entropymv.h"
52 "${AOM_ROOT}/av1/common/enums.h"
53 "${AOM_ROOT}/av1/common/filter.h"
54 "${AOM_ROOT}/av1/common/frame_buffers.c"
55 "${AOM_ROOT}/av1/common/frame_buffers.h"
56 "${AOM_ROOT}/av1/common/idct.c"
57 "${AOM_ROOT}/av1/common/idct.h"
58 "${AOM_ROOT}/av1/common/mv.h"
59 "${AOM_ROOT}/av1/common/mvref_common.c"
60 "${AOM_ROOT}/av1/common/mvref_common.h"
61 "${AOM_ROOT}/av1/common/obu_util.c"
62 "${AOM_ROOT}/av1/common/obu_util.h"
63 "${AOM_ROOT}/av1/common/pred_common.c"
64 "${AOM_ROOT}/av1/common/pred_common.h"
65 "${AOM_ROOT}/av1/common/quant_common.c"
66 "${AOM_ROOT}/av1/common/quant_common.h"
67 "${AOM_ROOT}/av1/common/reconinter.c"
68 "${AOM_ROOT}/av1/common/reconinter.h"
69 "${AOM_ROOT}/av1/common/reconintra.c"
70 "${AOM_ROOT}/av1/common/reconintra.h"
71 "${AOM_ROOT}/av1/common/resize.c"
72 "${AOM_ROOT}/av1/common/resize.h"
73 "${AOM_ROOT}/av1/common/restoration.c"
74 "${AOM_ROOT}/av1/common/restoration.h"
75 "${AOM_ROOT}/av1/common/scale.c"
76 "${AOM_ROOT}/av1/common/scale.h"
77 "${AOM_ROOT}/av1/common/scan.c"
78 "${AOM_ROOT}/av1/common/scan.h"
79 "${AOM_ROOT}/av1/common/seg_common.c"
80 "${AOM_ROOT}/av1/common/seg_common.h"
81 "${AOM_ROOT}/av1/common/thread_common.c"
82 "${AOM_ROOT}/av1/common/thread_common.h"
83 "${AOM_ROOT}/av1/common/tile_common.c"
84 "${AOM_ROOT}/av1/common/tile_common.h"
85 "${AOM_ROOT}/av1/common/timing.c"
86 "${AOM_ROOT}/av1/common/timing.h"
87 "${AOM_ROOT}/av1/common/token_cdfs.h"
88 "${AOM_ROOT}/av1/common/txb_common.c"
89 "${AOM_ROOT}/av1/common/txb_common.h"
90 "${AOM_ROOT}/av1/common/warped_motion.c"
91 "${AOM_ROOT}/av1/common/warped_motion.h")
93 if(CONFIG_REALTIME_ONLY)
94 list(REMOVE_ITEM AOM_AV1_COMMON_SOURCES "${AOM_ROOT}/av1/common/restoration.c"
95 "${AOM_ROOT}/av1/common/restoration.h"
96 "${AOM_ROOT}/av1/common/warped_motion.c"
97 "${AOM_ROOT}/av1/common/warped_motion.h")
100 list(APPEND AOM_AV1_DECODER_SOURCES
101 "${AOM_ROOT}/av1/av1_dx_iface.c"
102 "${AOM_ROOT}/av1/decoder/decodeframe.c"
103 "${AOM_ROOT}/av1/decoder/decodeframe.h"
104 "${AOM_ROOT}/av1/decoder/decodemv.c"
105 "${AOM_ROOT}/av1/decoder/decodemv.h"
106 "${AOM_ROOT}/av1/decoder/decoder.c"
107 "${AOM_ROOT}/av1/decoder/decoder.h"
108 "${AOM_ROOT}/av1/decoder/decodetxb.c"
109 "${AOM_ROOT}/av1/decoder/decodetxb.h"
110 "${AOM_ROOT}/av1/decoder/detokenize.c"
111 "${AOM_ROOT}/av1/decoder/detokenize.h"
112 "${AOM_ROOT}/av1/decoder/dthread.h"
113 "${AOM_ROOT}/av1/decoder/grain_synthesis.c"
114 "${AOM_ROOT}/av1/decoder/grain_synthesis.h"
115 "${AOM_ROOT}/av1/decoder/obu.h"
116 "${AOM_ROOT}/av1/decoder/obu.c")
118 list(APPEND AOM_AV1_ENCODER_SOURCES
119 "${AOM_ROOT}/av1/av1_cx_iface.c"
120 "${AOM_ROOT}/av1/encoder/aq_complexity.c"
121 "${AOM_ROOT}/av1/encoder/aq_complexity.h"
122 "${AOM_ROOT}/av1/encoder/aq_cyclicrefresh.c"
123 "${AOM_ROOT}/av1/encoder/aq_cyclicrefresh.h"
124 "${AOM_ROOT}/av1/encoder/aq_variance.c"
125 "${AOM_ROOT}/av1/encoder/aq_variance.h"
126 "${AOM_ROOT}/av1/encoder/allintra_vis.c"
127 "${AOM_ROOT}/av1/encoder/allintra_vis.h"
128 "${AOM_ROOT}/av1/encoder/enc_enums.h"
129 "${AOM_ROOT}/av1/encoder/av1_fwd_txfm1d.c"
130 "${AOM_ROOT}/av1/encoder/av1_fwd_txfm1d.h"
131 "${AOM_ROOT}/av1/encoder/av1_fwd_txfm1d_cfg.h"
132 "${AOM_ROOT}/av1/encoder/av1_fwd_txfm2d.c"
133 "${AOM_ROOT}/av1/encoder/av1_quantize.c"
134 "${AOM_ROOT}/av1/encoder/av1_quantize.h"
135 "${AOM_ROOT}/av1/encoder/bitstream.c"
136 "${AOM_ROOT}/av1/encoder/bitstream.h"
137 "${AOM_ROOT}/av1/encoder/block.h"
138 "${AOM_ROOT}/av1/encoder/cnn.c"
139 "${AOM_ROOT}/av1/encoder/cnn.h"
140 "${AOM_ROOT}/av1/encoder/compound_type.c"
141 "${AOM_ROOT}/av1/encoder/compound_type.h"
142 "${AOM_ROOT}/av1/encoder/context_tree.c"
143 "${AOM_ROOT}/av1/encoder/context_tree.h"
144 "${AOM_ROOT}/av1/encoder/corner_detect.c"
145 "${AOM_ROOT}/av1/encoder/corner_detect.h"
146 "${AOM_ROOT}/av1/encoder/corner_match.c"
147 "${AOM_ROOT}/av1/encoder/corner_match.h"
148 "${AOM_ROOT}/av1/encoder/cost.c"
149 "${AOM_ROOT}/av1/encoder/cost.h"
150 "${AOM_ROOT}/av1/encoder/encodeframe.c"
151 "${AOM_ROOT}/av1/encoder/encodeframe.h"
152 "${AOM_ROOT}/av1/encoder/encodeframe_utils.c"
153 "${AOM_ROOT}/av1/encoder/encodeframe_utils.h"
154 "${AOM_ROOT}/av1/encoder/encodemb.c"
155 "${AOM_ROOT}/av1/encoder/encodemb.h"
156 "${AOM_ROOT}/av1/encoder/encodemv.c"
157 "${AOM_ROOT}/av1/encoder/encodemv.h"
158 "${AOM_ROOT}/av1/encoder/encode_strategy.c"
159 "${AOM_ROOT}/av1/encoder/encode_strategy.h"
160 "${AOM_ROOT}/av1/encoder/encoder.c"
161 "${AOM_ROOT}/av1/encoder/encoder.h"
162 "${AOM_ROOT}/av1/encoder/encoder_alloc.h"
163 "${AOM_ROOT}/av1/encoder/encoder_utils.c"
164 "${AOM_ROOT}/av1/encoder/encoder_utils.h"
165 "${AOM_ROOT}/av1/encoder/encodetxb.c"
166 "${AOM_ROOT}/av1/encoder/encodetxb.h"
167 "${AOM_ROOT}/av1/encoder/ethread.c"
168 "${AOM_ROOT}/av1/encoder/ethread.h"
169 "${AOM_ROOT}/av1/encoder/extend.c"
170 "${AOM_ROOT}/av1/encoder/extend.h"
171 "${AOM_ROOT}/av1/encoder/external_partition.c"
172 "${AOM_ROOT}/av1/encoder/external_partition.h"
173 "${AOM_ROOT}/av1/encoder/firstpass.c"
174 "${AOM_ROOT}/av1/encoder/firstpass.h"
175 "${AOM_ROOT}/av1/encoder/global_motion.c"
176 "${AOM_ROOT}/av1/encoder/global_motion.h"
177 "${AOM_ROOT}/av1/encoder/global_motion_facade.c"
178 "${AOM_ROOT}/av1/encoder/global_motion_facade.h"
179 "${AOM_ROOT}/av1/encoder/gop_structure.c"
180 "${AOM_ROOT}/av1/encoder/gop_structure.h"
181 "${AOM_ROOT}/av1/encoder/grain_test_vectors.h"
182 "${AOM_ROOT}/av1/encoder/hash.c"
183 "${AOM_ROOT}/av1/encoder/hash.h"
184 "${AOM_ROOT}/av1/encoder/hash_motion.c"
185 "${AOM_ROOT}/av1/encoder/hash_motion.h"
186 "${AOM_ROOT}/av1/encoder/hybrid_fwd_txfm.c"
187 "${AOM_ROOT}/av1/encoder/hybrid_fwd_txfm.h"
188 "${AOM_ROOT}/av1/encoder/interp_search.c"
189 "${AOM_ROOT}/av1/encoder/interp_search.h"
190 "${AOM_ROOT}/av1/encoder/level.c"
191 "${AOM_ROOT}/av1/encoder/level.h"
192 "${AOM_ROOT}/av1/encoder/lookahead.c"
193 "${AOM_ROOT}/av1/encoder/lookahead.h"
194 "${AOM_ROOT}/av1/encoder/mcomp.c"
195 "${AOM_ROOT}/av1/encoder/mcomp.h"
196 "${AOM_ROOT}/av1/encoder/ml.c"
197 "${AOM_ROOT}/av1/encoder/ml.h"
198 "${AOM_ROOT}/av1/encoder/model_rd.h"
199 "${AOM_ROOT}/av1/encoder/motion_search_facade.c"
200 "${AOM_ROOT}/av1/encoder/motion_search_facade.h"
201 "${AOM_ROOT}/av1/encoder/mv_prec.c"
202 "${AOM_ROOT}/av1/encoder/mv_prec.h"
203 "${AOM_ROOT}/av1/encoder/palette.c"
204 "${AOM_ROOT}/av1/encoder/palette.h"
205 "${AOM_ROOT}/av1/encoder/partition_search.h"
206 "${AOM_ROOT}/av1/encoder/partition_search.c"
207 "${AOM_ROOT}/av1/encoder/partition_strategy.h"
208 "${AOM_ROOT}/av1/encoder/partition_strategy.c"
209 "${AOM_ROOT}/av1/encoder/pass2_strategy.h"
210 "${AOM_ROOT}/av1/encoder/pass2_strategy.c"
211 "${AOM_ROOT}/av1/encoder/pickcdef.c"
212 "${AOM_ROOT}/av1/encoder/pickcdef.h"
213 "${AOM_ROOT}/av1/encoder/picklpf.c"
214 "${AOM_ROOT}/av1/encoder/picklpf.h"
215 "${AOM_ROOT}/av1/encoder/pickrst.c"
216 "${AOM_ROOT}/av1/encoder/pickrst.h"
217 "${AOM_ROOT}/av1/encoder/ransac.c"
218 "${AOM_ROOT}/av1/encoder/ransac.h"
219 "${AOM_ROOT}/av1/encoder/ratectrl.c"
220 "${AOM_ROOT}/av1/encoder/ratectrl.h"
221 "${AOM_ROOT}/av1/encoder/rc_utils.h"
222 "${AOM_ROOT}/av1/encoder/rd.c"
223 "${AOM_ROOT}/av1/encoder/rd.h"
224 "${AOM_ROOT}/av1/encoder/rdopt.c"
225 "${AOM_ROOT}/av1/encoder/nonrd_pickmode.c"
226 "${AOM_ROOT}/av1/encoder/rdopt.h"
227 "${AOM_ROOT}/av1/encoder/rdopt_data_defs.h"
228 "${AOM_ROOT}/av1/encoder/rdopt_utils.h"
229 "${AOM_ROOT}/av1/encoder/reconinter_enc.c"
230 "${AOM_ROOT}/av1/encoder/reconinter_enc.h"
231 "${AOM_ROOT}/av1/encoder/segmentation.c"
232 "${AOM_ROOT}/av1/encoder/segmentation.h"
233 "${AOM_ROOT}/av1/encoder/sorting_network.h"
234 "${AOM_ROOT}/av1/encoder/speed_features.c"
235 "${AOM_ROOT}/av1/encoder/speed_features.h"
236 "${AOM_ROOT}/av1/encoder/superres_scale.c"
237 "${AOM_ROOT}/av1/encoder/superres_scale.h"
238 "${AOM_ROOT}/av1/encoder/svc_layercontext.c"
239 "${AOM_ROOT}/av1/encoder/svc_layercontext.h"
240 "${AOM_ROOT}/av1/encoder/temporal_filter.c"
241 "${AOM_ROOT}/av1/encoder/temporal_filter.h"
242 "${AOM_ROOT}/av1/encoder/thirdpass.c"
243 "${AOM_ROOT}/av1/encoder/thirdpass.h"
244 "${AOM_ROOT}/av1/encoder/tokenize.c"
245 "${AOM_ROOT}/av1/encoder/tokenize.h"
246 "${AOM_ROOT}/av1/encoder/tpl_model.c"
247 "${AOM_ROOT}/av1/encoder/tpl_model.h"
248 "${AOM_ROOT}/av1/encoder/tx_search.c"
249 "${AOM_ROOT}/av1/encoder/tx_search.h"
250 "${AOM_ROOT}/av1/encoder/txb_rdopt.c"
251 "${AOM_ROOT}/av1/encoder/txb_rdopt.h"
252 "${AOM_ROOT}/av1/encoder/txb_rdopt_utils.h"
253 "${AOM_ROOT}/av1/encoder/intra_mode_search.c"
254 "${AOM_ROOT}/av1/encoder/intra_mode_search.h"
255 "${AOM_ROOT}/av1/encoder/intra_mode_search_utils.h"
256 "${AOM_ROOT}/av1/encoder/wedge_utils.c"
257 "${AOM_ROOT}/av1/encoder/var_based_part.c"
258 "${AOM_ROOT}/av1/encoder/var_based_part.h"
259 "${AOM_ROOT}/av1/encoder/av1_noise_estimate.c"
260 "${AOM_ROOT}/av1/encoder/av1_noise_estimate.h"
261 "${AOM_ROOT}/third_party/fastfeat/fast.c"
262 "${AOM_ROOT}/third_party/fastfeat/fast.h"
263 "${AOM_ROOT}/third_party/fastfeat/fast_9.c"
264 "${AOM_ROOT}/third_party/fastfeat/nonmax.c"
265 "${AOM_ROOT}/third_party/vector/vector.c"
266 "${AOM_ROOT}/third_party/vector/vector.h"
267 "${AOM_ROOT}/av1/encoder/dwt.c"
268 "${AOM_ROOT}/av1/encoder/dwt.h")
271 list(APPEND AOM_AV1_ENCODER_SOURCES "${AOM_ROOT}/av1/encoder/tune_vmaf.c"
272 "${AOM_ROOT}/av1/encoder/tune_vmaf.h")
275 if(CONFIG_TUNE_BUTTERAUGLI)
276 list(APPEND AOM_AV1_ENCODER_SOURCES
277 "${AOM_ROOT}/av1/encoder/tune_butteraugli.c"
278 "${AOM_ROOT}/av1/encoder/tune_butteraugli.h")
281 if(CONFIG_OPTICAL_FLOW_API)
282 list(APPEND AOM_AV1_ENCODER_SOURCES
283 "${AOM_ROOT}/av1/encoder/sparse_linear_solver.c"
284 "${AOM_ROOT}/av1/encoder/sparse_linear_solver.h"
285 "${AOM_ROOT}/av1/encoder/optical_flow.c"
286 "${AOM_ROOT}/av1/encoder/optical_flow.h")
289 if(CONFIG_AV1_TEMPORAL_DENOISING)
290 list(APPEND AOM_AV1_ENCODER_SOURCES
291 "${AOM_ROOT}/av1/encoder/av1_temporal_denoiser.c"
292 "${AOM_ROOT}/av1/encoder/av1_temporal_denoiser.h")
295 list(APPEND AOM_AV1_COMMON_INTRIN_SSE2
296 "${AOM_ROOT}/av1/common/cdef_block_sse2.c"
297 "${AOM_ROOT}/av1/common/x86/cfl_sse2.c"
298 "${AOM_ROOT}/av1/common/x86/convolve_2d_sse2.c"
299 "${AOM_ROOT}/av1/common/x86/convolve_sse2.c"
300 "${AOM_ROOT}/av1/common/x86/jnt_convolve_sse2.c"
301 "${AOM_ROOT}/av1/common/x86/wiener_convolve_sse2.c"
302 "${AOM_ROOT}/av1/common/x86/av1_txfm_sse2.h"
303 "${AOM_ROOT}/av1/common/x86/warp_plane_sse2.c")
305 if(CONFIG_REALTIME_ONLY)
306 list(REMOVE_ITEM AOM_AV1_COMMON_INTRIN_SSE2
307 "${AOM_ROOT}/av1/common/x86/warp_plane_sse2.c")
310 list(APPEND AOM_AV1_COMMON_INTRIN_SSSE3
311 "${AOM_ROOT}/av1/common/cdef_block_ssse3.c"
312 "${AOM_ROOT}/av1/common/x86/av1_inv_txfm_ssse3.c"
313 "${AOM_ROOT}/av1/common/x86/av1_inv_txfm_ssse3.h"
314 "${AOM_ROOT}/av1/common/x86/cfl_ssse3.c"
315 "${AOM_ROOT}/av1/common/x86/highbd_convolve_2d_ssse3.c"
316 "${AOM_ROOT}/av1/common/x86/highbd_wiener_convolve_ssse3.c"
317 "${AOM_ROOT}/av1/common/x86/jnt_convolve_ssse3.c"
318 "${AOM_ROOT}/av1/common/x86/reconinter_ssse3.c"
319 "${AOM_ROOT}/av1/common/x86/resize_ssse3.c")
321 if(NOT CONFIG_AV1_HIGHBITDEPTH)
322 list(REMOVE_ITEM AOM_AV1_COMMON_INTRIN_SSSE3
323 "${AOM_ROOT}/av1/common/x86/highbd_convolve_2d_ssse3.c"
324 "${AOM_ROOT}/av1/common/x86/highbd_wiener_convolve_ssse3.c"
325 "${AOM_ROOT}/av1/common/x86/reconinter_ssse3.c")
328 list(APPEND AOM_AV1_COMMON_INTRIN_SSE4_1
329 "${AOM_ROOT}/av1/common/cdef_block_sse4.c"
330 "${AOM_ROOT}/av1/common/x86/av1_convolve_horiz_rs_sse4.c"
331 "${AOM_ROOT}/av1/common/x86/av1_convolve_scale_sse4.c"
332 "${AOM_ROOT}/av1/common/x86/av1_txfm_sse4.c"
333 "${AOM_ROOT}/av1/common/x86/av1_txfm_sse4.h"
334 "${AOM_ROOT}/av1/common/x86/filterintra_sse4.c"
335 "${AOM_ROOT}/av1/common/x86/highbd_convolve_2d_sse4.c"
336 "${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_sse4.c"
337 "${AOM_ROOT}/av1/common/x86/highbd_jnt_convolve_sse4.c"
338 "${AOM_ROOT}/av1/common/x86/highbd_warp_plane_sse4.c"
339 "${AOM_ROOT}/av1/common/x86/intra_edge_sse4.c"
340 "${AOM_ROOT}/av1/common/x86/reconinter_sse4.c"
341 "${AOM_ROOT}/av1/common/x86/selfguided_sse4.c"
342 "${AOM_ROOT}/av1/common/x86/warp_plane_sse4.c")
344 if(NOT CONFIG_AV1_HIGHBITDEPTH)
345 list(REMOVE_ITEM AOM_AV1_COMMON_INTRIN_SSE4_1
346 "${AOM_ROOT}/av1/common/x86/highbd_convolve_2d_sse4.c"
347 "${AOM_ROOT}/av1/common/x86/highbd_jnt_convolve_sse4.c"
348 "${AOM_ROOT}/av1/common/x86/highbd_warp_plane_sse4.c")
351 if(CONFIG_REALTIME_ONLY)
352 list(REMOVE_ITEM AOM_AV1_COMMON_INTRIN_SSE4_1
353 "${AOM_ROOT}/av1/common/x86/highbd_warp_plane_sse4.c"
354 "${AOM_ROOT}/av1/common/x86/selfguided_sse4.c"
355 "${AOM_ROOT}/av1/common/x86/warp_plane_sse4.c")
358 list(APPEND AOM_AV1_COMMON_INTRIN_AVX2
359 "${AOM_ROOT}/av1/common/cdef_block_avx2.c"
360 "${AOM_ROOT}/av1/common/x86/av1_inv_txfm_avx2.c"
361 "${AOM_ROOT}/av1/common/x86/av1_inv_txfm_avx2.h"
362 "${AOM_ROOT}/av1/common/x86/cfl_avx2.c"
363 "${AOM_ROOT}/av1/common/x86/convolve_2d_avx2.c"
364 "${AOM_ROOT}/av1/common/x86/convolve_avx2.c"
365 "${AOM_ROOT}/av1/common/x86/highbd_convolve_2d_avx2.c"
366 "${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_avx2.c"
367 "${AOM_ROOT}/av1/common/x86/highbd_jnt_convolve_avx2.c"
368 "${AOM_ROOT}/av1/common/x86/highbd_wiener_convolve_avx2.c"
369 "${AOM_ROOT}/av1/common/x86/highbd_warp_affine_avx2.c"
370 "${AOM_ROOT}/av1/common/x86/jnt_convolve_avx2.c"
371 "${AOM_ROOT}/av1/common/x86/reconinter_avx2.c"
372 "${AOM_ROOT}/av1/common/x86/selfguided_avx2.c"
373 "${AOM_ROOT}/av1/common/x86/warp_plane_avx2.c"
374 "${AOM_ROOT}/av1/common/x86/wiener_convolve_avx2.c")
376 if(NOT CONFIG_AV1_HIGHBITDEPTH)
377 list(REMOVE_ITEM AOM_AV1_COMMON_INTRIN_AVX2
378 "${AOM_ROOT}/av1/common/x86/highbd_convolve_2d_avx2.c"
379 "${AOM_ROOT}/av1/common/x86/highbd_jnt_convolve_avx2.c"
380 "${AOM_ROOT}/av1/common/x86/highbd_wiener_convolve_avx2.c"
381 "${AOM_ROOT}/av1/common/x86/highbd_warp_affine_avx2.c")
384 if(CONFIG_REALTIME_ONLY)
385 list(REMOVE_ITEM AOM_AV1_COMMON_INTRIN_AVX2
386 "${AOM_ROOT}/av1/common/x86/highbd_warp_affine_avx2.c"
387 "${AOM_ROOT}/av1/common/x86/selfguided_avx2.c"
388 "${AOM_ROOT}/av1/common/x86/warp_plane_avx2.c")
391 list(APPEND AOM_AV1_ENCODER_ASM_SSE2 "${AOM_ROOT}/av1/encoder/x86/dct_sse2.asm"
392 "${AOM_ROOT}/av1/encoder/x86/error_sse2.asm")
394 list(APPEND AOM_AV1_ENCODER_INTRIN_SSE2
395 "${AOM_ROOT}/av1/encoder/x86/av1_fwd_txfm_sse2.c"
396 "${AOM_ROOT}/av1/encoder/x86/av1_fwd_txfm_sse2.h"
397 "${AOM_ROOT}/av1/encoder/x86/av1_k_means_sse2.c"
398 "${AOM_ROOT}/av1/encoder/x86/av1_quantize_sse2.c"
399 "${AOM_ROOT}/av1/encoder/x86/encodetxb_sse2.c"
400 "${AOM_ROOT}/av1/encoder/x86/error_intrin_sse2.c"
401 "${AOM_ROOT}/av1/encoder/x86/highbd_block_error_intrin_sse2.c"
402 "${AOM_ROOT}/av1/encoder/x86/highbd_temporal_filter_sse2.c"
403 "${AOM_ROOT}/av1/encoder/x86/reconinter_enc_sse2.c"
404 "${AOM_ROOT}/av1/encoder/x86/temporal_filter_sse2.c"
405 "${AOM_ROOT}/av1/encoder/x86/wedge_utils_sse2.c")
407 if(CONFIG_AV1_TEMPORAL_DENOISING)
408 list(APPEND AOM_AV1_ENCODER_INTRIN_SSE2
409 "${AOM_ROOT}/av1/encoder/x86/av1_temporal_denoiser_sse2.c")
412 if(NOT CONFIG_AV1_HIGHBITDEPTH)
414 REMOVE_ITEM AOM_AV1_ENCODER_INTRIN_SSE2
415 "${AOM_ROOT}/av1/encoder/x86/highbd_block_error_intrin_sse2.c"
416 "${AOM_ROOT}/av1/encoder/x86/highbd_temporal_filter_sse2.c")
419 list(APPEND AOM_AV1_ENCODER_INTRIN_SSE3 "${AOM_ROOT}/av1/encoder/x86/ml_sse3.c")
421 list(APPEND AOM_AV1_ENCODER_INTRIN_SSSE3
422 "${AOM_ROOT}/av1/encoder/x86/reconinter_enc_ssse3.c")
424 list(APPEND AOM_AV1_ENCODER_ASM_SSSE3_X86_64
425 "${AOM_ROOT}/av1/encoder/x86/av1_quantize_ssse3_x86_64.asm")
427 list(APPEND AOM_AV1_ENCODER_INTRIN_SSE4_1
428 "${AOM_ROOT}/av1/encoder/x86/av1_fwd_txfm1d_sse4.c"
429 "${AOM_ROOT}/av1/encoder/x86/av1_fwd_txfm2d_sse4.c"
430 "${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_sse4.c"
431 "${AOM_ROOT}/av1/encoder/x86/corner_match_sse4.c"
432 "${AOM_ROOT}/av1/encoder/x86/encodetxb_sse4.c"
433 "${AOM_ROOT}/av1/encoder/x86/highbd_fwd_txfm_sse4.c"
434 "${AOM_ROOT}/av1/encoder/x86/rdopt_sse4.c"
435 "${AOM_ROOT}/av1/encoder/x86/pickrst_sse4.c")
437 if(NOT CONFIG_AV1_HIGHBITDEPTH)
438 list(REMOVE_ITEM AOM_AV1_ENCODER_INTRIN_SSE4_1
439 "${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_sse4.c")
442 if(CONFIG_REALTIME_ONLY)
443 list(REMOVE_ITEM AOM_AV1_ENCODER_INTRIN_SSE4_1
444 "${AOM_ROOT}/av1/encoder/x86/pickrst_sse4.c")
447 list(APPEND AOM_AV1_ENCODER_INTRIN_AVX2
448 "${AOM_ROOT}/av1/encoder/x86/av1_quantize_avx2.c"
449 "${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_avx2.c"
450 "${AOM_ROOT}/av1/encoder/x86/corner_match_avx2.c"
451 "${AOM_ROOT}/av1/encoder/x86/error_intrin_avx2.c"
452 "${AOM_ROOT}/av1/encoder/x86/highbd_block_error_intrin_avx2.c"
453 "${AOM_ROOT}/av1/encoder/x86/av1_fwd_txfm_avx2.h"
454 "${AOM_ROOT}/av1/encoder/x86/av1_fwd_txfm2d_avx2.c"
455 "${AOM_ROOT}/av1/encoder/x86/highbd_fwd_txfm_avx2.c"
456 "${AOM_ROOT}/av1/encoder/x86/wedge_utils_avx2.c"
457 "${AOM_ROOT}/av1/encoder/x86/encodetxb_avx2.c"
458 "${AOM_ROOT}/av1/encoder/x86/rdopt_avx2.c"
459 "${AOM_ROOT}/av1/encoder/x86/av1_k_means_avx2.c"
460 "${AOM_ROOT}/av1/encoder/x86/temporal_filter_avx2.c"
461 "${AOM_ROOT}/av1/encoder/x86/highbd_temporal_filter_avx2.c"
462 "${AOM_ROOT}/av1/encoder/x86/pickrst_avx2.c"
463 "${AOM_ROOT}/av1/encoder/x86/cnn_avx2.c")
465 if(NOT CONFIG_AV1_HIGHBITDEPTH)
467 REMOVE_ITEM AOM_AV1_ENCODER_INTRIN_AVX2
468 "${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_avx2.c"
469 "${AOM_ROOT}/av1/encoder/x86/highbd_block_error_intrin_avx2.c"
470 "${AOM_ROOT}/av1/encoder/x86/highbd_temporal_filter_avx2.c")
473 if(CONFIG_REALTIME_ONLY)
474 list(REMOVE_ITEM AOM_AV1_ENCODER_INTRIN_AVX2
475 "${AOM_ROOT}/av1/encoder/x86/pickrst_avx2.c"
476 "${AOM_ROOT}/av1/encoder/x86/cnn_avx2.c")
479 list(APPEND AOM_AV1_ENCODER_INTRIN_NEON
480 "${AOM_ROOT}/av1/encoder/arm/neon/quantize_neon.c"
481 "${AOM_ROOT}/av1/encoder/arm/neon/ml_neon.c"
482 "${AOM_ROOT}/av1/encoder/arm/neon/picksrt_neon.c"
483 "${AOM_ROOT}/av1/encoder/arm/neon/rdopt_neon.c"
484 "${AOM_ROOT}/av1/encoder/arm/neon/av1_error_neon.c"
485 "${AOM_ROOT}/av1/encoder/arm/neon/encodetxb_neon.c"
486 "${AOM_ROOT}/av1/encoder/arm/neon/hybrid_fwd_txfm_neon.c"
487 "${AOM_ROOT}/av1/encoder/arm/neon/av1_fwd_txfm2d_neon.c"
488 "${AOM_ROOT}/av1/encoder/arm/neon/highbd_fwd_txfm_neon.c")
490 if(CONFIG_AV1_TEMPORAL_DENOISING)
491 list(APPEND AOM_AV1_ENCODER_INTRIN_NEON
492 "${AOM_ROOT}/av1/encoder/arm/neon/av1_temporal_denoiser_neon.c")
495 list(APPEND AOM_AV1_ENCODER_INTRIN_MSA
496 "${AOM_ROOT}/av1/encoder/mips/msa/error_msa.c"
497 "${AOM_ROOT}/av1/encoder/mips/msa/fdct4x4_msa.c"
498 "${AOM_ROOT}/av1/encoder/mips/msa/temporal_filter_msa.c")
500 list(APPEND AOM_AV1_COMMON_INTRIN_NEON
501 "${AOM_ROOT}/av1/common/arm/av1_txfm_neon.c"
502 "${AOM_ROOT}/av1/common/arm/cfl_neon.c"
503 "${AOM_ROOT}/av1/common/arm/convolve_neon.c"
504 "${AOM_ROOT}/av1/common/arm/convolve_neon.h"
505 "${AOM_ROOT}/av1/common/arm/jnt_convolve_neon.c"
506 "${AOM_ROOT}/av1/common/arm/blend_a64_hmask_neon.c"
507 "${AOM_ROOT}/av1/common/arm/blend_a64_vmask_neon.c"
508 "${AOM_ROOT}/av1/common/arm/reconinter_neon.c"
509 "${AOM_ROOT}/av1/common/arm/reconintra_neon.c"
510 "${AOM_ROOT}/av1/common/arm/resize_neon.c"
511 "${AOM_ROOT}/av1/common/arm/wiener_convolve_neon.c"
512 "${AOM_ROOT}/av1/common/arm/selfguided_neon.c"
513 "${AOM_ROOT}/av1/common/arm/av1_inv_txfm_neon.c"
514 "${AOM_ROOT}/av1/common/arm/av1_inv_txfm_neon.h"
515 "${AOM_ROOT}/av1/common/arm/highbd_inv_txfm_neon.c"
516 "${AOM_ROOT}/av1/common/arm/warp_plane_neon.c"
517 "${AOM_ROOT}/av1/common/cdef_block_neon.c")
519 if(CONFIG_REALTIME_ONLY)
520 list(REMOVE_ITEM AOM_AV1_COMMON_INTRIN_NEON
521 "${AOM_ROOT}/av1/common/arm/selfguided_neon.c"
522 "${AOM_ROOT}/av1/common/arm/warp_plane_neon.c")
525 list(APPEND AOM_AV1_ENCODER_INTRIN_SSE4_2
526 "${AOM_ROOT}/av1/encoder/x86/hash_sse42.c")
528 list(APPEND AOM_AV1_COMMON_INTRIN_VSX "${AOM_ROOT}/av1/common/ppc/cfl_ppc.c")
530 if(CONFIG_ACCOUNTING)
531 list(APPEND AOM_AV1_DECODER_SOURCES "${AOM_ROOT}/av1/decoder/accounting.c"
532 "${AOM_ROOT}/av1/decoder/accounting.h")
535 if(CONFIG_INSPECTION)
536 list(APPEND AOM_AV1_DECODER_SOURCES "${AOM_ROOT}/av1/decoder/inspection.c"
537 "${AOM_ROOT}/av1/decoder/inspection.h")
540 if(CONFIG_INTERNAL_STATS)
541 list(APPEND AOM_AV1_ENCODER_SOURCES "${AOM_ROOT}/av1/encoder/blockiness.c")
544 if(CONFIG_REALTIME_ONLY)
545 list(REMOVE_ITEM AOM_AV1_ENCODER_SOURCES
546 "${AOM_ROOT}/av1/encoder/cnn.c"
547 "${AOM_ROOT}/av1/encoder/cnn.h"
548 "${AOM_ROOT}/av1/encoder/firstpass.c"
549 "${AOM_ROOT}/av1/encoder/firstpass.h"
550 "${AOM_ROOT}/av1/encoder/global_motion.c"
551 "${AOM_ROOT}/av1/encoder/global_motion.h"
552 "${AOM_ROOT}/av1/encoder/global_motion_facade.c"
553 "${AOM_ROOT}/av1/encoder/global_motion_facade.h"
554 "${AOM_ROOT}/av1/encoder/gop_structure.c"
555 "${AOM_ROOT}/av1/encoder/gop_structure.h"
556 "${AOM_ROOT}/av1/encoder/misc_model_weights.h"
557 "${AOM_ROOT}/av1/encoder/partition_cnn_weights.h"
558 "${AOM_ROOT}/av1/encoder/partition_model_weights.h"
559 "${AOM_ROOT}/av1/encoder/pass2_strategy.c"
560 "${AOM_ROOT}/av1/encoder/picklpf.h"
561 "${AOM_ROOT}/av1/encoder/pickrst.c"
562 "${AOM_ROOT}/av1/encoder/temporal_filter.c"
563 "${AOM_ROOT}/av1/encoder/temporal_filter.h"
564 "${AOM_ROOT}/av1/encoder/tpl_model.c"
565 "${AOM_ROOT}/av1/encoder/tpl_model.h")
568 # Setup AV1 common/decoder/encoder targets. The libaom target must exist before
569 # this function is called.
570 function(setup_av1_targets)
571 add_library(aom_av1_common OBJECT ${AOM_AV1_COMMON_SOURCES})
572 list(APPEND AOM_LIB_TARGETS aom_av1_common)
573 target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_av1_common>)
574 if(BUILD_SHARED_LIBS)
575 target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_av1_common>)
578 if(CONFIG_AV1_DECODER)
579 add_library(aom_av1_decoder OBJECT ${AOM_AV1_DECODER_SOURCES})
580 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_decoder)
581 target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_av1_decoder>)
582 if(BUILD_SHARED_LIBS)
583 target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_av1_decoder>)
587 if(CONFIG_AV1_ENCODER)
588 add_library(aom_av1_encoder OBJECT ${AOM_AV1_ENCODER_SOURCES})
589 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_encoder)
590 target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_av1_encoder>)
591 if(BUILD_SHARED_LIBS)
592 target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_av1_encoder>)
597 require_compiler_flag_nomsvc("-msse2" NO)
598 add_intrinsics_object_library("-msse2" "sse2" "aom_av1_common"
599 "AOM_AV1_COMMON_INTRIN_SSE2")
600 if(CONFIG_AV1_DECODER)
601 if(AOM_AV1_DECODER_ASM_SSE2)
602 add_asm_library("aom_av1_decoder_sse2" "AOM_AV1_DECODER_ASM_SSE2")
605 if(AOM_AV1_DECODER_INTRIN_SSE2)
606 add_intrinsics_object_library("-msse2" "sse2" "aom_av1_decoder"
607 "AOM_AV1_DECODER_INTRIN_SSE2")
611 if(CONFIG_AV1_ENCODER)
612 add_asm_library("aom_av1_encoder_sse2" "AOM_AV1_ENCODER_ASM_SSE2")
613 add_intrinsics_object_library("-msse2" "sse2" "aom_av1_encoder"
614 "AOM_AV1_ENCODER_INTRIN_SSE2")
619 require_compiler_flag_nomsvc("-msse3" NO)
620 if(CONFIG_AV1_ENCODER)
621 add_intrinsics_object_library("-msse3" "sse3" "aom_av1_encoder"
622 "AOM_AV1_ENCODER_INTRIN_SSE3")
627 require_compiler_flag_nomsvc("-mssse3" NO)
628 add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_common"
629 "AOM_AV1_COMMON_INTRIN_SSSE3")
631 if(CONFIG_AV1_DECODER)
632 if(AOM_AV1_DECODER_INTRIN_SSSE3)
633 add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_decoder"
634 "AOM_AV1_DECODER_INTRIN_SSSE3")
637 if(CONFIG_AV1_ENCODER)
638 if(AOM_AV1_ENCODER_INTRIN_SSSE3)
639 add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_encoder"
640 "AOM_AV1_ENCODER_INTRIN_SSSE3")
646 require_compiler_flag_nomsvc("-msse4.1" NO)
647 add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_common"
648 "AOM_AV1_COMMON_INTRIN_SSE4_1")
650 if(CONFIG_AV1_ENCODER)
651 if("${AOM_TARGET_CPU}" STREQUAL "x86_64")
652 add_asm_library("aom_av1_encoder_ssse3"
653 "AOM_AV1_ENCODER_ASM_SSSE3_X86_64")
656 if(AOM_AV1_ENCODER_INTRIN_SSE4_1)
657 add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_encoder"
658 "AOM_AV1_ENCODER_INTRIN_SSE4_1")
664 require_compiler_flag_nomsvc("-msse4.2" NO)
665 if(CONFIG_AV1_ENCODER)
666 if(AOM_AV1_ENCODER_INTRIN_SSE4_2)
667 add_intrinsics_object_library("-msse4.2" "sse42" "aom_av1_encoder"
668 "AOM_AV1_ENCODER_INTRIN_SSE4_2")
674 require_compiler_flag_nomsvc("-mavx2" NO)
675 add_intrinsics_object_library("-mavx2" "avx2" "aom_av1_common"
676 "AOM_AV1_COMMON_INTRIN_AVX2")
678 if(CONFIG_AV1_ENCODER)
679 add_intrinsics_object_library("-mavx2" "avx2" "aom_av1_encoder"
680 "AOM_AV1_ENCODER_INTRIN_AVX2")
685 if(AOM_AV1_COMMON_INTRIN_NEON)
686 add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}" "neon"
688 "AOM_AV1_COMMON_INTRIN_NEON")
691 if(CONFIG_AV1_ENCODER)
692 if(AOM_AV1_ENCODER_INTRIN_NEON)
693 add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}" "neon"
695 "AOM_AV1_ENCODER_INTRIN_NEON")
701 if(AOM_AV1_COMMON_INTRIN_VSX)
702 add_intrinsics_object_library("-mvsx -maltivec" "vsx" "aom_av1_common"
703 "AOM_AV1_COMMON_INTRIN_VSX")
708 add_intrinsics_object_library("" "msa" "aom_av1_encoder"
709 "AOM_AV1_ENCODER_INTRIN_MSA")
712 # Pass the new lib targets up to the parent scope instance of
714 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} PARENT_SCOPE)