gstreamer/subprojects/gst-plugins-bad/ext/nvcomp/meson.build
Seungha Yang 0ed9c39835 nvcomp: Add nvCOMP library based GPU lossless compression plugin
Adding NVIDIA nvCOMP library based plugin for lossless raw video
compression/decompression. To build this plugin, user should
install nvCOMP SDK first and specify the SDK path via
"nvcomp-sdk-path" build option or NVCOMP_SDK_PATH env.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6912>
2024-06-13 18:19:08 +00:00

70 lines
2 KiB
Meson

nvcomp_sources = [
'gstnvcomp.cpp',
'gstnvcompvideodec.cpp',
'gstnvcompvideoenc.cpp',
'plugin.cpp',
]
extra_args = ['-DGST_USE_UNSTABLE_API']
nvcomp_opt = get_option('nvcomp')
if nvcomp_opt.disabled() or host_system not in ['windows', 'linux']
subdir_done()
endif
nvcomp_sdk_path = get_option('nvcomp-sdk-path')
if nvcomp_sdk_path == ''
nvcomp_sdk_path = run_command(python3, '-c', 'import os; print(os.environ.get("NVCOMP_SDK_PATH"))', check: false).stdout().strip()
endif
if nvcomp_sdk_path == '' or nvcomp_sdk_path == 'None'
if nvcomp_opt.enabled()
error('nvcomp-sdk-path option must be specified for nvCOMP plugin')
endif
subdir_done()
endif
if not gstcuda_dep.found()
if nvcomp_opt.enabled()
error('nvCOMP plugin was enabled explicitly, but required gstcuda was not found')
endif
subdir_done()
endif
nvcomp_inc_dirs = [include_directories(join_paths(nvcomp_sdk_path, 'include'), './stub'),
cuda_stubinc]
nvcomp_lib_path = join_paths(nvcomp_sdk_path, 'lib')
nvcomp_lib = cc.find_library('nvcomp',
dirs: nvcomp_lib_path, required: nvcomp_opt)
if not nvcomp_lib.found()
subdir_done()
endif
nvcomp_bitcomp_lib = cc.find_library('nvcomp_bitcomp',
dirs: nvcomp_lib_path, required: nvcomp_opt)
if not nvcomp_bitcomp_lib.found()
subdir_done()
endif
nvcomp_gdeflate_lib = cc.find_library('nvcomp_gdeflate',
dirs: nvcomp_lib_path, required: nvcomp_opt)
if not nvcomp_gdeflate_lib.found()
subdir_done()
endif
if gstgl_dep.found()
extra_args += ['-DHAVE_GST_GL']
endif
gstnvcomp = library('gstnvcomp',
nvcomp_sources,
c_args : gst_plugins_bad_args + extra_args,
cpp_args : gst_plugins_bad_args + extra_args,
include_directories : [configinc] + nvcomp_inc_dirs,
dependencies : [gstbase_dep, gstvideo_dep, gstcuda_dep, gstgl_dep, nvcomp_lib,
nvcomp_bitcomp_lib, nvcomp_gdeflate_lib],
override_options : ['cpp_std=c++17'],
install : true,
install_dir : plugins_install_dir,
)
plugins += [gstnvcomp]