1cpp_sources = [
2  'core/src/au_set.cpp',
3  'core/src/deblocking.cpp',
4  'core/src/decode_mb_aux.cpp',
5  'core/src/encode_mb_aux.cpp',
6  'core/src/encoder.cpp',
7  'core/src/encoder_data_tables.cpp',
8  'core/src/encoder_ext.cpp',
9  'core/src/get_intra_predictor.cpp',
10  'core/src/md.cpp',
11  'core/src/mv_pred.cpp',
12  'core/src/nal_encap.cpp',
13  'core/src/paraset_strategy.cpp',
14  'core/src/picture_handle.cpp',
15  'core/src/ratectl.cpp',
16  'core/src/ref_list_mgr_svc.cpp',
17  'core/src/sample.cpp',
18  'core/src/set_mb_syn_cabac.cpp',
19  'core/src/set_mb_syn_cavlc.cpp',
20  'core/src/slice_multi_threading.cpp',
21  'core/src/svc_base_layer_md.cpp',
22  'core/src/svc_enc_slice_segment.cpp',
23  'core/src/svc_encode_mb.cpp',
24  'core/src/svc_encode_slice.cpp',
25  'core/src/svc_mode_decision.cpp',
26  'core/src/svc_motion_estimate.cpp',
27  'core/src/svc_set_mb_syn_cabac.cpp',
28  'core/src/svc_set_mb_syn_cavlc.cpp',
29  'core/src/wels_preprocess.cpp',
30  'core/src/wels_task_base.cpp',
31  'core/src/wels_task_encoder.cpp',
32  'core/src/wels_task_management.cpp',
33  'plus/src/welsEncoderExt.cpp',
34]
35
36objs_asm = []
37if ['x86', 'x86_64'].contains(cpu_family)
38  asm_sources = [
39    'core/x86/coeff.asm',
40    'core/x86/dct.asm',
41    'core/x86/intra_pred.asm',
42    'core/x86/matrix_transpose.asm',
43    'core/x86/memzero.asm',
44    'core/x86/quant.asm',
45    'core/x86/sample_sc.asm',
46    'core/x86/score.asm',
47  ]
48  objs_asm = asm_gen.process(asm_sources)
49elif cpu_family == 'arm'
50  cpp_sources += [
51    'core/arm/intra_pred_neon.S',
52    'core/arm/intra_pred_sad_3_opt_neon.S',
53    'core/arm/memory_neon.S',
54    'core/arm/pixel_neon.S',
55    'core/arm/reconstruct_neon.S',
56    'core/arm/svc_motion_estimation.S',
57  ]
58elif cpu_family == 'aarch64'
59  cpp_sources += [
60    'core/arm64/intra_pred_aarch64_neon.S',
61    'core/arm64/intra_pred_sad_3_opt_aarch64_neon.S',
62    'core/arm64/memory_aarch64_neon.S',
63    'core/arm64/pixel_aarch64_neon.S',
64    'core/arm64/reconstruct_aarch64_neon.S',
65    'core/arm64/svc_motion_estimation_aarch64_neon.S',
66  ]
67else
68  error('Unsupported cpu family @0@'.format(cpu_family))
69endif
70
71libencoder = static_library('encoder', cpp_sources, objs_asm,
72  include_directories: [inc, processing_inc, encoder_inc, casm_inc],
73  dependencies: deps)
74