summaryrefslogtreecommitdiff
path: root/gst-libs/gst/video/meson.build
blob: 4528b10af7deaa9e1f60cb9a93e48483e74afeb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
video_sources = [
  'colorbalance.c',
  'colorbalancechannel.c',
  'convertframe.c',
  'gstvideoaffinetransformationmeta.c',
  'gstvideocodecalphameta.c',
  'gstvideoaggregator.c',
  'gstvideodecoder.c',
  'gstvideoencoder.c',
  'gstvideofilter.c',
  'gstvideometa.c',
  'gstvideopool.c',
  'gstvideosink.c',
  'gstvideotimecode.c',
  'gstvideoutils.c',
  'gstvideoutilsprivate.c',
  'navigation.c',
  'video.c',
  'video-anc.c',
  'video-blend.c',
  'video-chroma.c',
  'video-color.c',
  'video-converter.c',
  'video-dither.c',
  'video-event.c',
  'video-format.c',
  'video-frame.c',
  'video-hdr.c',
  'video-info.c',
  'video-multiview.c',
  'video-resampler.c',
  'video-scaler.c',
  'video-tile.c',
  'video-overlay-composition.c',
  'videodirection.c',
  'videoorientation.c',
  'videooverlay.c',
]

video_headers = [
  'colorbalance.h',
  'colorbalancechannel.h',
  'gstvideoaffinetransformationmeta.h',
  'gstvideocodecalphameta.h',
  'gstvideoaggregator.h',
  'gstvideodecoder.h',
  'gstvideoencoder.h',
  'gstvideofilter.h',
  'gstvideometa.h',
  'gstvideopool.h',
  'gstvideosink.h',
  'gstvideotimecode.h',
  'gstvideoutils.h',
  'navigation.h',
  'video.h',
  'video-anc.h',
  'video-event.h',
  'video-format.h',
  'video-chroma.h',
  'video-color.h',
  'video-converter.h',
  'video-dither.h',
  'video-hdr.h',
  'video-info.h',
  'video-frame.h',
  'video-prelude.h',
  'video-scaler.h',
  'video-tile.h',
  'videodirection.h',
  'videoorientation.h',
  'videooverlay.h',
  'video-resampler.h',
  'video-blend.h',
  'video-overlay-composition.h',
  'video-multiview.h',
]
install_headers(video_headers, subdir : 'gstreamer-1.0/gst/video/')

video_mkenum_headers = [
  'video.h',
  'video-anc.h',
  'video-format.h',
  'video-frame.h',
  'video-chroma.h',
  'video-color.h',
  'video-converter.h',
  'video-dither.h',
  'video-info.h',
  'video-overlay-composition.h',
  'video-resampler.h',
  'video-scaler.h',
  'video-tile.h',
  'gstvideometa.h',
  'gstvideotimecode.h',
  'gstvideoutils.h',
  'gstvideoencoder.h',
  'gstvideodecoder.h',
  'colorbalance.h',
  'navigation.h',
]

video_enums = gnome.mkenums_simple('video-enumtypes',
  sources : video_mkenum_headers,
  body_prefix : '#ifdef HAVE_CONFIG_H\n#include "config.h"\n#endif',
  header_prefix : '#include <gst/video/video-prelude.h>',
  decorator : 'GST_VIDEO_API',
  install_header: true,
  install_dir : join_paths(get_option('includedir'), 'gstreamer-1.0/gst/video'))
gstvideo_c = video_enums[0]
gstvideo_h = video_enums[1]
video_gen_sources = [gstvideo_h]

orcsrc = 'video-orc'
gstvideo_deps = [gst_base_dep, libm]
if have_orcc
  gstvideo_deps += [orc_dep]
  orc_h = custom_target(orcsrc + '.h',
    input : orcsrc + '.orc',
    output : orcsrc + '.h',
    command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@'])
  orc_c = custom_target(orcsrc + '.c',
    input : orcsrc + '.orc',
    output : orcsrc + '.c',
    command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@'])
  orc_targets += {'name': orcsrc, 'orc-source': files(orcsrc + '.orc'), 'header': orc_h, 'source': orc_c}
else
  orc_h = configure_file(input : orcsrc + '-dist.h',
    output : orcsrc + '.h',
    copy : true)
  orc_c = configure_file(input : orcsrc + '-dist.c',
    output : orcsrc + '.c',
    copy : true)
endif

gstvideo = library('gstvideo-@0@'.format(api_version),
  video_sources, gstvideo_h, gstvideo_c, orc_c, orc_h,
  c_args : gst_plugins_base_args + ['-DBUILDING_GST_VIDEO'],
  include_directories: [configinc, libsinc],
  version : libversion,
  soversion : soversion,
  darwin_versions : osxversion,
  install : true,
  dependencies : gstvideo_deps,
)

pkgconfig.generate(gstvideo,
  libraries : [gst_dep, gst_base_dep],
  variables : pkgconfig_variables,
  subdirs : pkgconfig_subdirs,
  name : 'gstreamer-video-1.0',
  description : 'Video base classes and helper functions',
)

if build_gir
  gst_gir_extra_args = gir_init_section + [ '--c-include=gst/video/video.h' ]
  video_gir = gnome.generate_gir(gstvideo,
    sources : video_sources + video_headers + [gstvideo_c] + [gstvideo_h],
    namespace : 'GstVideo',
    nsversion : api_version,
    identifier_prefix : 'Gst',
    symbol_prefix : 'gst',
    export_packages : 'gstreamer-video-1.0',
    includes : ['Gst-1.0', 'GstBase-1.0'],
    install : true,
    extra_args : gst_gir_extra_args,
    dependencies : gstvideo_deps
  )
  video_gen_sources += [video_gir]
endif

video_dep = declare_dependency(link_with : gstvideo,
  include_directories : [libsinc],
  dependencies : gstvideo_deps,
  sources : video_gen_sources)

meson.override_dependency('gstreamer-video-1.0', video_dep)