• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright (c) 2017, Alliance for Open Media. All rights reserved
3#
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.
10#
11if(AOM_AV1_AV1_CMAKE_)
12  return()
13endif() # AOM_AV1_AV1_CMAKE_
14set(AOM_AV1_AV1_CMAKE_ 1)
15
16list(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.c"
43            "${AOM_ROOT}/av1/common/common_data.h"
44            "${AOM_ROOT}/av1/common/convolve.c"
45            "${AOM_ROOT}/av1/common/convolve.h"
46            "${AOM_ROOT}/av1/common/debugmodes.c"
47            "${AOM_ROOT}/av1/common/entropy.c"
48            "${AOM_ROOT}/av1/common/entropy.h"
49            "${AOM_ROOT}/av1/common/entropymode.c"
50            "${AOM_ROOT}/av1/common/entropymode.h"
51            "${AOM_ROOT}/av1/common/entropymv.c"
52            "${AOM_ROOT}/av1/common/entropymv.h"
53            "${AOM_ROOT}/av1/common/enums.h"
54            "${AOM_ROOT}/av1/common/filter.h"
55            "${AOM_ROOT}/av1/common/frame_buffers.c"
56            "${AOM_ROOT}/av1/common/frame_buffers.h"
57            "${AOM_ROOT}/av1/common/idct.c"
58            "${AOM_ROOT}/av1/common/idct.h"
59            "${AOM_ROOT}/av1/common/mv.h"
60            "${AOM_ROOT}/av1/common/mvref_common.c"
61            "${AOM_ROOT}/av1/common/mvref_common.h"
62            "${AOM_ROOT}/av1/common/obu_util.c"
63            "${AOM_ROOT}/av1/common/obu_util.h"
64            "${AOM_ROOT}/av1/common/pred_common.c"
65            "${AOM_ROOT}/av1/common/pred_common.h"
66            "${AOM_ROOT}/av1/common/quant_common.c"
67            "${AOM_ROOT}/av1/common/quant_common.h"
68            "${AOM_ROOT}/av1/common/reconinter.c"
69            "${AOM_ROOT}/av1/common/reconinter.h"
70            "${AOM_ROOT}/av1/common/reconinter_template.inc"
71            "${AOM_ROOT}/av1/common/reconintra.c"
72            "${AOM_ROOT}/av1/common/reconintra.h"
73            "${AOM_ROOT}/av1/common/resize.c"
74            "${AOM_ROOT}/av1/common/resize.h"
75            "${AOM_ROOT}/av1/common/restoration.c"
76            "${AOM_ROOT}/av1/common/restoration.h"
77            "${AOM_ROOT}/av1/common/scale.c"
78            "${AOM_ROOT}/av1/common/scale.h"
79            "${AOM_ROOT}/av1/common/scan.c"
80            "${AOM_ROOT}/av1/common/scan.h"
81            "${AOM_ROOT}/av1/common/seg_common.c"
82            "${AOM_ROOT}/av1/common/seg_common.h"
83            "${AOM_ROOT}/av1/common/thread_common.c"
84            "${AOM_ROOT}/av1/common/thread_common.h"
85            "${AOM_ROOT}/av1/common/tile_common.c"
86            "${AOM_ROOT}/av1/common/tile_common.h"
87            "${AOM_ROOT}/av1/common/timing.c"
88            "${AOM_ROOT}/av1/common/timing.h"
89            "${AOM_ROOT}/av1/common/token_cdfs.h"
90            "${AOM_ROOT}/av1/common/txb_common.c"
91            "${AOM_ROOT}/av1/common/txb_common.h"
92            "${AOM_ROOT}/av1/common/warped_motion.c"
93            "${AOM_ROOT}/av1/common/warped_motion.h")
94
95list(APPEND AOM_AV1_DECODER_SOURCES
96            "${AOM_ROOT}/av1/av1_dx_iface.c"
97            "${AOM_ROOT}/av1/decoder/decodeframe.c"
98            "${AOM_ROOT}/av1/decoder/decodeframe.h"
99            "${AOM_ROOT}/av1/decoder/decodemv.c"
100            "${AOM_ROOT}/av1/decoder/decodemv.h"
101            "${AOM_ROOT}/av1/decoder/decoder.c"
102            "${AOM_ROOT}/av1/decoder/decoder.h"
103            "${AOM_ROOT}/av1/decoder/decodetxb.c"
104            "${AOM_ROOT}/av1/decoder/decodetxb.h"
105            "${AOM_ROOT}/av1/decoder/detokenize.c"
106            "${AOM_ROOT}/av1/decoder/detokenize.h"
107            "${AOM_ROOT}/av1/decoder/dthread.h"
108            "${AOM_ROOT}/av1/decoder/grain_synthesis.c"
109            "${AOM_ROOT}/av1/decoder/grain_synthesis.h"
110            "${AOM_ROOT}/av1/decoder/obu.h"
111            "${AOM_ROOT}/av1/decoder/obu.c")
112
113list(APPEND AOM_AV1_ENCODER_SOURCES
114            "${AOM_ROOT}/av1/av1_cx_iface.c"
115            "${AOM_ROOT}/av1/av1_cx_iface.h"
116            "${AOM_ROOT}/av1/encoder/aq_complexity.c"
117            "${AOM_ROOT}/av1/encoder/aq_complexity.h"
118            "${AOM_ROOT}/av1/encoder/aq_cyclicrefresh.c"
119            "${AOM_ROOT}/av1/encoder/aq_cyclicrefresh.h"
120            "${AOM_ROOT}/av1/encoder/aq_variance.c"
121            "${AOM_ROOT}/av1/encoder/aq_variance.h"
122            "${AOM_ROOT}/av1/encoder/allintra_vis.c"
123            "${AOM_ROOT}/av1/encoder/allintra_vis.h"
124            "${AOM_ROOT}/av1/encoder/enc_enums.h"
125            "${AOM_ROOT}/av1/encoder/av1_fwd_txfm1d.c"
126            "${AOM_ROOT}/av1/encoder/av1_fwd_txfm1d.h"
127            "${AOM_ROOT}/av1/encoder/av1_fwd_txfm1d_cfg.h"
128            "${AOM_ROOT}/av1/encoder/av1_fwd_txfm2d.c"
129            "${AOM_ROOT}/av1/encoder/av1_quantize.c"
130            "${AOM_ROOT}/av1/encoder/av1_quantize.h"
131            "${AOM_ROOT}/av1/encoder/bitstream.c"
132            "${AOM_ROOT}/av1/encoder/bitstream.h"
133            "${AOM_ROOT}/av1/encoder/block.h"
134            "${AOM_ROOT}/av1/encoder/cnn.c"
135            "${AOM_ROOT}/av1/encoder/cnn.h"
136            "${AOM_ROOT}/av1/encoder/compound_type.c"
137            "${AOM_ROOT}/av1/encoder/compound_type.h"
138            "${AOM_ROOT}/av1/encoder/context_tree.c"
139            "${AOM_ROOT}/av1/encoder/context_tree.h"
140            "${AOM_ROOT}/av1/encoder/cost.c"
141            "${AOM_ROOT}/av1/encoder/cost.h"
142            "${AOM_ROOT}/av1/encoder/encodeframe.c"
143            "${AOM_ROOT}/av1/encoder/encodeframe.h"
144            "${AOM_ROOT}/av1/encoder/encodeframe_utils.c"
145            "${AOM_ROOT}/av1/encoder/encodeframe_utils.h"
146            "${AOM_ROOT}/av1/encoder/encodemb.c"
147            "${AOM_ROOT}/av1/encoder/encodemb.h"
148            "${AOM_ROOT}/av1/encoder/encodemv.c"
149            "${AOM_ROOT}/av1/encoder/encodemv.h"
150            "${AOM_ROOT}/av1/encoder/encode_strategy.c"
151            "${AOM_ROOT}/av1/encoder/encode_strategy.h"
152            "${AOM_ROOT}/av1/encoder/encoder.c"
153            "${AOM_ROOT}/av1/encoder/encoder.h"
154            "${AOM_ROOT}/av1/encoder/encoder_alloc.h"
155            "${AOM_ROOT}/av1/encoder/encoder_utils.c"
156            "${AOM_ROOT}/av1/encoder/encoder_utils.h"
157            "${AOM_ROOT}/av1/encoder/encodetxb.c"
158            "${AOM_ROOT}/av1/encoder/encodetxb.h"
159            "${AOM_ROOT}/av1/encoder/ethread.c"
160            "${AOM_ROOT}/av1/encoder/ethread.h"
161            "${AOM_ROOT}/av1/encoder/extend.c"
162            "${AOM_ROOT}/av1/encoder/extend.h"
163            "${AOM_ROOT}/av1/encoder/external_partition.c"
164            "${AOM_ROOT}/av1/encoder/external_partition.h"
165            "${AOM_ROOT}/av1/encoder/firstpass.c"
166            "${AOM_ROOT}/av1/encoder/firstpass.h"
167            "${AOM_ROOT}/av1/encoder/global_motion.c"
168            "${AOM_ROOT}/av1/encoder/global_motion.h"
169            "${AOM_ROOT}/av1/encoder/global_motion_facade.c"
170            "${AOM_ROOT}/av1/encoder/global_motion_facade.h"
171            "${AOM_ROOT}/av1/encoder/gop_structure.c"
172            "${AOM_ROOT}/av1/encoder/gop_structure.h"
173            "${AOM_ROOT}/av1/encoder/grain_test_vectors.h"
174            "${AOM_ROOT}/av1/encoder/hash.c"
175            "${AOM_ROOT}/av1/encoder/hash.h"
176            "${AOM_ROOT}/av1/encoder/hash_motion.c"
177            "${AOM_ROOT}/av1/encoder/hash_motion.h"
178            "${AOM_ROOT}/av1/encoder/hybrid_fwd_txfm.c"
179            "${AOM_ROOT}/av1/encoder/hybrid_fwd_txfm.h"
180            "${AOM_ROOT}/av1/encoder/interp_search.c"
181            "${AOM_ROOT}/av1/encoder/interp_search.h"
182            "${AOM_ROOT}/av1/encoder/level.c"
183            "${AOM_ROOT}/av1/encoder/level.h"
184            "${AOM_ROOT}/av1/encoder/lookahead.c"
185            "${AOM_ROOT}/av1/encoder/lookahead.h"
186            "${AOM_ROOT}/av1/encoder/mcomp.c"
187            "${AOM_ROOT}/av1/encoder/mcomp.h"
188            "${AOM_ROOT}/av1/encoder/mcomp_structs.h"
189            "${AOM_ROOT}/av1/encoder/ml.c"
190            "${AOM_ROOT}/av1/encoder/ml.h"
191            "${AOM_ROOT}/av1/encoder/model_rd.h"
192            "${AOM_ROOT}/av1/encoder/motion_search_facade.c"
193            "${AOM_ROOT}/av1/encoder/motion_search_facade.h"
194            "${AOM_ROOT}/av1/encoder/mv_prec.c"
195            "${AOM_ROOT}/av1/encoder/mv_prec.h"
196            "${AOM_ROOT}/av1/encoder/palette.c"
197            "${AOM_ROOT}/av1/encoder/palette.h"
198            "${AOM_ROOT}/av1/encoder/partition_search.h"
199            "${AOM_ROOT}/av1/encoder/partition_search.c"
200            "${AOM_ROOT}/av1/encoder/partition_strategy.h"
201            "${AOM_ROOT}/av1/encoder/partition_strategy.c"
202            "${AOM_ROOT}/av1/encoder/pass2_strategy.h"
203            "${AOM_ROOT}/av1/encoder/pass2_strategy.c"
204            "${AOM_ROOT}/av1/encoder/pickcdef.c"
205            "${AOM_ROOT}/av1/encoder/pickcdef.h"
206            "${AOM_ROOT}/av1/encoder/picklpf.c"
207            "${AOM_ROOT}/av1/encoder/picklpf.h"
208            "${AOM_ROOT}/av1/encoder/pickrst.c"
209            "${AOM_ROOT}/av1/encoder/pickrst.h"
210            "${AOM_ROOT}/av1/encoder/ratectrl.c"
211            "${AOM_ROOT}/av1/encoder/ratectrl.h"
212            "${AOM_ROOT}/av1/encoder/rc_utils.h"
213            "${AOM_ROOT}/av1/encoder/rd.c"
214            "${AOM_ROOT}/av1/encoder/rd.h"
215            "${AOM_ROOT}/av1/encoder/rdopt.c"
216            "${AOM_ROOT}/av1/encoder/nonrd_pickmode.c"
217            "${AOM_ROOT}/av1/encoder/nonrd_opt.c"
218            "${AOM_ROOT}/av1/encoder/nonrd_opt.h"
219            "${AOM_ROOT}/av1/encoder/rdopt.h"
220            "${AOM_ROOT}/av1/encoder/rdopt_data_defs.h"
221            "${AOM_ROOT}/av1/encoder/rdopt_utils.h"
222            "${AOM_ROOT}/av1/encoder/reconinter_enc.c"
223            "${AOM_ROOT}/av1/encoder/reconinter_enc.h"
224            "${AOM_ROOT}/av1/encoder/segmentation.c"
225            "${AOM_ROOT}/av1/encoder/segmentation.h"
226            "${AOM_ROOT}/av1/encoder/sorting_network.h"
227            "${AOM_ROOT}/av1/encoder/speed_features.c"
228            "${AOM_ROOT}/av1/encoder/speed_features.h"
229            "${AOM_ROOT}/av1/encoder/superres_scale.c"
230            "${AOM_ROOT}/av1/encoder/superres_scale.h"
231            "${AOM_ROOT}/av1/encoder/svc_layercontext.c"
232            "${AOM_ROOT}/av1/encoder/svc_layercontext.h"
233            "${AOM_ROOT}/av1/encoder/temporal_filter.c"
234            "${AOM_ROOT}/av1/encoder/temporal_filter.h"
235            "${AOM_ROOT}/av1/encoder/thirdpass.c"
236            "${AOM_ROOT}/av1/encoder/thirdpass.h"
237            "${AOM_ROOT}/av1/encoder/tokenize.c"
238            "${AOM_ROOT}/av1/encoder/tokenize.h"
239            "${AOM_ROOT}/av1/encoder/tpl_model.c"
240            "${AOM_ROOT}/av1/encoder/tpl_model.h"
241            "${AOM_ROOT}/av1/encoder/tx_search.c"
242            "${AOM_ROOT}/av1/encoder/tx_search.h"
243            "${AOM_ROOT}/av1/encoder/txb_rdopt.c"
244            "${AOM_ROOT}/av1/encoder/txb_rdopt.h"
245            "${AOM_ROOT}/av1/encoder/txb_rdopt_utils.h"
246            "${AOM_ROOT}/av1/encoder/intra_mode_search.c"
247            "${AOM_ROOT}/av1/encoder/intra_mode_search.h"
248            "${AOM_ROOT}/av1/encoder/intra_mode_search_utils.h"
249            "${AOM_ROOT}/av1/encoder/wedge_utils.c"
250            "${AOM_ROOT}/av1/encoder/var_based_part.c"
251            "${AOM_ROOT}/av1/encoder/var_based_part.h"
252            "${AOM_ROOT}/av1/encoder/av1_noise_estimate.c"
253            "${AOM_ROOT}/av1/encoder/av1_noise_estimate.h"
254            "${AOM_ROOT}/third_party/fastfeat/fast.c"
255            "${AOM_ROOT}/third_party/fastfeat/fast.h"
256            "${AOM_ROOT}/third_party/fastfeat/fast_9.c"
257            "${AOM_ROOT}/third_party/fastfeat/nonmax.c"
258            "${AOM_ROOT}/third_party/vector/vector.c"
259            "${AOM_ROOT}/third_party/vector/vector.h"
260            "${AOM_ROOT}/av1/encoder/dwt.c"
261            "${AOM_ROOT}/av1/encoder/dwt.h")
262
263list(APPEND AOM_AV1_COMMON_INTRIN_SSE2
264            "${AOM_ROOT}/av1/common/x86/av1_txfm_sse2.h"
265            "${AOM_ROOT}/av1/common/x86/cfl_sse2.c"
266            "${AOM_ROOT}/av1/common/x86/convolve_2d_sse2.c"
267            "${AOM_ROOT}/av1/common/x86/convolve_sse2.c"
268            "${AOM_ROOT}/av1/common/x86/jnt_convolve_sse2.c"
269            "${AOM_ROOT}/av1/common/x86/wiener_convolve_sse2.c")
270
271list(APPEND AOM_AV1_COMMON_INTRIN_SSSE3
272            "${AOM_ROOT}/av1/common/x86/av1_inv_txfm_ssse3.c"
273            "${AOM_ROOT}/av1/common/x86/av1_inv_txfm_ssse3.h"
274            "${AOM_ROOT}/av1/common/x86/cfl_ssse3.c"
275            "${AOM_ROOT}/av1/common/x86/jnt_convolve_ssse3.c"
276            "${AOM_ROOT}/av1/common/x86/resize_ssse3.c")
277
278# Fallbacks to support Valgrind on 32-bit x86
279list(APPEND AOM_AV1_COMMON_INTRIN_SSSE3_X86
280            "${AOM_ROOT}/av1/common/x86/cdef_block_ssse3.c")
281
282list(APPEND AOM_AV1_COMMON_INTRIN_SSE4_1
283            "${AOM_ROOT}/av1/common/x86/av1_convolve_horiz_rs_sse4.c"
284            "${AOM_ROOT}/av1/common/x86/av1_convolve_scale_sse4.c"
285            "${AOM_ROOT}/av1/common/x86/av1_txfm_sse4.c"
286            "${AOM_ROOT}/av1/common/x86/av1_txfm_sse4.h"
287            "${AOM_ROOT}/av1/common/x86/cdef_block_sse4.c"
288            "${AOM_ROOT}/av1/common/x86/filterintra_sse4.c"
289            "${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_sse4.c"
290            "${AOM_ROOT}/av1/common/x86/intra_edge_sse4.c"
291            "${AOM_ROOT}/av1/common/x86/reconinter_sse4.c"
292            "${AOM_ROOT}/av1/common/x86/selfguided_sse4.c"
293            "${AOM_ROOT}/av1/common/x86/warp_plane_sse4.c")
294
295list(APPEND AOM_AV1_COMMON_INTRIN_AVX2
296            "${AOM_ROOT}/av1/common/x86/av1_inv_txfm_avx2.c"
297            "${AOM_ROOT}/av1/common/x86/av1_inv_txfm_avx2.h"
298            "${AOM_ROOT}/av1/common/x86/cdef_block_avx2.c"
299            "${AOM_ROOT}/av1/common/x86/cfl_avx2.c"
300            "${AOM_ROOT}/av1/common/x86/convolve_2d_avx2.c"
301            "${AOM_ROOT}/av1/common/x86/convolve_avx2.c"
302            "${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_avx2.c"
303            "${AOM_ROOT}/av1/common/x86/jnt_convolve_avx2.c"
304            "${AOM_ROOT}/av1/common/x86/reconinter_avx2.c"
305            "${AOM_ROOT}/av1/common/x86/selfguided_avx2.c"
306            "${AOM_ROOT}/av1/common/x86/warp_plane_avx2.c"
307            "${AOM_ROOT}/av1/common/x86/wiener_convolve_avx2.c")
308
309list(APPEND AOM_AV1_ENCODER_ASM_SSE2 "${AOM_ROOT}/av1/encoder/x86/dct_sse2.asm"
310            "${AOM_ROOT}/av1/encoder/x86/error_sse2.asm")
311
312list(APPEND AOM_AV1_ENCODER_INTRIN_SSE2
313            "${AOM_ROOT}/av1/encoder/x86/av1_fwd_txfm_sse2.c"
314            "${AOM_ROOT}/av1/encoder/x86/av1_fwd_txfm_sse2.h"
315            "${AOM_ROOT}/av1/encoder/x86/av1_k_means_sse2.c"
316            "${AOM_ROOT}/av1/encoder/x86/av1_quantize_sse2.c"
317            "${AOM_ROOT}/av1/encoder/x86/encodetxb_sse2.c"
318            "${AOM_ROOT}/av1/encoder/x86/error_intrin_sse2.c"
319            "${AOM_ROOT}/av1/encoder/x86/reconinter_enc_sse2.c"
320            "${AOM_ROOT}/av1/encoder/x86/temporal_filter_sse2.c"
321            "${AOM_ROOT}/av1/encoder/x86/wedge_utils_sse2.c")
322
323list(APPEND AOM_AV1_ENCODER_INTRIN_SSE3 "${AOM_ROOT}/av1/encoder/x86/ml_sse3.c"
324            "${AOM_ROOT}/av1/encoder/x86/ml_sse3.h")
325
326list(APPEND AOM_AV1_ENCODER_INTRIN_SSSE3
327            "${AOM_ROOT}/av1/encoder/x86/reconinter_enc_ssse3.c")
328
329list(APPEND AOM_AV1_ENCODER_ASM_SSSE3_X86_64
330            "${AOM_ROOT}/av1/encoder/x86/av1_quantize_ssse3_x86_64.asm")
331
332list(APPEND AOM_AV1_ENCODER_INTRIN_SSE4_1
333            "${AOM_ROOT}/av1/encoder/x86/av1_fwd_txfm1d_sse4.c"
334            "${AOM_ROOT}/av1/encoder/x86/av1_fwd_txfm2d_sse4.c"
335            "${AOM_ROOT}/av1/encoder/x86/encodetxb_sse4.c"
336            "${AOM_ROOT}/av1/encoder/x86/highbd_fwd_txfm_sse4.c"
337            "${AOM_ROOT}/av1/encoder/x86/rdopt_sse4.c"
338            "${AOM_ROOT}/av1/encoder/x86/pickrst_sse4.c")
339
340list(APPEND AOM_AV1_ENCODER_INTRIN_AVX2
341            "${AOM_ROOT}/av1/encoder/x86/av1_quantize_avx2.c"
342            "${AOM_ROOT}/av1/encoder/x86/error_intrin_avx2.c"
343            "${AOM_ROOT}/av1/encoder/x86/av1_fwd_txfm_avx2.h"
344            "${AOM_ROOT}/av1/encoder/x86/av1_fwd_txfm2d_avx2.c"
345            "${AOM_ROOT}/av1/encoder/x86/highbd_fwd_txfm_avx2.c"
346            "${AOM_ROOT}/av1/encoder/x86/wedge_utils_avx2.c"
347            "${AOM_ROOT}/av1/encoder/x86/encodetxb_avx2.c"
348            "${AOM_ROOT}/av1/encoder/x86/rdopt_avx2.c"
349            "${AOM_ROOT}/av1/encoder/x86/av1_k_means_avx2.c"
350            "${AOM_ROOT}/av1/encoder/x86/temporal_filter_avx2.c"
351            "${AOM_ROOT}/av1/encoder/x86/pickrst_avx2.c"
352            "${AOM_ROOT}/av1/encoder/x86/cnn_avx2.c"
353            "${AOM_ROOT}/av1/encoder/x86/ml_avx2.c")
354
355list(APPEND AOM_AV1_ENCODER_INTRIN_NEON
356            "${AOM_ROOT}/av1/encoder/arm/neon/av1_error_neon.c"
357            "${AOM_ROOT}/av1/encoder/arm/neon/av1_fwd_txfm2d_neon.c"
358            "${AOM_ROOT}/av1/encoder/arm/neon/av1_highbd_quantize_neon.c"
359            "${AOM_ROOT}/av1/encoder/arm/neon/av1_k_means_neon.c"
360            "${AOM_ROOT}/av1/encoder/arm/neon/cnn_neon.c"
361            "${AOM_ROOT}/av1/encoder/arm/neon/encodetxb_neon.c"
362            "${AOM_ROOT}/av1/encoder/arm/neon/highbd_fwd_txfm_neon.c"
363            "${AOM_ROOT}/av1/encoder/arm/neon/hybrid_fwd_txfm_neon.c"
364            "${AOM_ROOT}/av1/encoder/arm/neon/ml_neon.c"
365            "${AOM_ROOT}/av1/encoder/arm/neon/pickrst_neon.c"
366            "${AOM_ROOT}/av1/encoder/arm/neon/pickrst_neon.h"
367            "${AOM_ROOT}/av1/encoder/arm/neon/quantize_neon.c"
368            "${AOM_ROOT}/av1/encoder/arm/neon/rdopt_neon.c"
369            "${AOM_ROOT}/av1/encoder/arm/neon/reconinter_enc_neon.c"
370            "${AOM_ROOT}/av1/encoder/arm/neon/temporal_filter_neon.c"
371            "${AOM_ROOT}/av1/encoder/arm/neon/wedge_utils_neon.c")
372
373list(APPEND AOM_AV1_ENCODER_INTRIN_NEON_DOTPROD
374            "${AOM_ROOT}/av1/encoder/arm/neon/temporal_filter_neon_dotprod.c")
375
376list(APPEND AOM_AV1_ENCODER_INTRIN_SVE
377            "${AOM_ROOT}/av1/encoder/arm/neon/av1_error_sve.c"
378            "${AOM_ROOT}/av1/encoder/arm/neon/wedge_utils_sve.c")
379
380list(APPEND AOM_AV1_ENCODER_INTRIN_ARM_CRC32
381            "${AOM_ROOT}/av1/encoder/arm/crc32/hash_arm_crc32.c")
382
383list(APPEND AOM_AV1_COMMON_INTRIN_NEON
384            "${AOM_ROOT}/av1/common/arm/av1_inv_txfm_neon.c"
385            "${AOM_ROOT}/av1/common/arm/av1_inv_txfm_neon.h"
386            "${AOM_ROOT}/av1/common/arm/av1_txfm_neon.c"
387            "${AOM_ROOT}/av1/common/arm/blend_a64_hmask_neon.c"
388            "${AOM_ROOT}/av1/common/arm/blend_a64_vmask_neon.c"
389            "${AOM_ROOT}/av1/common/arm/cdef_block_neon.c"
390            "${AOM_ROOT}/av1/common/arm/cfl_neon.c"
391            "${AOM_ROOT}/av1/common/arm/compound_convolve_neon.c"
392            "${AOM_ROOT}/av1/common/arm/convolve_neon.c"
393            "${AOM_ROOT}/av1/common/arm/convolve_neon.h"
394            "${AOM_ROOT}/av1/common/arm/highbd_inv_txfm_neon.c"
395            "${AOM_ROOT}/av1/common/arm/reconinter_neon.c"
396            "${AOM_ROOT}/av1/common/arm/reconintra_neon.c"
397            "${AOM_ROOT}/av1/common/arm/resize_neon.c"
398            "${AOM_ROOT}/av1/common/arm/selfguided_neon.c"
399            "${AOM_ROOT}/av1/common/arm/warp_plane_neon.c"
400            "${AOM_ROOT}/av1/common/arm/wiener_convolve_neon.c")
401
402list(APPEND AOM_AV1_COMMON_INTRIN_NEON_DOTPROD
403            "${AOM_ROOT}/av1/common/arm/compound_convolve_neon_dotprod.c"
404            "${AOM_ROOT}/av1/common/arm/convolve_neon_dotprod.c")
405
406list(APPEND AOM_AV1_COMMON_INTRIN_NEON_I8MM
407            "${AOM_ROOT}/av1/common/arm/compound_convolve_neon_i8mm.c"
408            "${AOM_ROOT}/av1/common/arm/convolve_neon_i8mm.c"
409            "${AOM_ROOT}/av1/common/arm/warp_plane_neon_i8mm.c")
410
411list(APPEND AOM_AV1_COMMON_INTRIN_SVE
412            "${AOM_ROOT}/av1/common/arm/highbd_warp_plane_sve.c"
413            "${AOM_ROOT}/av1/common/arm/warp_plane_sve.c")
414
415list(APPEND AOM_AV1_ENCODER_INTRIN_SSE4_2
416            "${AOM_ROOT}/av1/encoder/x86/hash_sse42.c")
417
418list(APPEND AOM_AV1_COMMON_INTRIN_VSX "${AOM_ROOT}/av1/common/ppc/cfl_ppc.c")
419
420if(CONFIG_TUNE_VMAF)
421  list(APPEND AOM_AV1_ENCODER_SOURCES "${AOM_ROOT}/av1/encoder/tune_vmaf.c"
422              "${AOM_ROOT}/av1/encoder/tune_vmaf.h")
423endif()
424
425if(CONFIG_TUNE_BUTTERAUGLI)
426  list(APPEND AOM_AV1_ENCODER_SOURCES
427              "${AOM_ROOT}/av1/encoder/tune_butteraugli.c"
428              "${AOM_ROOT}/av1/encoder/tune_butteraugli.h")
429endif()
430
431if(CONFIG_SALIENCY_MAP)
432  list(APPEND AOM_AV1_ENCODER_SOURCES "${AOM_ROOT}/av1/encoder/saliency_map.c"
433              "${AOM_ROOT}/av1/encoder/saliency_map.h")
434endif()
435
436if(CONFIG_OPTICAL_FLOW_API)
437  list(APPEND AOM_AV1_ENCODER_SOURCES
438              "${AOM_ROOT}/av1/encoder/sparse_linear_solver.c"
439              "${AOM_ROOT}/av1/encoder/sparse_linear_solver.h"
440              "${AOM_ROOT}/av1/encoder/optical_flow.c"
441              "${AOM_ROOT}/av1/encoder/optical_flow.h")
442endif()
443
444if(CONFIG_AV1_TEMPORAL_DENOISING)
445  list(APPEND AOM_AV1_ENCODER_SOURCES
446              "${AOM_ROOT}/av1/encoder/av1_temporal_denoiser.c"
447              "${AOM_ROOT}/av1/encoder/av1_temporal_denoiser.h")
448
449  list(APPEND AOM_AV1_ENCODER_INTRIN_SSE2
450              "${AOM_ROOT}/av1/encoder/x86/av1_temporal_denoiser_sse2.c")
451
452  list(APPEND AOM_AV1_ENCODER_INTRIN_NEON
453              "${AOM_ROOT}/av1/encoder/arm/neon/av1_temporal_denoiser_neon.c")
454endif()
455
456if(CONFIG_AV1_HIGHBITDEPTH)
457  list(APPEND AOM_AV1_COMMON_INTRIN_SSSE3
458              "${AOM_ROOT}/av1/common/x86/highbd_convolve_2d_ssse3.c"
459              "${AOM_ROOT}/av1/common/x86/highbd_wiener_convolve_ssse3.c"
460              "${AOM_ROOT}/av1/common/x86/reconinter_ssse3.c")
461
462  list(APPEND AOM_AV1_COMMON_INTRIN_SSE4_1
463              "${AOM_ROOT}/av1/common/x86/highbd_convolve_2d_sse4.c"
464              "${AOM_ROOT}/av1/common/x86/highbd_jnt_convolve_sse4.c"
465              "${AOM_ROOT}/av1/common/x86/highbd_warp_plane_sse4.c")
466
467  list(APPEND AOM_AV1_COMMON_INTRIN_AVX2
468              "${AOM_ROOT}/av1/common/x86/highbd_convolve_2d_avx2.c"
469              "${AOM_ROOT}/av1/common/x86/highbd_jnt_convolve_avx2.c"
470              "${AOM_ROOT}/av1/common/x86/highbd_wiener_convolve_avx2.c"
471              "${AOM_ROOT}/av1/common/x86/highbd_warp_affine_avx2.c")
472
473  list(APPEND AOM_AV1_COMMON_INTRIN_NEON
474              "${AOM_ROOT}/av1/common/arm/highbd_compound_convolve_neon.c"
475              "${AOM_ROOT}/av1/common/arm/highbd_convolve_horiz_rs_neon.c"
476              "${AOM_ROOT}/av1/common/arm/highbd_convolve_neon.c"
477              "${AOM_ROOT}/av1/common/arm/highbd_convolve_scale_neon.c"
478              "${AOM_ROOT}/av1/common/arm/highbd_reconinter_neon.c"
479              "${AOM_ROOT}/av1/common/arm/highbd_reconintra_neon.c"
480              "${AOM_ROOT}/av1/common/arm/highbd_wiener_convolve_neon.c")
481  # TODO(aomedia:349455146): enable this for armv7 after SIGBUS is fixed.
482  if(AOM_ARCH_AARCH64)
483    list(APPEND AOM_AV1_COMMON_INTRIN_NEON
484                "${AOM_ROOT}/av1/common/arm/highbd_warp_plane_neon.c")
485  endif()
486
487  list(APPEND AOM_AV1_COMMON_INTRIN_SVE2
488              "${AOM_ROOT}/av1/common/arm/highbd_compound_convolve_sve2.c"
489              "${AOM_ROOT}/av1/common/arm/highbd_convolve_sve2.c")
490
491  list(APPEND AOM_AV1_ENCODER_INTRIN_SSE2
492              "${AOM_ROOT}/av1/encoder/x86/highbd_block_error_intrin_sse2.c"
493              "${AOM_ROOT}/av1/encoder/x86/highbd_temporal_filter_sse2.c")
494
495  list(APPEND AOM_AV1_ENCODER_INTRIN_SSE4_1
496              "${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_sse4.c")
497
498  list(APPEND AOM_AV1_ENCODER_INTRIN_AVX2
499              "${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_avx2.c"
500              "${AOM_ROOT}/av1/encoder/x86/highbd_block_error_intrin_avx2.c"
501              "${AOM_ROOT}/av1/encoder/x86/highbd_temporal_filter_avx2.c")
502
503  list(APPEND AOM_AV1_ENCODER_INTRIN_NEON
504              "${AOM_ROOT}/av1/encoder/arm/neon/highbd_pickrst_neon.c"
505              "${AOM_ROOT}/av1/encoder/arm/neon/highbd_rdopt_neon.c"
506              "${AOM_ROOT}/av1/encoder/arm/neon/highbd_temporal_filter_neon.c")
507endif()
508
509if(CONFIG_ACCOUNTING)
510  list(APPEND AOM_AV1_DECODER_SOURCES "${AOM_ROOT}/av1/decoder/accounting.c"
511              "${AOM_ROOT}/av1/decoder/accounting.h")
512endif()
513
514if(CONFIG_INSPECTION)
515  list(APPEND AOM_AV1_DECODER_SOURCES "${AOM_ROOT}/av1/decoder/inspection.c"
516              "${AOM_ROOT}/av1/decoder/inspection.h")
517endif()
518
519if(CONFIG_INTERNAL_STATS)
520  list(APPEND AOM_AV1_ENCODER_SOURCES "${AOM_ROOT}/av1/encoder/blockiness.c")
521endif()
522
523if(CONFIG_REALTIME_ONLY)
524  list(REMOVE_ITEM AOM_AV1_ENCODER_INTRIN_SSE4_1
525                   "${AOM_ROOT}/av1/encoder/x86/pickrst_sse4.c")
526
527  list(REMOVE_ITEM AOM_AV1_ENCODER_INTRIN_AVX2
528                   "${AOM_ROOT}/av1/encoder/x86/pickrst_avx2.c"
529                   "${AOM_ROOT}/av1/encoder/x86/cnn_avx2.c")
530
531  list(REMOVE_ITEM AOM_AV1_ENCODER_INTRIN_NEON
532                   "${AOM_ROOT}/av1/encoder/arm/neon/cnn_neon.c")
533
534  list(REMOVE_ITEM AOM_AV1_ENCODER_SOURCES
535                   "${AOM_ROOT}/av1/encoder/cnn.c"
536                   "${AOM_ROOT}/av1/encoder/cnn.h"
537                   "${AOM_ROOT}/av1/encoder/firstpass.c"
538                   "${AOM_ROOT}/av1/encoder/firstpass.h"
539                   "${AOM_ROOT}/av1/encoder/global_motion.c"
540                   "${AOM_ROOT}/av1/encoder/global_motion.h"
541                   "${AOM_ROOT}/av1/encoder/global_motion_facade.c"
542                   "${AOM_ROOT}/av1/encoder/global_motion_facade.h"
543                   "${AOM_ROOT}/av1/encoder/gop_structure.c"
544                   "${AOM_ROOT}/av1/encoder/gop_structure.h"
545                   "${AOM_ROOT}/av1/encoder/misc_model_weights.h"
546                   "${AOM_ROOT}/av1/encoder/partition_cnn_weights.h"
547                   "${AOM_ROOT}/av1/encoder/partition_model_weights.h"
548                   "${AOM_ROOT}/av1/encoder/pass2_strategy.c"
549                   "${AOM_ROOT}/av1/encoder/picklpf.h"
550                   "${AOM_ROOT}/av1/encoder/pickrst.c"
551                   "${AOM_ROOT}/av1/encoder/temporal_filter.c"
552                   "${AOM_ROOT}/av1/encoder/temporal_filter.h"
553                   "${AOM_ROOT}/av1/encoder/tpl_model.c"
554                   "${AOM_ROOT}/av1/encoder/tpl_model.h")
555endif()
556
557# Setup AV1 common/decoder/encoder targets. The libaom target must exist before
558# this function is called.
559function(setup_av1_targets)
560  add_library(aom_av1_common OBJECT ${AOM_AV1_COMMON_SOURCES})
561  list(APPEND AOM_LIB_TARGETS aom_av1_common)
562  target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_av1_common>)
563  if(BUILD_SHARED_LIBS)
564    target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_av1_common>)
565  endif()
566
567  if(CONFIG_AV1_DECODER)
568    add_library(aom_av1_decoder OBJECT ${AOM_AV1_DECODER_SOURCES})
569    set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_decoder)
570    target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_av1_decoder>)
571    if(BUILD_SHARED_LIBS)
572      target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_av1_decoder>)
573    endif()
574  endif()
575
576  if(CONFIG_AV1_ENCODER)
577    add_library(aom_av1_encoder OBJECT ${AOM_AV1_ENCODER_SOURCES})
578    set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_encoder)
579    target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_av1_encoder>)
580    if(BUILD_SHARED_LIBS)
581      target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_av1_encoder>)
582    endif()
583  endif()
584
585  if(HAVE_SSE2)
586    require_compiler_flag_nomsvc("-msse2" NO)
587    add_intrinsics_object_library("-msse2" "sse2" "aom_av1_common"
588                                  "AOM_AV1_COMMON_INTRIN_SSE2")
589    if(CONFIG_AV1_DECODER)
590      if(AOM_AV1_DECODER_ASM_SSE2)
591        add_asm_library("aom_av1_decoder_sse2" "AOM_AV1_DECODER_ASM_SSE2")
592      endif()
593
594      if(AOM_AV1_DECODER_INTRIN_SSE2)
595        add_intrinsics_object_library("-msse2" "sse2" "aom_av1_decoder"
596                                      "AOM_AV1_DECODER_INTRIN_SSE2")
597      endif()
598    endif()
599
600    if(CONFIG_AV1_ENCODER)
601      add_asm_library("aom_av1_encoder_sse2" "AOM_AV1_ENCODER_ASM_SSE2")
602      add_intrinsics_object_library("-msse2" "sse2" "aom_av1_encoder"
603                                    "AOM_AV1_ENCODER_INTRIN_SSE2")
604    endif()
605  endif()
606
607  if(HAVE_SSE3)
608    require_compiler_flag_nomsvc("-msse3" NO)
609    if(CONFIG_AV1_ENCODER)
610      add_intrinsics_object_library("-msse3" "sse3" "aom_av1_encoder"
611                                    "AOM_AV1_ENCODER_INTRIN_SSE3")
612    endif()
613  endif()
614
615  if(HAVE_SSSE3)
616    require_compiler_flag_nomsvc("-mssse3" NO)
617    add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_common"
618                                  "AOM_AV1_COMMON_INTRIN_SSSE3")
619    if(AOM_ARCH_X86)
620      add_intrinsics_object_library("-mssse3" "ssse3_x86" "aom_av1_common"
621                                    "AOM_AV1_COMMON_INTRIN_SSSE3_X86")
622    endif()
623
624    if(CONFIG_AV1_DECODER)
625      if(AOM_AV1_DECODER_INTRIN_SSSE3)
626        add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_decoder"
627                                      "AOM_AV1_DECODER_INTRIN_SSSE3")
628      endif()
629    endif()
630    if(CONFIG_AV1_ENCODER)
631      if(AOM_AV1_ENCODER_INTRIN_SSSE3)
632        add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_encoder"
633                                      "AOM_AV1_ENCODER_INTRIN_SSSE3")
634      endif()
635    endif()
636  endif()
637
638  if(HAVE_SSE4_1)
639    require_compiler_flag_nomsvc("-msse4.1" NO)
640    add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_common"
641                                  "AOM_AV1_COMMON_INTRIN_SSE4_1")
642
643    if(CONFIG_AV1_ENCODER)
644      if("${AOM_TARGET_CPU}" STREQUAL "x86_64")
645        add_asm_library("aom_av1_encoder_ssse3"
646                        "AOM_AV1_ENCODER_ASM_SSSE3_X86_64")
647      endif()
648
649      if(AOM_AV1_ENCODER_INTRIN_SSE4_1)
650        add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_encoder"
651                                      "AOM_AV1_ENCODER_INTRIN_SSE4_1")
652      endif()
653    endif()
654  endif()
655
656  if(HAVE_SSE4_2)
657    require_compiler_flag_nomsvc("-msse4.2" NO)
658    if(CONFIG_AV1_ENCODER)
659      if(AOM_AV1_ENCODER_INTRIN_SSE4_2)
660        add_intrinsics_object_library("-msse4.2" "sse42" "aom_av1_encoder"
661                                      "AOM_AV1_ENCODER_INTRIN_SSE4_2")
662      endif()
663    endif()
664  endif()
665
666  if(HAVE_AVX2)
667    require_compiler_flag_nomsvc("-mavx2" NO)
668    add_intrinsics_object_library("-mavx2" "avx2" "aom_av1_common"
669                                  "AOM_AV1_COMMON_INTRIN_AVX2")
670
671    if(CONFIG_AV1_ENCODER)
672      add_intrinsics_object_library("-mavx2" "avx2" "aom_av1_encoder"
673                                    "AOM_AV1_ENCODER_INTRIN_AVX2")
674    endif()
675  endif()
676
677  if(HAVE_NEON)
678    add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}" "neon"
679                                  "aom_av1_common" "AOM_AV1_COMMON_INTRIN_NEON")
680    if(CONFIG_AV1_ENCODER)
681      add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}" "neon"
682                                    "aom_av1_encoder"
683                                    "AOM_AV1_ENCODER_INTRIN_NEON")
684    endif()
685  endif()
686
687  if(HAVE_ARM_CRC32)
688    if(CONFIG_AV1_ENCODER)
689      add_intrinsics_object_library("${AOM_ARM_CRC32_FLAG}" "arm_crc32"
690                                    "aom_av1_encoder"
691                                    "AOM_AV1_ENCODER_INTRIN_ARM_CRC32")
692    endif()
693  endif()
694
695  if(HAVE_NEON_DOTPROD)
696    add_intrinsics_object_library("${AOM_NEON_DOTPROD_FLAG}" "neon_dotprod"
697                                  "aom_av1_common"
698                                  "AOM_AV1_COMMON_INTRIN_NEON_DOTPROD")
699    if(CONFIG_AV1_ENCODER)
700      add_intrinsics_object_library("${AOM_NEON_DOTPROD_FLAG}" "neon_dotprod"
701                                    "aom_av1_encoder"
702                                    "AOM_AV1_ENCODER_INTRIN_NEON_DOTPROD")
703    endif()
704  endif()
705
706  if(HAVE_NEON_I8MM)
707    add_intrinsics_object_library("${AOM_NEON_I8MM_FLAG}" "neon_i8mm"
708                                  "aom_av1_common"
709                                  "AOM_AV1_COMMON_INTRIN_NEON_I8MM")
710  endif()
711
712  if(HAVE_SVE)
713    add_intrinsics_object_library("${AOM_SVE_FLAG}" "sve" "aom_av1_common"
714                                  "AOM_AV1_COMMON_INTRIN_SVE")
715    if(CONFIG_AV1_ENCODER)
716      add_intrinsics_object_library("${AOM_SVE_FLAG}" "sve" "aom_av1_encoder"
717                                    "AOM_AV1_ENCODER_INTRIN_SVE")
718    endif()
719  endif()
720
721  if(HAVE_SVE2)
722    add_intrinsics_object_library("${AOM_SVE2_FLAG}" "sve2" "aom_av1_common"
723                                  "AOM_AV1_COMMON_INTRIN_SVE2")
724  endif()
725
726  if(HAVE_VSX)
727    if(AOM_AV1_COMMON_INTRIN_VSX)
728      add_intrinsics_object_library("-mvsx -maltivec" "vsx" "aom_av1_common"
729                                    "AOM_AV1_COMMON_INTRIN_VSX")
730    endif()
731  endif()
732
733  # Pass the new lib targets up to the parent scope instance of
734  # $AOM_LIB_TARGETS.
735  set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} PARENT_SCOPE)
736endfunction()
737