blob: 84f141ed3c01a7a2b633af1e219cfb9b6781fbcb [file] [log] [blame]
Tom Finegan44916e72017-02-27 14:12:31 -08001##
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
5## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6## was not distributed with this source code in the LICENSE file, you can
7## obtain it at www.aomedia.org/license/software. If the Alliance for Open
8## Media Patent License 1.0 was not distributed with this source code in the
9## PATENTS file, you can obtain it at www.aomedia.org/license/patent.
10##
Tom Finegan17ccaec2017-05-25 17:47:42 -070011if (NOT AOM_AV1_AV1_CMAKE_)
12set(AOM_AV1_AV1_CMAKE_ 1)
13
Tom Finegan44916e72017-02-27 14:12:31 -080014set(AOM_AV1_COMMON_SOURCES
15 "${AOM_ROOT}/av1/av1_iface_common.h"
16 "${AOM_ROOT}/av1/common/alloccommon.c"
17 "${AOM_ROOT}/av1/common/alloccommon.h"
18 # TODO(tomfinegan): Foward transform belongs in encoder.
19 "${AOM_ROOT}/av1/common/av1_fwd_txfm1d.c"
20 "${AOM_ROOT}/av1/common/av1_fwd_txfm1d.h"
21 "${AOM_ROOT}/av1/common/av1_fwd_txfm2d.c"
Sarah Parkereec47e62017-05-15 20:49:22 -070022 "${AOM_ROOT}/av1/common/av1_fwd_txfm1d_cfg.h"
Tom Finegan44916e72017-02-27 14:12:31 -080023 "${AOM_ROOT}/av1/common/av1_inv_txfm1d.c"
24 "${AOM_ROOT}/av1/common/av1_inv_txfm1d.h"
25 "${AOM_ROOT}/av1/common/av1_inv_txfm2d.c"
Sarah Parkereec47e62017-05-15 20:49:22 -070026 "${AOM_ROOT}/av1/common/av1_inv_txfm1d_cfg.h"
Tom Finegan44916e72017-02-27 14:12:31 -080027 "${AOM_ROOT}/av1/common/av1_loopfilter.c"
28 "${AOM_ROOT}/av1/common/av1_loopfilter.h"
29 "${AOM_ROOT}/av1/common/av1_txfm.h"
30 "${AOM_ROOT}/av1/common/blockd.c"
31 "${AOM_ROOT}/av1/common/blockd.h"
32 "${AOM_ROOT}/av1/common/common.h"
33 "${AOM_ROOT}/av1/common/common_data.h"
34 "${AOM_ROOT}/av1/common/convolve.c"
35 "${AOM_ROOT}/av1/common/convolve.h"
36 "${AOM_ROOT}/av1/common/debugmodes.c"
37 "${AOM_ROOT}/av1/common/entropy.c"
38 "${AOM_ROOT}/av1/common/entropy.h"
39 "${AOM_ROOT}/av1/common/entropymode.c"
40 "${AOM_ROOT}/av1/common/entropymode.h"
41 "${AOM_ROOT}/av1/common/entropymv.c"
42 "${AOM_ROOT}/av1/common/entropymv.h"
43 "${AOM_ROOT}/av1/common/enums.h"
44 "${AOM_ROOT}/av1/common/filter.c"
45 "${AOM_ROOT}/av1/common/filter.h"
46 "${AOM_ROOT}/av1/common/frame_buffers.c"
47 "${AOM_ROOT}/av1/common/frame_buffers.h"
48 "${AOM_ROOT}/av1/common/idct.c"
49 "${AOM_ROOT}/av1/common/idct.h"
50 "${AOM_ROOT}/av1/common/mv.h"
51 "${AOM_ROOT}/av1/common/mvref_common.c"
52 "${AOM_ROOT}/av1/common/mvref_common.h"
53 "${AOM_ROOT}/av1/common/odintrin.c"
54 "${AOM_ROOT}/av1/common/odintrin.h"
55 "${AOM_ROOT}/av1/common/onyxc_int.h"
56 "${AOM_ROOT}/av1/common/pred_common.c"
57 "${AOM_ROOT}/av1/common/pred_common.h"
58 "${AOM_ROOT}/av1/common/quant_common.c"
59 "${AOM_ROOT}/av1/common/quant_common.h"
60 "${AOM_ROOT}/av1/common/reconinter.c"
61 "${AOM_ROOT}/av1/common/reconinter.h"
62 "${AOM_ROOT}/av1/common/reconintra.c"
63 "${AOM_ROOT}/av1/common/reconintra.h"
Fergus Simpsond0565002017-03-27 16:51:52 -070064 "${AOM_ROOT}/av1/common/resize.c"
65 "${AOM_ROOT}/av1/common/resize.h"
Tom Finegan44916e72017-02-27 14:12:31 -080066 "${AOM_ROOT}/av1/common/scale.c"
67 "${AOM_ROOT}/av1/common/scale.h"
68 "${AOM_ROOT}/av1/common/scan.c"
69 "${AOM_ROOT}/av1/common/scan.h"
70 "${AOM_ROOT}/av1/common/seg_common.c"
71 "${AOM_ROOT}/av1/common/seg_common.h"
72 "${AOM_ROOT}/av1/common/thread_common.c"
73 "${AOM_ROOT}/av1/common/thread_common.h"
74 "${AOM_ROOT}/av1/common/tile_common.c"
75 "${AOM_ROOT}/av1/common/tile_common.h")
76
77set(AOM_AV1_DECODER_SOURCES
78 "${AOM_ROOT}/av1/av1_dx_iface.c"
79 "${AOM_ROOT}/av1/decoder/decodeframe.c"
80 "${AOM_ROOT}/av1/decoder/decodeframe.h"
81 "${AOM_ROOT}/av1/decoder/decodemv.c"
82 "${AOM_ROOT}/av1/decoder/decodemv.h"
83 "${AOM_ROOT}/av1/decoder/decoder.c"
84 "${AOM_ROOT}/av1/decoder/decoder.h"
85 "${AOM_ROOT}/av1/decoder/detokenize.c"
86 "${AOM_ROOT}/av1/decoder/detokenize.h"
87 "${AOM_ROOT}/av1/decoder/dsubexp.c"
88 "${AOM_ROOT}/av1/decoder/dsubexp.h"
89 "${AOM_ROOT}/av1/decoder/dthread.c"
90 "${AOM_ROOT}/av1/decoder/dthread.h")
91
92set(AOM_AV1_ENCODER_SOURCES
93 "${AOM_ROOT}/av1/av1_cx_iface.c"
94 "${AOM_ROOT}/av1/encoder/aq_complexity.c"
95 "${AOM_ROOT}/av1/encoder/aq_complexity.h"
96 "${AOM_ROOT}/av1/encoder/aq_cyclicrefresh.c"
97 "${AOM_ROOT}/av1/encoder/aq_cyclicrefresh.h"
98 "${AOM_ROOT}/av1/encoder/aq_variance.c"
99 "${AOM_ROOT}/av1/encoder/aq_variance.h"
100 "${AOM_ROOT}/av1/encoder/av1_quantize.c"
101 "${AOM_ROOT}/av1/encoder/av1_quantize.h"
102 "${AOM_ROOT}/av1/encoder/bitstream.c"
103 "${AOM_ROOT}/av1/encoder/bitstream.h"
104 "${AOM_ROOT}/av1/encoder/block.h"
105 "${AOM_ROOT}/av1/encoder/context_tree.c"
106 "${AOM_ROOT}/av1/encoder/context_tree.h"
107 "${AOM_ROOT}/av1/encoder/cost.c"
108 "${AOM_ROOT}/av1/encoder/cost.h"
109 "${AOM_ROOT}/av1/encoder/dct.c"
110 "${AOM_ROOT}/av1/encoder/encodeframe.c"
111 "${AOM_ROOT}/av1/encoder/encodeframe.h"
112 "${AOM_ROOT}/av1/encoder/encodemb.c"
113 "${AOM_ROOT}/av1/encoder/encodemb.h"
114 "${AOM_ROOT}/av1/encoder/encodemv.c"
115 "${AOM_ROOT}/av1/encoder/encodemv.h"
116 "${AOM_ROOT}/av1/encoder/encoder.c"
117 "${AOM_ROOT}/av1/encoder/encoder.h"
118 "${AOM_ROOT}/av1/encoder/ethread.c"
119 "${AOM_ROOT}/av1/encoder/ethread.h"
120 "${AOM_ROOT}/av1/encoder/extend.c"
121 "${AOM_ROOT}/av1/encoder/extend.h"
122 "${AOM_ROOT}/av1/encoder/firstpass.c"
123 "${AOM_ROOT}/av1/encoder/firstpass.h"
124 "${AOM_ROOT}/av1/encoder/hybrid_fwd_txfm.c"
125 "${AOM_ROOT}/av1/encoder/hybrid_fwd_txfm.h"
126 "${AOM_ROOT}/av1/encoder/lookahead.c"
127 "${AOM_ROOT}/av1/encoder/lookahead.h"
128 "${AOM_ROOT}/av1/encoder/mbgraph.c"
129 "${AOM_ROOT}/av1/encoder/mbgraph.h"
130 "${AOM_ROOT}/av1/encoder/mcomp.c"
131 "${AOM_ROOT}/av1/encoder/mcomp.h"
132 "${AOM_ROOT}/av1/encoder/picklpf.c"
133 "${AOM_ROOT}/av1/encoder/picklpf.h"
134 "${AOM_ROOT}/av1/encoder/ratectrl.c"
135 "${AOM_ROOT}/av1/encoder/ratectrl.h"
136 "${AOM_ROOT}/av1/encoder/rd.c"
137 "${AOM_ROOT}/av1/encoder/rd.h"
138 "${AOM_ROOT}/av1/encoder/rdopt.c"
139 "${AOM_ROOT}/av1/encoder/rdopt.h"
Tom Finegan44916e72017-02-27 14:12:31 -0800140 "${AOM_ROOT}/av1/encoder/segmentation.c"
141 "${AOM_ROOT}/av1/encoder/segmentation.h"
142 "${AOM_ROOT}/av1/encoder/speed_features.c"
143 "${AOM_ROOT}/av1/encoder/speed_features.h"
144 "${AOM_ROOT}/av1/encoder/subexp.c"
145 "${AOM_ROOT}/av1/encoder/subexp.h"
146 "${AOM_ROOT}/av1/encoder/temporal_filter.c"
147 "${AOM_ROOT}/av1/encoder/temporal_filter.h"
148 "${AOM_ROOT}/av1/encoder/tokenize.c"
149 "${AOM_ROOT}/av1/encoder/tokenize.h"
150 "${AOM_ROOT}/av1/encoder/treewriter.c"
Thomas Daede8ea33192017-05-10 15:40:06 -0700151 "${AOM_ROOT}/av1/encoder/treewriter.h")
Tom Finegan44916e72017-02-27 14:12:31 -0800152
Tom Finegan5a24dc82017-04-13 14:11:54 -0700153set(AOM_AV1_COMMON_INTRIN_SSE2
Tom Finegan44916e72017-02-27 14:12:31 -0800154 "${AOM_ROOT}/av1/common/x86/idct_intrin_sse2.c")
155
Tom Finegan5a24dc82017-04-13 14:11:54 -0700156set(AOM_AV1_COMMON_INTRIN_SSSE3
Tom Finegan44916e72017-02-27 14:12:31 -0800157 "${AOM_ROOT}/av1/common/x86/av1_convolve_ssse3.c")
158
Tom Finegan5a24dc82017-04-13 14:11:54 -0700159set(AOM_AV1_COMMON_INTRIN_SSE4_1
Tom Finegan44916e72017-02-27 14:12:31 -0800160 "${AOM_ROOT}/av1/common/x86/av1_fwd_txfm1d_sse4.c"
161 "${AOM_ROOT}/av1/common/x86/av1_fwd_txfm2d_sse4.c")
162
Tom Finegan5a24dc82017-04-13 14:11:54 -0700163set(AOM_AV1_COMMON_INTRIN_AVX2
Tom Finegan44916e72017-02-27 14:12:31 -0800164 "${AOM_ROOT}/av1/common/x86/hybrid_inv_txfm_avx2.c")
165
Tom Finegan5a24dc82017-04-13 14:11:54 -0700166set(AOM_AV1_COMMON_INTRIN_DSPR2
Tom Finegand148c962017-04-04 14:48:26 -0700167 "${AOM_ROOT}/av1/common/mips/dspr2/av1_itrans16_dspr2.c"
168 "${AOM_ROOT}/av1/common/mips/dspr2/av1_itrans4_dspr2.c"
169 "${AOM_ROOT}/av1/common/mips/dspr2/av1_itrans8_dspr2.c")
170
Tom Finegan5a24dc82017-04-13 14:11:54 -0700171set(AOM_AV1_COMMON_INTRIN_MSA
Tom Finegand148c962017-04-04 14:48:26 -0700172 "${AOM_ROOT}/av1/common/mips/msa/av1_idct16x16_msa.c"
173 "${AOM_ROOT}/av1/common/mips/msa/av1_idct4x4_msa.c"
174 "${AOM_ROOT}/av1/common/mips/msa/av1_idct8x8_msa.c")
175
Tom Finegan5a24dc82017-04-13 14:11:54 -0700176set(AOM_AV1_ENCODER_ASM_SSE2
Tom Finegan44916e72017-02-27 14:12:31 -0800177 "${AOM_ROOT}/av1/encoder/x86/dct_sse2.asm"
178 "${AOM_ROOT}/av1/encoder/x86/error_sse2.asm"
179 "${AOM_ROOT}/av1/encoder/x86/temporal_filter_apply_sse2.asm")
180
Tom Finegan5a24dc82017-04-13 14:11:54 -0700181set(AOM_AV1_ENCODER_INTRIN_SSE2
Tom Finegan44916e72017-02-27 14:12:31 -0800182 "${AOM_ROOT}/av1/encoder/x86/dct_intrin_sse2.c"
183 "${AOM_ROOT}/av1/encoder/x86/highbd_block_error_intrin_sse2.c"
184 "${AOM_ROOT}/av1/encoder/x86/av1_quantize_sse2.c")
185
Tom Finegan5a24dc82017-04-13 14:11:54 -0700186set(AOM_AV1_ENCODER_ASM_SSSE3_X86_64
Tom Finegan44916e72017-02-27 14:12:31 -0800187 "${AOM_ROOT}/av1/encoder/x86/av1_quantize_ssse3_x86_64.asm")
188
Tom Finegan5a24dc82017-04-13 14:11:54 -0700189set(AOM_AV1_ENCODER_INTRIN_SSSE3
Tom Finegan44916e72017-02-27 14:12:31 -0800190 "${AOM_ROOT}/av1/encoder/x86/dct_ssse3.c")
191
Tom Finegan5a24dc82017-04-13 14:11:54 -0700192set(AOM_AV1_ENCODER_INTRIN_AVX2
Tom Finegan3613c512017-06-15 16:03:09 -0700193 "${AOM_ROOT}/av1/encoder/x86/av1_quantize_avx2.c"
Tom Finegan44916e72017-02-27 14:12:31 -0800194 "${AOM_ROOT}/av1/encoder/x86/error_intrin_avx2.c"
195 "${AOM_ROOT}/av1/encoder/x86/hybrid_fwd_txfm_avx2.c")
Tom Finegan5a24dc82017-04-13 14:11:54 -0700196set(AOM_AV1_ENCODER_INTRIN_NEON
Tom Finegan5a49c6c2017-03-17 08:56:59 -0700197 "${AOM_ROOT}/av1/encoder/arm/neon/quantize_neon.c")
198
Tom Finegan5a24dc82017-04-13 14:11:54 -0700199set(AOM_AV1_ENCODER_INTRIN_MSA
Tom Finegand148c962017-04-04 14:48:26 -0700200 "${AOM_ROOT}/av1/encoder/mips/msa/error_msa.c"
201 "${AOM_ROOT}/av1/encoder/mips/msa/fdct16x16_msa.c"
202 "${AOM_ROOT}/av1/encoder/mips/msa/fdct4x4_msa.c"
203 "${AOM_ROOT}/av1/encoder/mips/msa/fdct8x8_msa.c"
204 "${AOM_ROOT}/av1/encoder/mips/msa/fdct_msa.h"
205 "${AOM_ROOT}/av1/encoder/mips/msa/temporal_filter_msa.c")
206
Sebastien Alaiwan71e87842017-04-12 16:03:28 +0200207if (CONFIG_HIGHBITDEPTH)
Tom Finegan5a24dc82017-04-13 14:11:54 -0700208 set(AOM_AV1_COMMON_INTRIN_SSE4_1
209 ${AOM_AV1_COMMON_INTRIN_SSE4_1}
Tom Finegan7bb58b12017-03-02 21:11:36 -0800210 "${AOM_ROOT}/av1/common/x86/av1_highbd_convolve_sse4.c"
211 "${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_sse4.c")
212
Tom Finegan5a24dc82017-04-13 14:11:54 -0700213 set(AOM_AV1_COMMON_INTRIN_AVX2
214 ${AOM_AV1_COMMON_INTRIN_AVX2}
Tom Finegan7bb58b12017-03-02 21:11:36 -0800215 "${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_avx2.c")
216
Tom Finegan5a24dc82017-04-13 14:11:54 -0700217 set(AOM_AV1_ENCODER_INTRIN_SSE4_1
218 ${AOM_AV1_ENCODER_INTRIN_SSE4_1}
Tom Finegan7bb58b12017-03-02 21:11:36 -0800219 "${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_sse4.c"
220 "${AOM_ROOT}/av1/encoder/x86/highbd_fwd_txfm_sse4.c")
Tom Finegan5a49c6c2017-03-17 08:56:59 -0700221else ()
Tom Finegan5a24dc82017-04-13 14:11:54 -0700222 set(AOM_AV1_COMMON_INTRIN_NEON
223 ${AOM_AV1_COMMON_INTRIN_NEON}
Tom Finegan345e48c2017-04-28 10:00:04 -0700224 "${AOM_ROOT}/av1/encoder/arm/neon/dct_neon.c"
Tom Finegan5a49c6c2017-03-17 08:56:59 -0700225 "${AOM_ROOT}/av1/common/arm/neon/iht4x4_add_neon.c"
226 "${AOM_ROOT}/av1/common/arm/neon/iht8x8_add_neon.c")
Tom Finegan345e48c2017-04-28 10:00:04 -0700227
228 set(AOM_AV1_ENCODER_INTRIN_NEON
229 ${AOM_AV1_ENCODER_INTRIN_NEON}
230 "${AOM_ROOT}/av1/encoder/arm/neon/error_neon.c")
Tom Finegan7bb58b12017-03-02 21:11:36 -0800231endif ()
232
Tom Finegan44916e72017-02-27 14:12:31 -0800233if (CONFIG_CDEF)
234 set(AOM_AV1_COMMON_SOURCES
235 ${AOM_AV1_COMMON_SOURCES}
236 "${AOM_ROOT}/av1/common/clpf.c"
Tom Fineganb4875822017-03-02 18:33:31 -0800237 "${AOM_ROOT}/av1/common/clpf.h"
238 "${AOM_ROOT}/av1/common/clpf_simd.h"
Steinar Midtskogen8ff52fc2017-04-04 12:29:19 +0200239 "${AOM_ROOT}/av1/common/cdef_simd.h"
Steinar Midtskogena9d41e82017-03-17 12:48:15 +0100240 "${AOM_ROOT}/av1/common/cdef.c"
241 "${AOM_ROOT}/av1/common/cdef.h"
Tom Fineganb4875822017-03-02 18:33:31 -0800242 "${AOM_ROOT}/av1/common/od_dering.c"
Steinar Midtskogenb8ff6aa2017-03-25 18:52:22 +0100243 "${AOM_ROOT}/av1/common/od_dering.h"
244 "${AOM_ROOT}/av1/common/od_dering_simd.h")
Tom Finegan44916e72017-02-27 14:12:31 -0800245
246 set(AOM_AV1_ENCODER_SOURCES
247 ${AOM_AV1_ENCODER_SOURCES}
Steinar Midtskogena9d41e82017-03-17 12:48:15 +0100248 "${AOM_ROOT}/av1/encoder/pickcdef.c")
Tom Finegan44916e72017-02-27 14:12:31 -0800249
Tom Finegan5a24dc82017-04-13 14:11:54 -0700250 set(AOM_AV1_COMMON_INTRIN_SSE2
251 ${AOM_AV1_COMMON_INTRIN_SSE2}
Steinar Midtskogenb8ff6aa2017-03-25 18:52:22 +0100252 "${AOM_ROOT}/av1/common/clpf_sse2.c"
253 "${AOM_ROOT}/av1/common/od_dering_sse2.c")
Tom Finegan44916e72017-02-27 14:12:31 -0800254
Tom Finegan5a24dc82017-04-13 14:11:54 -0700255 set(AOM_AV1_COMMON_INTRIN_SSSE3
256 ${AOM_AV1_COMMON_INTRIN_SSSE3}
Steinar Midtskogenb8ff6aa2017-03-25 18:52:22 +0100257 "${AOM_ROOT}/av1/common/clpf_ssse3.c"
258 "${AOM_ROOT}/av1/common/od_dering_ssse3.c")
Tom Finegan44916e72017-02-27 14:12:31 -0800259
Tom Finegan5a24dc82017-04-13 14:11:54 -0700260 set(AOM_AV1_COMMON_INTRIN_SSE4_1
261 ${AOM_AV1_COMMON_INTRIN_SSE4_1}
Steinar Midtskogenb8ff6aa2017-03-25 18:52:22 +0100262 "${AOM_ROOT}/av1/common/clpf_sse4.c"
263 "${AOM_ROOT}/av1/common/od_dering_sse4.c")
Tom Finegan44916e72017-02-27 14:12:31 -0800264
Tom Finegan5a24dc82017-04-13 14:11:54 -0700265 set(AOM_AV1_COMMON_INTRIN_NEON
266 ${AOM_AV1_COMMON_INTRIN_NEON}
Steinar Midtskogenb8ff6aa2017-03-25 18:52:22 +0100267 "${AOM_ROOT}/av1/common/clpf_neon.c"
268 "${AOM_ROOT}/av1/common/od_dering_neon.c")
Tom Finegan44916e72017-02-27 14:12:31 -0800269endif ()
270
271if (CONFIG_EXT_INTER)
272 set(AOM_AV1_ENCODER_SOURCES
273 ${AOM_AV1_ENCODER_SOURCES}
274 "${AOM_ROOT}/av1/encoder/wedge_utils.c")
275
Tom Finegan5a24dc82017-04-13 14:11:54 -0700276 set(AOM_AV1_ENCODER_INTRIN_SSE2
277 ${AOM_AV1_ENCODER_INTRIN_SSE2}
Tom Finegan44916e72017-02-27 14:12:31 -0800278 "${AOM_ROOT}/av1/encoder/x86/wedge_utils_sse2.c")
279endif ()
280
Tom Finegan7bb58b12017-03-02 21:11:36 -0800281if (CONFIG_FILTER_INTRA)
Tom Finegan5a24dc82017-04-13 14:11:54 -0700282 set(AOM_AV1_COMMON_INTRIN_SSE4_1
283 ${AOM_AV1_COMMON_INTRIN_SSE4_1}
Tom Finegan7bb58b12017-03-02 21:11:36 -0800284 "${AOM_ROOT}/av1/common/x86/filterintra_sse4.c")
285endif ()
286
Luc Trudeau83fbd572017-04-21 11:24:34 -0400287if (CONFIG_ACCOUNTING)
288 set(AOM_AV1_DECODER_SOURCES
289 ${AOM_AV1_DECODER_SOURCES}
290 "${AOM_ROOT}/av1/decoder/accounting.c"
291 "${AOM_ROOT}/av1/decoder/accounting.h")
292endif ()
293
Tom Finegan9d900972017-05-05 12:41:20 -0700294if (CONFIG_GLOBAL_MOTION)
295 set(AOM_AV1_ENCODER_SOURCES
296 ${AOM_AV1_ENCODER_SOURCES}
297 "${AOM_ROOT}/av1/encoder/corner_detect.c"
298 "${AOM_ROOT}/av1/encoder/corner_detect.h"
299 "${AOM_ROOT}/av1/encoder/corner_match.c"
300 "${AOM_ROOT}/av1/encoder/corner_match.h"
301 "${AOM_ROOT}/av1/encoder/global_motion.c"
302 "${AOM_ROOT}/av1/encoder/global_motion.h"
303 "${AOM_ROOT}/av1/encoder/ransac.c"
304 "${AOM_ROOT}/av1/encoder/ransac.h"
305 "${AOM_ROOT}/third_party/fastfeat/fast_9.c"
306 "${AOM_ROOT}/third_party/fastfeat/fast.c"
307 "${AOM_ROOT}/third_party/fastfeat/fast.h"
308 "${AOM_ROOT}/third_party/fastfeat/nonmax.c")
Tom Finegana9c4e512017-05-12 10:27:58 -0700309
310 set(AOM_AV1_ENCODER_INTRIN_SSE4_1
311 ${AOM_AV1_ENCODER_INTRIN_SSE4_1}
312 "${AOM_ROOT}/av1/encoder/x86/corner_match_sse4.c")
Tom Finegan9d900972017-05-05 12:41:20 -0700313endif ()
314
Tom Finegan7bb58b12017-03-02 21:11:36 -0800315if (CONFIG_INSPECTION)
316 set(AOM_AV1_DECODER_SOURCES
317 ${AOM_AV1_DECODER_SOURCES}
318 "${AOM_ROOT}/av1/decoder/inspection.c"
319 "${AOM_ROOT}/av1/decoder/inspection.h")
320endif ()
321
Tom Finegan44916e72017-02-27 14:12:31 -0800322if (CONFIG_INTERNAL_STATS)
323 set(AOM_AV1_ENCODER_SOURCES
324 ${AOM_AV1_ENCODER_SOURCES}
325 "${AOM_ROOT}/av1/encoder/blockiness.c")
326endif ()
327
Tom Finegan7bb58b12017-03-02 21:11:36 -0800328if (CONFIG_PALETTE)
329 set(AOM_AV1_ENCODER_SOURCES
330 ${AOM_AV1_ENCODER_SOURCES}
331 "${AOM_ROOT}/av1/encoder/palette.c"
332 "${AOM_ROOT}/av1/encoder/palette.h")
333endif ()
Tom Finegan44916e72017-02-27 14:12:31 -0800334
Luc Trudeauf8164152017-04-11 16:20:51 -0400335if (CONFIG_CFL)
336 set(AOM_AV1_COMMON_SOURCES
337 ${AOM_AV1_COMMON_SOURCES}
338 "${AOM_ROOT}/av1/common/cfl.c"
339 "${AOM_ROOT}/av1/common/cfl.h")
340endif ()
341
Tom Fineganc1562242017-05-24 12:08:20 -0700342if (CONFIG_LOOP_RESTORATION)
343 set(AOM_AV1_COMMON_SOURCES
344 ${AOM_AV1_COMMON_SOURCES}
345 "${AOM_ROOT}/av1/common/restoration.c"
346 "${AOM_ROOT}/av1/common/restoration.h")
347
348 set(AOM_AV1_COMMON_INTRIN_SSE4_1
349 ${AOM_AV1_COMMON_INTRIN_SSE4_1}
350 "${AOM_ROOT}/av1/common/x86/selfguided_sse4.c")
351
352 set(AOM_AV1_ENCODER_SOURCES
353 ${AOM_AV1_ENCODER_SOURCES}
354 "${AOM_ROOT}/av1/encoder/pickrst.c"
355 "${AOM_ROOT}/av1/encoder/pickrst.h")
356endif ()
357
Tom Finegan27f65d92017-03-02 22:03:10 -0800358if (CONFIG_PVQ)
359 set(AOM_AV1_COMMON_SOURCES
360 ${AOM_AV1_COMMON_SOURCES}
361 "${AOM_ROOT}/av1/common/laplace_tables.c"
362 "${AOM_ROOT}/av1/common/pvq.c"
363 "${AOM_ROOT}/av1/common/pvq.h"
364 "${AOM_ROOT}/av1/common/pvq_state.c"
365 "${AOM_ROOT}/av1/common/pvq_state.h"
366 "${AOM_ROOT}/av1/common/partition.c"
367 "${AOM_ROOT}/av1/common/partition.h"
368 "${AOM_ROOT}/av1/common/generic_code.c"
369 "${AOM_ROOT}/av1/common/generic_code.h"
370 "${AOM_ROOT}/av1/common/zigzag4.c"
371 "${AOM_ROOT}/av1/common/zigzag8.c"
372 "${AOM_ROOT}/av1/common/zigzag16.c"
373 "${AOM_ROOT}/av1/common/zigzag32.c")
374
375 set(AOM_AV1_DECODER_SOURCES
376 ${AOM_AV1_DECODER_SOURCES}
377 "${AOM_ROOT}/av1/decoder/decint.h"
378 "${AOM_ROOT}/av1/decoder/pvq_decoder.c"
379 "${AOM_ROOT}/av1/decoder/pvq_decoder.h"
380 "${AOM_ROOT}/av1/decoder/generic_decoder.c"
381 "${AOM_ROOT}/av1/decoder/laplace_decoder.c")
382
383 set(AOM_AV1_ENCODER_SOURCES
384 ${AOM_AV1_ENCODER_SOURCES}
385 "${AOM_ROOT}/av1/encoder/daala_compat_enc.c"
386 "${AOM_ROOT}/av1/encoder/encint.h"
387 "${AOM_ROOT}/av1/encoder/pvq_encoder.c"
388 "${AOM_ROOT}/av1/encoder/pvq_encoder.h"
389 "${AOM_ROOT}/av1/encoder/generic_encoder.c"
390 "${AOM_ROOT}/av1/encoder/laplace_encoder.c")
391
Tom Finegan5a24dc82017-04-13 14:11:54 -0700392 set(AOM_AV1_COMMON_INTRIN_SSE4_1
393 ${AOM_AV1_COMMON_INTRIN_SSE4_1}
Tom Finegan27f65d92017-03-02 22:03:10 -0800394 "${AOM_ROOT}/av1/common/x86/pvq_sse4.c"
395 "${AOM_ROOT}/av1/common/x86/pvq_sse4.h")
396
397 if (NOT CONFIG_AV1_ENCODER)
398 # TODO(tomfinegan): These should probably be in av1/common, and in a
399 # common source list. For now this mirrors the original build system.
400 set(AOM_AV1_DECODER_SOURCES
401 ${AOM_AV1_DECODER_SOURCES}
402 "${AOM_ROOT}/av1/encoder/dct.c"
403 "${AOM_ROOT}/av1/encoder/hybrid_fwd_txfm.c"
404 "${AOM_ROOT}/av1/encoder/hybrid_fwd_txfm.h")
405
Tom Finegan5a24dc82017-04-13 14:11:54 -0700406 set(AOM_AV1_DECODER_ASM_SSE2
407 ${AOM_AV1_DECODER_ASM_SSE2}
Tom Finegan27f65d92017-03-02 22:03:10 -0800408 "${AOM_ROOT}/av1/encoder/x86/dct_sse2.asm")
409
Tom Finegan5a24dc82017-04-13 14:11:54 -0700410 set(AOM_AV1_DECODER_INTRIN_SSE2
411 ${AOM_AV1_DECODER_INTRIN_SSE2}
Tom Finegan27f65d92017-03-02 22:03:10 -0800412 "${AOM_ROOT}/av1/encoder/x86/dct_intrin_sse2.c")
413
Tom Finegan5a24dc82017-04-13 14:11:54 -0700414 set(AOM_AV1_DECODER_INTRIN_SSSE3
415 ${AOM_AV1_DECODER_INTRIN_SSSE3}
Tom Finegan27f65d92017-03-02 22:03:10 -0800416 "${AOM_ROOT}/av1/encoder/x86/dct_ssse3.c")
417 endif ()
Tom Finegan44916e72017-02-27 14:12:31 -0800418endif ()
419
David Barkerd8a423c2017-04-19 10:32:43 +0100420if (CONFIG_WARPED_MOTION OR CONFIG_GLOBAL_MOTION)
Tom Finegan57338fc2017-04-05 11:47:45 -0700421 set(AOM_AV1_COMMON_SOURCES
422 ${AOM_AV1_COMMON_SOURCES}
423 "${AOM_ROOT}/av1/common/warped_motion.c"
424 "${AOM_ROOT}/av1/common/warped_motion.h")
425
Tom Finegan5a24dc82017-04-13 14:11:54 -0700426 set(AOM_AV1_COMMON_INTRIN_SSE2
427 ${AOM_AV1_COMMON_INTRIN_SSE2}
Tom Finegan57338fc2017-04-05 11:47:45 -0700428 "${AOM_ROOT}/av1/common/x86/warp_plane_sse2.c")
David Barkerd8a423c2017-04-19 10:32:43 +0100429
Tom Finegan9d900972017-05-05 12:41:20 -0700430 set(AOM_AV1_COMMON_INTRIN_SSSE3
431 ${AOM_AV1_COMMON_INTRIN_SSSE3}
David Barkerd8a423c2017-04-19 10:32:43 +0100432 "${AOM_ROOT}/av1/common/x86/warp_plane_ssse3.c")
433
434 if (CONFIG_HIGHBITDEPTH)
Tom Finegan9d900972017-05-05 12:41:20 -0700435 set(AOM_AV1_COMMON_INTRIN_SSSE3
436 ${AOM_AV1_COMMON_INTRIN_SSSE3}
David Barkerd8a423c2017-04-19 10:32:43 +0100437 "${AOM_ROOT}/av1/common/x86/highbd_warp_plane_ssse3.c")
438 endif ()
Tom Finegan57338fc2017-04-05 11:47:45 -0700439endif ()
440
Tom Finegan44916e72017-02-27 14:12:31 -0800441# Setup AV1 common/decoder/encoder targets. The libaom target must exist before
442# this function is called.
443function (setup_av1_targets)
444 add_library(aom_av1_common OBJECT ${AOM_AV1_COMMON_SOURCES})
445 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_common)
446 target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_av1_common>)
447
448 if (CONFIG_AV1_DECODER)
449 add_library(aom_av1_decoder OBJECT ${AOM_AV1_DECODER_SOURCES})
450 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_decoder)
451 target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_av1_decoder>)
452 endif ()
453
454 if (CONFIG_AV1_ENCODER)
455 add_library(aom_av1_encoder OBJECT ${AOM_AV1_ENCODER_SOURCES})
456 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_encoder)
457 target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_av1_encoder>)
458 endif ()
459
460 if (HAVE_SSE2)
461 require_flag_nomsvc("-msse2" NO)
462 add_intrinsics_object_library("-msse2" "sse2" "aom_av1_common"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700463 "AOM_AV1_COMMON_INTRIN_SSE2")
Tom Finegan27f65d92017-03-02 22:03:10 -0800464 if (CONFIG_AV1_DECODER)
Tom Finegan5a24dc82017-04-13 14:11:54 -0700465 if (AOM_AV1_DECODER_ASM_SSE2)
466 add_asm_library("aom_av1_decoder_sse2" "AOM_AV1_DECODER_ASM_SSE2" "aom")
Tom Finegan27f65d92017-03-02 22:03:10 -0800467 endif ()
468
Tom Finegan5a24dc82017-04-13 14:11:54 -0700469 if (AOM_AV1_DECODER_INTRIN_SSE2)
Tom Finegan27f65d92017-03-02 22:03:10 -0800470 add_intrinsics_object_library("-msse2" "sse2" "aom_av1_decoder"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700471 "AOM_AV1_DECODER_INTRIN_SSE2")
Tom Finegan27f65d92017-03-02 22:03:10 -0800472 endif ()
473 endif ()
474
Tom Finegan44916e72017-02-27 14:12:31 -0800475 if (CONFIG_AV1_ENCODER)
Tom Finegan5a24dc82017-04-13 14:11:54 -0700476 add_asm_library("aom_av1_encoder_sse2" "AOM_AV1_ENCODER_ASM_SSE2" "aom")
Tom Finegan44916e72017-02-27 14:12:31 -0800477 add_intrinsics_object_library("-msse2" "sse2" "aom_av1_encoder"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700478 "AOM_AV1_ENCODER_INTRIN_SSE2")
Tom Finegan44916e72017-02-27 14:12:31 -0800479 endif ()
480 endif ()
481
482 if (HAVE_SSSE3)
483 require_flag_nomsvc("-mssse3" NO)
484 add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_common"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700485 "AOM_AV1_COMMON_INTRIN_SSSE3")
Tom Finegan44916e72017-02-27 14:12:31 -0800486
Tom Finegan27f65d92017-03-02 22:03:10 -0800487 if (CONFIG_AV1_DECODER)
Tom Finegan5a24dc82017-04-13 14:11:54 -0700488 if (AOM_AV1_DECODER_INTRIN_SSSE3)
Tom Finegan27f65d92017-03-02 22:03:10 -0800489 add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_decoder"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700490 "AOM_AV1_DECODER_INTRIN_SSSE3")
Tom Finegan27f65d92017-03-02 22:03:10 -0800491 endif ()
492 endif ()
493
Tom Finegan44916e72017-02-27 14:12:31 -0800494 if (CONFIG_AV1_ENCODER)
495 add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_encoder"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700496 "AOM_AV1_ENCODER_INTRIN_SSSE3")
Tom Finegan44916e72017-02-27 14:12:31 -0800497 endif ()
498 endif ()
499
500 if (HAVE_SSE4_1)
501 require_flag_nomsvc("-msse4.1" NO)
502 add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_common"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700503 "AOM_AV1_COMMON_INTRIN_SSE4_1")
Tom Finegan44916e72017-02-27 14:12:31 -0800504
505 if (CONFIG_AV1_ENCODER)
506 if ("${AOM_TARGET_CPU}" STREQUAL "x86_64")
507 add_asm_library("aom_av1_encoder_ssse3"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700508 "AOM_AV1_ENCODER_ASM_SSSE3_X86_64" "aom")
Tom Finegan44916e72017-02-27 14:12:31 -0800509 endif ()
510
Tom Finegan5a24dc82017-04-13 14:11:54 -0700511 if (AOM_AV1_ENCODER_INTRIN_SSE4_1)
Tom Finegan44916e72017-02-27 14:12:31 -0800512 add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_encoder"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700513 "AOM_AV1_ENCODER_INTRIN_SSE4_1")
Tom Finegan44916e72017-02-27 14:12:31 -0800514 endif ()
515 endif ()
516 endif ()
517
518 if (HAVE_AVX2)
519 require_flag_nomsvc("-mavx2" NO)
520 add_intrinsics_object_library("-mavx2" "avx2" "aom_av1_common"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700521 "AOM_AV1_COMMON_INTRIN_AVX2")
Tom Finegan44916e72017-02-27 14:12:31 -0800522
523 if (CONFIG_AV1_ENCODER)
524 add_intrinsics_object_library("-mavx2" "avx2" "aom_av1_encoder"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700525 "AOM_AV1_ENCODER_INTRIN_AVX2")
Tom Finegan44916e72017-02-27 14:12:31 -0800526 endif ()
527 endif ()
528
Tom Finegan5a49c6c2017-03-17 08:56:59 -0700529 if (HAVE_NEON)
Tom Finegan5a24dc82017-04-13 14:11:54 -0700530 if (AOM_AV1_COMMON_INTRIN_NEON)
531 add_intrinsics_object_library("${AOM_INTRIN_NEON_FLAG}"
Tom Finegan5a49c6c2017-03-17 08:56:59 -0700532 "neon"
533 "aom_av1_common"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700534 "AOM_AV1_COMMON_INTRIN_NEON")
Tom Finegan5a49c6c2017-03-17 08:56:59 -0700535 endif ()
536
Tom Finegan5a24dc82017-04-13 14:11:54 -0700537 if (AOM_AV1_ENCODER_INTRIN_NEON)
538 add_intrinsics_object_library("${AOM_INTRIN_NEON_FLAG}"
Tom Finegan5a49c6c2017-03-17 08:56:59 -0700539 "neon"
540 "aom_av1_encoder"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700541 "AOM_AV1_ENCODER_INTRIN_NEON")
Tom Finegan5a49c6c2017-03-17 08:56:59 -0700542 endif ()
543 endif ()
Tom Finegand148c962017-04-04 14:48:26 -0700544
545 if (HAVE_DSPR2)
546 add_intrinsics_object_library("" "dspr2" "aom_av1_common"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700547 "AOM_AV1_COMMON_INTRIN_DSPR2")
Tom Finegand148c962017-04-04 14:48:26 -0700548 endif ()
549
550 if (HAVE_MSA)
551 add_intrinsics_object_library("" "msa" "aom_av1_common"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700552 "AOM_AV1_COMMON_INTRIN_MSA")
Tom Finegand148c962017-04-04 14:48:26 -0700553 add_intrinsics_object_library("" "msa" "aom_av1_encoder"
Tom Finegan5a24dc82017-04-13 14:11:54 -0700554 "AOM_AV1_ENCODER_INTRIN_MSA")
Tom Finegand148c962017-04-04 14:48:26 -0700555 endif ()
556
Tom Finegan44916e72017-02-27 14:12:31 -0800557 # Pass the new lib targets up to the parent scope instance of
558 # $AOM_LIB_TARGETS.
559 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} PARENT_SCOPE)
560endfunction ()
561
562function (setup_av1_test_targets)
563endfunction ()
Tom Finegan17ccaec2017-05-25 17:47:42 -0700564
565endif () # AOM_AV1_AV1_CMAKE_