mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 05:31:15 +00:00
f17357f759
This a new VA-API implementation of a H264 encoder. It can control the GOP and parameter settings, while the MV searching, VCL and the rate control algorithm are implemented by VA drivers and HW. It supports most of the common usage options in H264, but still lacks of look ahead, field, B frame weighted prediction, etc. Co-authored-by: Victor Jaquez <vjaquez@igalia.com> Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1051>
58 lines
1.5 KiB
Meson
58 lines
1.5 KiB
Meson
va_sources = [
|
|
'plugin.c',
|
|
'gstvaallocator.c',
|
|
'gstvabasedec.c',
|
|
'gstvabasetransform.c',
|
|
'gstvacaps.c',
|
|
'gstvadecoder.c',
|
|
'gstvadeinterlace.c',
|
|
'gstvaencoder.c',
|
|
'gstvadevice.c',
|
|
'gstvadisplay_priv.c',
|
|
'gstvafilter.c',
|
|
'gstvah264dec.c',
|
|
'gstvah265dec.c',
|
|
'gstvapool.c',
|
|
'gstvaprofile.c',
|
|
'gstvasurfacecopy.c',
|
|
'gstvavideoformat.c',
|
|
'gstvavp8dec.c',
|
|
'gstvavp9dec.c',
|
|
'gstvampeg2dec.c',
|
|
'gstvavpp.c',
|
|
'gstvah264enc.c',
|
|
'vasurfaceimage.c'
|
|
]
|
|
|
|
if host_system != 'linux'
|
|
subdir_done()
|
|
endif
|
|
|
|
va_option = get_option('va').require(gstva_dep.found(), error_message: 'va plugin requires libgstva.')
|
|
if va_option.disabled()
|
|
subdir_done()
|
|
endif
|
|
|
|
libgudev_dep = dependency('gudev-1.0', required: false)
|
|
cdata.set10('HAVE_GUDEV', libgudev_dep.found())
|
|
|
|
if libva_dep.version().version_compare('>= 1.8')
|
|
va_sources += 'gstvaav1dec.c'
|
|
endif
|
|
|
|
driverdir = libva_dep.get_variable('driverdir', default_value: '')
|
|
if driverdir == ''
|
|
driverdir = join_paths(get_option('prefix'), get_option('libdir'), 'dri')
|
|
endif
|
|
gstva_cargs = ['-DLIBVA_DRIVERS_PATH="' + driverdir + '"']
|
|
|
|
gstva = library('gstva',
|
|
va_sources,
|
|
c_args : gst_plugins_bad_args + extra_c_args + gstva_cargs + ['-std=c99'],
|
|
include_directories : [configinc],
|
|
dependencies : [gstvideo_dep, gstcodecs_dep, gstallocators_dep, gstva_dep, libgudev_dep] + extra_dep,
|
|
install : true,
|
|
install_dir : plugins_install_dir,
|
|
)
|
|
pkgconfig.generate(gstva, install_dir : plugins_pkgconfig_install_dir)
|
|
plugins += [gstva]
|