13 [ 'vpx/vp8cx.h', 'vpx_codec_vp8_cx_algo', '-DHAVE_VP8_ENCODER', 'VP8 encoder' ],
14 [ 'vpx/vp8dx.h', 'vpx_codec_vp8_dx_algo', '-DHAVE_VP8_DECODER', 'VP8 decoder' ],
15 [ 'vpx/vp8cx.h', 'vpx_codec_vp9_cx_algo', '-DHAVE_VP9_ENCODER', 'VP9 encoder' ],
16 [ 'vpx/vp8dx.h', 'vpx_codec_vp9_dx_algo', '-DHAVE_VP9_DECODER', 'VP9 decoder' ],
19 vpx_option = get_option('vpx')
20 vpx_dep = dependency('vpx', version : '>=1.3.0', required : vpx_option)
24 foreach f : vpx_features
26 codec_iface = f.get(1)
27 extra_define = f.get(2)
28 link_code = '''#include <@0@>
29 int main (int a, char ** g) {
30 const vpx_codec_iface_t *c = &@1@;
32 }'''.format(header,codec_iface)
33 if cc.links(link_code, dependencies : vpx_dep)
34 vpx_args += extra_define
35 message('libvpx provides @0@ interface (@1@)'.format(f.get(3),f.get(1)))
36 have_vpx_feature = true
38 message('libvpx does not provide @0@ interface (@1@)'.format(f.get(3),f.get(1)))
39 have_vpx_feature = false
41 set_variable('have_' + f.get(3).to_lower().underscorify(), have_vpx_feature)
44 if vpx_args.length() == 0
45 msg = 'libvpx was built without any encoder or decoder features!'
46 # Error out if explicitly enabled, but continue with a warning if the
47 # plugin is in auto-detect mode to reduce build-time friction.
48 if vpx_option.enabled()
54 if dependency('vpx', version : '>=1.4.0', required : false).found()
55 vpx_args += '-DHAVE_VPX_1_4'
58 if dependency('vpx', version : '>=1.8.0', required : false).found()
59 vpx_args += '-DHAVE_VPX_1_8'
62 gstvpx = library('gstvpx',
64 c_args : gst_plugins_good_args + vpx_args,
65 include_directories : [configinc],
66 dependencies : [gstbase_dep, gsttag_dep, gstvideo_dep, vpx_dep],
68 install_dir : plugins_install_dir,
70 pkgconfig.generate(gstvpx, install_dir : plugins_pkgconfig_install_dir)
72 install_data(sources: ['GstVP8Enc.prs'], install_dir: presetdir)