diff --git a/meson_options.txt b/meson_options.txt index 513aa06f40..6ac04747f4 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -134,6 +134,7 @@ option('tinyalsa', type : 'feature', value : 'auto', description : 'TinyALSA plu option('ttml', type : 'feature', value : 'auto', description : 'TTML subtitle parser and renderer plugin') option('uvch264', type : 'feature', value : 'auto', description : 'UVC compliant H.264 camera source plugin') option('vcd', type : 'feature', value : 'auto', description : 'VCD source plugin') +option('vdpau', type : 'feature', value : 'auto', description : 'Nvidia VDPAU plugin') option('voaacenc', type : 'feature', value : 'auto', description : 'AAC audio encoder plugin') option('vulkan', type : 'feature', value : 'auto', description : 'Vulkan video sink plugin') option('wasapi', type : 'feature', value : 'auto', description : 'Windows Audio Session API source/sink plugin') diff --git a/sys/meson.build b/sys/meson.build index d22d6ac726..01103cf734 100644 --- a/sys/meson.build +++ b/sys/meson.build @@ -20,7 +20,7 @@ subdir('shm') subdir('tinyalsa') subdir('uvch264') subdir('vcd') -#subdir('vdpau') +subdir('vdpau') subdir('wasapi') subdir('winks') subdir('winscreencap') diff --git a/sys/vdpau/meson.build b/sys/vdpau/meson.build new file mode 100644 index 0000000000..2cbbfce6b7 --- /dev/null +++ b/sys/vdpau/meson.build @@ -0,0 +1,29 @@ +vdpau_sources = [ + 'gstvdpau.c', + 'gstvdputils.c', + 'gstvdpvideomemory.c', + 'gstvdpvideobufferpool.c', + 'gstvdpdevice.c', + 'gstvdpdecoder.c', + 'mpeg/gstvdpmpegdec.c', + # 'h264/gsth264dpb.c', + # 'h264/gstvdph264dec.c', +] + +vdpau_dep = dependency('vdpau', required: get_option('vdpau')) + +if vdpau_dep.found() + if x11_dep.found() + gstvdpau = library('gstvdpau', + vdpau_sources, + c_args: gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'], + include_directories: [configinc], + dependencies: [gstbase_dep, gstvideo_dep, gstcodecparsers_dep, vdpau_dep, x11_dep, libm], + install: true, + install_dir: plugins_install_dir, + ) + pkgconfig.generate(gstvdpau, install_dir: plugins_pkgconfig_install_dir) + elif get_option('vdpau').enabled() + error('vdpau plugin was enabled but required X11 dependency was not found.') + endif +endif