hwcontext_vaapi: Only accept a render node when deriving from DRM device
authorMark Thompson <sw@jkqxz.net>
Sun, 16 Feb 2020 20:59:54 +0000 (20:59 +0000)
committerMark Thompson <sw@jkqxz.net>
Mon, 24 Feb 2020 00:09:51 +0000 (00:09 +0000)
commitbc9b6358fb7315c0173de322472641766f6289da
tree87de21e53415d5a0739b76a0420372f7b174f74a
parenta7b92cb55907fd33aa75eabea95db39ba949cb99
hwcontext_vaapi: Only accept a render node when deriving from DRM device

If we are given a non-render node, try to find the matching render node and
fail if that isn't possible.

libva will not accept a non-render device which is not DRM master, because
it requires legacy DRM authentication to succeed in that case:
<https://github.com/intel/libva/blob/master/va/drm/va_drm.c#L68-L75>.  This
is annoying for kmsgrab because in most recording situations DRM master is
already held by something else (such as a windowing system), leading to
device derivation not working and forcing the user to create the target
VAAPI device separately.
libavutil/hwcontext_vaapi.c