mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
990fbb3b52
In order to other plugins use gstva objects, such as allocators and buffer pools, this merge request move them from the va plugin to the gstva library. This objects are not exposed in <gst/va/gstva.h> since they are not expected to be used by users, only by plugin implementators. Because of the surface copy design, which is used to implement allocator's mem_copy() virtual function, depends on the vafilter, which is kept inside the plugin, memory copy through VAPosproc is disabled and removed temporarly. Also added some missing parameter validation. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2048>
61 lines
1.7 KiB
Meson
61 lines
1.7 KiB
Meson
va_sources = [
|
|
'gstvaallocator.c',
|
|
'gstvadisplay.c',
|
|
'gstvadisplay_drm.c',
|
|
'gstvadisplay_wrapped.c',
|
|
'gstvapool.c',
|
|
'gstvasurfacecopy.c',
|
|
'gstvautils.c',
|
|
'gstvavideoformat.c',
|
|
'vasurfaceimage.c',
|
|
]
|
|
|
|
va_headers = [
|
|
'gstva.h',
|
|
'gstvaallocator.h',
|
|
'gstvadisplay.h',
|
|
'gstvadisplay_drm.h',
|
|
'gstvadisplay_wrapped.h',
|
|
'gstvapool.h',
|
|
'gstvautils.h',
|
|
'gstvavideoformat.h',
|
|
'va-prelude.h',
|
|
'va_fwd.h',
|
|
]
|
|
|
|
gstva_dep = dependency('', required : false)
|
|
|
|
if host_system != 'linux'
|
|
subdir_done()
|
|
endif
|
|
|
|
libva_req = ['>= 1.6']
|
|
libva_dep = dependency('libva', version: libva_req, required: false,
|
|
fallback: ['libva', 'libva_dep'])
|
|
libva_drm_dep = dependency('libva-drm', version: libva_req, required: false,
|
|
fallback: ['libva', 'libva_drm_dep'])
|
|
|
|
if not (libva_dep.found() and libva_drm_dep.found())
|
|
subdir_done()
|
|
endif
|
|
|
|
libdrm_dep = dependency('libdrm', required: false, fallback: ['libdrm', 'ext_libdrm'])
|
|
cdata.set10('HAVE_LIBDRM', libdrm_dep.found())
|
|
|
|
gstva = library('gstva-' + api_version,
|
|
va_sources,
|
|
c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API', '-DBUILDING_GST_VA', '-DG_LOG_DOMAIN="GStreamer-VA"'],
|
|
include_directories : [configinc, libsinc],
|
|
version : libversion,
|
|
soversion : soversion,
|
|
install : true,
|
|
dependencies : [gst_dep, gstbase_dep, gstvideo_dep, gstallocators_dep, libva_dep, libva_drm_dep, libdrm_dep],
|
|
)
|
|
|
|
pkg_name = 'gstreamer-va-' + api_version
|
|
libraries += [[pkg_name, {'lib': gstva}]]
|
|
|
|
gstva_dep = declare_dependency(link_with : gstva,
|
|
include_directories : [libsinc],
|
|
dependencies : [gst_dep, gstvideo_dep, gstallocators_dep, libva_dep, libva_drm_dep, libdrm_dep])
|
|
meson.override_dependency(pkg_name, gstva_dep)
|