1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-22 06:42:03 +00:00

build: refactor vaapi handling

This commit is contained in:
Gusar321 2023-07-25 16:10:42 +02:00 committed by Dudemanguy
parent 38ad2467a4
commit 4332553db5
2 changed files with 21 additions and 17 deletions

View File

@ -1394,36 +1394,41 @@ if features['rpi-mmal']
'video/out/vo_rpi.c')
endif
vaapi = dependency('libva', version: '>= 1.1.0', required: get_option('vaapi'))
features += {'vaapi': vaapi.found() and features['libdl'] and (features['x11'] or
features['wayland'] or egl_drm.allowed())}
libva = dependency('libva', version: '>= 1.1.0', required: get_option('vaapi'))
if features['vaapi']
dependencies += vaapi
sources += files('video/filter/vf_vavpp.c',
'video/vaapi.c')
endif
vaapi_drm = dependency('libva-drm', version: '>= 1.1.0', required: get_option('vaapi-drm').require(features['vaapi']))
features += {'vaapi-drm': features['vaapi'] and vaapi_drm.found()}
vaapi_drm = dependency('libva-drm', version: '>= 1.1.0',
required: get_option('vaapi-drm').require(libva.found() and features['drm']))
features += {'vaapi-drm': vaapi_drm.found()}
if features['vaapi-drm']
dependencies += vaapi_drm
endif
vaapi_wayland = dependency('libva-wayland', version: '>= 1.1.0', required: get_option('vaapi-wayland').require(features['vaapi']))
features += {'vaapi-wayland': features['vaapi'] and vaapi_wayland.found()}
vaapi_wayland = dependency('libva-wayland', version: '>= 1.1.0',
required: get_option('vaapi-wayland').require(libva.found() and features['wayland']))
features += {'vaapi-wayland': vaapi_wayland.found()}
if features['vaapi-wayland']
dependencies += vaapi_wayland
endif
vaapi_x11 = dependency('libva-x11', version: '>= 1.1.0', required: get_option('vaapi-x11').require(features['vaapi']))
features += {'vaapi-x11': features['vaapi'] and features['x11'] and vaapi_x11.found()}
vaapi_x11 = dependency('libva-x11', version: '>= 1.1.0',
required: get_option('vaapi-x11').require(libva.found() and features['x11']))
features += {'vaapi-x11': vaapi_x11.found()}
if features['vaapi-x11']
dependencies += vaapi_x11
sources += files('video/out/vo_vaapi.c')
endif
features += {'vaapi-egl': (features['vaapi-x11'] or features['vaapi-wayland'] or features['vaapi-drm']) and features['egl']}
vaapi = get_option('vaapi').require(libva.found() and features['libdl'] and
(features['vaapi-drm'] or features['vaapi-wayland'] or features['vaapi-x11']))
features += {'vaapi': vaapi.allowed()}
if features['vaapi']
dependencies += libva
sources += files('video/filter/vf_vavpp.c',
'video/vaapi.c')
endif
features += {'vaapi-egl': features['vaapi'] and features['egl'] and features['drm']}
features += {'vaapi-libplacebo': features['vaapi'] and libplacebo.found()}
if features['vaapi-egl'] or features['vaapi-libplacebo']

View File

@ -89,7 +89,6 @@ option('vaapi', type: 'feature', value: 'auto', description: 'VAAPI acceleration
option('vaapi-drm', type: 'feature', value: 'auto', description: 'VAAPI (DRM support)')
option('vaapi-wayland', type: 'feature', value: 'auto', description: 'VAAPI (Wayland support)')
option('vaapi-x11', type: 'feature', value: 'auto', description: 'VAAPI (X11 support)')
option('vaapi-egl', type: 'feature', value: 'auto', description: 'VAAPI (EGL support)')
option('vulkan', type: 'feature', value: 'auto', description: 'Vulkan context support')
option('wayland', type: 'feature', value: 'auto', description: 'Wayland')
option('x11', type: 'feature', value: 'auto', description: 'X11')