mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-13 03:46:34 +00:00
0ed9c39835
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>
70 lines
2 KiB
Meson
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]
|