提交 8d47d840 编写于 作者: M Mark Thompson

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)
上级 1a359e53
...@@ -914,22 +914,25 @@ static int vaapi_device_create(AVHWDeviceContext *ctx, const char *device, ...@@ -914,22 +914,25 @@ static int vaapi_device_create(AVHWDeviceContext *ctx, const char *device,
#endif #endif
#if HAVE_VAAPI_DRM #if HAVE_VAAPI_DRM
if (!display && device) { if (!display) {
// Try to open the device as a DRM path. // 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) { if (priv->drm_fd < 0) {
av_log(ctx, AV_LOG_VERBOSE, "Cannot open DRM device %s.\n", av_log(ctx, AV_LOG_VERBOSE, "Cannot open DRM device %s.\n",
device); path);
} else { } else {
display = vaGetDisplayDRM(priv->drm_fd); display = vaGetDisplayDRM(priv->drm_fd);
if (!display) { if (!display) {
av_log(ctx, AV_LOG_ERROR, "Cannot open a VA 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; return AVERROR_UNKNOWN;
} }
av_log(ctx, AV_LOG_VERBOSE, "Opened VA display via " av_log(ctx, AV_LOG_VERBOSE, "Opened VA display via "
"DRM device %s.\n", device); "DRM device %s.\n", path);
} }
} }
#endif #endif
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册