summaryrefslogtreecommitdiff
path: root/libavutil
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2016-07-28 23:28:30 +0100
committerMark Thompson <sw@jkqxz.net>2016-08-13 09:46:48 +0100
commit121f34d5f0c8d7d376829a467590fbbe4c228f4f (patch)
tree341ab3ec3a4c594add8525fe731b0057204ddb4d /libavutil
parent6fc944e6136b050bf965f847bbfd69e1fe572f82 (diff)
downloadffmpeg-121f34d5f0c8d7d376829a467590fbbe4c228f4f.tar.gz
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.
Diffstat (limited to 'libavutil')
-rw-r--r--libavutil/hwcontext_vaapi.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
index 506545cc28..bba0c4d701 100644
--- a/libavutil/hwcontext_vaapi.c
+++ b/libavutil/hwcontext_vaapi.c
@@ -924,22 +924,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