Skip to content
Snippets Groups Projects
Commit 8d47d840 authored by Mark Thompson's avatar Mark Thompson
Browse files

hwcontext_vaapi: Try the first render node as the default DRM device

If no string argument is supplied when av_hwdevice_ctx_create() is
called to create a VAAPI device, we currently only try the default
X11 display (that is, $DISPLAY) to find a device, and will therefore
fail in the absence of an X server to connect to.  Change the logic
to also look for a device via the first DRM render node (that is,
"/dev/dri/renderD128"), which is probably the right thing to use in
most simple configurations which only have one DRM device.

(cherry picked from commit 121f34d5)
parent 1a359e53
No related branches found
No related tags found
No related merge requests found
......@@ -914,22 +914,25 @@ static int vaapi_device_create(AVHWDeviceContext *ctx, const char *device,
#endif
#if HAVE_VAAPI_DRM
if (!display && device) {
if (!display) {
// Try to open the device as a DRM path.
priv->drm_fd = open(device, O_RDWR);
// Default to using the first render node if the user did not
// supply a path.
const char *path = device ? device : "/dev/dri/renderD128";
priv->drm_fd = open(path, O_RDWR);
if (priv->drm_fd < 0) {
av_log(ctx, AV_LOG_VERBOSE, "Cannot open DRM device %s.\n",
device);
path);
} else {
display = vaGetDisplayDRM(priv->drm_fd);
if (!display) {
av_log(ctx, AV_LOG_ERROR, "Cannot open a VA display "
"from DRM device %s.\n", device);
"from DRM device %s.\n", path);
return AVERROR_UNKNOWN;
}
av_log(ctx, AV_LOG_VERBOSE, "Opened VA display via "
"DRM device %s.\n", device);
"DRM device %s.\n", path);
}
}
#endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment