The V4L2 driver does not actually have an associated DRM device at all, so users work around the requirement by giving libva an unrelated display-only device instead (which is fine, because it doesn't actually do anything with that device). This was broken by bc9b6358fb7315c0173de322472641766f6289da forcing a render node, because the display-only device did not have an associated render node to use. Fix that by just passing through the original non-render DRM fd if we can't find a render node.
Reported-by: Paul Kocialkowski <paul.kocialkow...@bootlin.com> --- Also tested by the reporter. I'll apply this in a few days if there are no comments. - Mark libavutil/hwcontext_vaapi.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c index 38bdeb7820..2227d6ed69 100644 --- a/libavutil/hwcontext_vaapi.c +++ b/libavutil/hwcontext_vaapi.c @@ -1677,20 +1677,24 @@ static int vaapi_device_derive(AVHWDeviceContext *ctx, } else { render_node = drmGetRenderDeviceNameFromFd(src_hwctx->fd); if (!render_node) { - av_log(ctx, AV_LOG_ERROR, "Failed to find a render node " - "matching the DRM device.\n"); - return AVERROR(ENODEV); - } - fd = open(render_node, O_RDWR); - if (fd < 0) { - av_log(ctx, AV_LOG_ERROR, "Failed to open render node %s" - "matching the DRM device.\n", render_node); + av_log(ctx, AV_LOG_VERBOSE, "Using non-render node " + "because the device does not have an " + "associated render node.\n"); + fd = src_hwctx->fd; + } else { + fd = open(render_node, O_RDWR); + if (fd < 0) { + av_log(ctx, AV_LOG_VERBOSE, "Using non-render node " + "because the associated render node " + "could not be opened.\n"); + fd = src_hwctx->fd; + } else { + av_log(ctx, AV_LOG_VERBOSE, "Using render node %s " + "in place of non-render DRM device.\n", + render_node); + } free(render_node); - return AVERROR(errno); } - av_log(ctx, AV_LOG_VERBOSE, "Using render node %s in place " - "of non-render DRM device.\n", render_node); - free(render_node); } } #else -- 2.28.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".