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