• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1interlace_sources = [
2  'gstdeinterlace.c',
3  'gstdeinterlacemethod.c',
4  'tvtime/tomsmocomp.c',
5  'tvtime/greedy.c',
6  'tvtime/greedyh.c',
7  'tvtime/vfir.c',
8  'tvtime/weavetff.c',
9  'tvtime/weavebff.c',
10  'tvtime/weave.c',
11  'tvtime/linear.c',
12  'tvtime/linearblend.c',
13  'tvtime/scalerbob.c',
14  'yadif.c'
15]
16
17orcsrc = 'tvtime'
18if have_orcc
19  orc_h = custom_target(orcsrc + '.h',
20    input : orcsrc + '.orc',
21    output : orcsrc + '.h',
22    command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@'])
23  orc_c = custom_target(orcsrc + '.c',
24    input : orcsrc + '.orc',
25    output : orcsrc + '.c',
26    command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@'])
27  orc_targets += {'name': orcsrc, 'orc-source': files(orcsrc + '.orc'), 'header': orc_h, 'source': orc_c}
28else
29  orc_h = configure_file(input : orcsrc + '-dist.h',
30    output : orcsrc + '.h',
31    copy : true)
32  orc_c = configure_file(input : orcsrc + '-dist.c',
33    output : orcsrc + '.c',
34    copy : true)
35endif
36
37asm_gen_objs = []
38if have_nasm and host_cpu == 'x86_64'
39  if host_system == 'windows'
40    outputname = '@PLAINNAME@.obj'
41  else
42    outputname = '@PLAINNAME@.o'
43  endif
44
45  if get_option('b_staticpic')
46    asm_pic_def = '-DPIC'
47  else
48    asm_pic_def = '-UPIC'
49  endif
50
51  # Assembly has to be told when the symbols have to be prefixed with _
52  # Note that symbols_have_underscore_prefix does not work properly on macos
53  # if the compiler -g flag is used. See:
54  # https://github.com/mesonbuild/meson/issues/5482
55  if ['darwin', 'ios'].contains(host_system)
56    asm_prefix_def = '-DPREFIX'
57  elif cc.symbols_have_underscore_prefix()
58    asm_prefix_def = '-DPREFIX'
59  else
60    asm_prefix_def = '-UPREFIX'
61  endif
62
63  asm_arch_def = '-DARCH_X86_64=1'
64  if host_system == 'windows'
65    asm_outformat = 'win64'
66  elif ['darwin', 'ios'].contains(host_system)
67    asm_outformat = 'macho64'
68  else
69    asm_outformat = 'elf64'
70  endif
71  asm_x = files('x86/yadif.asm')
72
73  asm_stackalign_def = '-DSTACK_ALIGNMENT=64'
74  asm_incdir = 'x86'
75
76  message('Nasm configured on x86-64')
77  asm_gen = generator(nasm,
78    output: outputname,
79    arguments: ['-I@CURRENT_SOURCE_DIR@',
80                '-I@CURRENT_SOURCE_DIR@/@0@/'.format(asm_incdir),
81                asm_arch_def,
82                asm_stackalign_def,
83                asm_pic_def,
84                asm_prefix_def,
85                '-f', asm_outformat,
86                '-o', '@OUTPUT@',
87                '@INPUT@'])
88  asm_gen_objs = asm_gen.process(asm_x)
89endif
90
91gstdeinterlace = library('gstdeinterlace',
92  interlace_sources, asm_gen_objs, orc_c, orc_h,
93  c_args : gst_plugins_good_args,
94  include_directories : [configinc],
95  dependencies : [orc_dep, gstbase_dep, gstvideo_dep],
96  install : true,
97  install_dir : plugins_install_dir,
98)
99pkgconfig.generate(gstdeinterlace, install_dir : plugins_pkgconfig_install_dir)
100plugins += [gstdeinterlace]
101
102