diff --git a/src/media/video/v4l2/vaapi.cpp b/src/media/video/v4l2/vaapi.cpp index 414da2342e36fef98f2bf8688982e04e9f560253..b222e8959a6ff9acc367f04f2588419a1880f1af 100644 --- a/src/media/video/v4l2/vaapi.cpp +++ b/src/media/video/v4l2/vaapi.cpp @@ -79,9 +79,11 @@ VaapiAccel::checkAvailability() { AVBufferRef* hardwareDeviceCtx = nullptr; #ifdef HAVE_VAAPI_ACCEL_DRM - // try all possible devices, use first one that works const std::string path = "/dev/dri/"; - for (auto& entry : ring::fileutils::readDirectory(path)) { + auto files = ring::fileutils::readDirectory(path); + // renderD* is preferred over card* + std::sort(files.rbegin(), files.rend()); + for (auto& entry : files) { std::string deviceName = path + entry; if (av_hwdevice_ctx_create(&hardwareDeviceCtx, AV_HWDEVICE_TYPE_VAAPI, deviceName.c_str(), nullptr, 0) >= 0) { deviceName_ = deviceName;