diff --git a/app/streaming/video/ffmpeg-renderers/drm.cpp b/app/streaming/video/ffmpeg-renderers/drm.cpp index 04c0d816..284ba31f 100644 --- a/app/streaming/video/ffmpeg-renderers/drm.cpp +++ b/app/streaming/video/ffmpeg-renderers/drm.cpp @@ -137,6 +137,15 @@ bool DrmRenderer::initialize(PDECODER_PARAMETERS params) // handle the case where those also fail to render the test frame. const bool DIRECT_RENDERING_INIT_FAILED = true; + // If we're not sharing the DRM FD with SDL, that means we don't + // have DRM master, so we can't call drmModeSetPlane(). We can + // only use EGL to render in this situation. + if (!m_SdlOwnsDrmFd) { + SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, + "Direct rendering via DRM is disabled"); + return DIRECT_RENDERING_INIT_FAILED; + } + drmModeRes* resources = drmModeGetResources(m_DrmFd); if (resources == nullptr) { SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,