diff --git a/app/streaming/video/ffmpeg-renderers/eglvid.cpp b/app/streaming/video/ffmpeg-renderers/eglvid.cpp index 9f7d1149..5aced8de 100644 --- a/app/streaming/video/ffmpeg-renderers/eglvid.cpp +++ b/app/streaming/video/ffmpeg-renderers/eglvid.cpp @@ -75,8 +75,7 @@ EGLRenderer::EGLRenderer(IFFmpegRenderer *backendRenderer) m_eglClientWaitSync(nullptr), m_GlesMajorVersion(0), m_GlesMinorVersion(0), - m_HasExtUnpackSubimage(false), - m_DummyRenderer(nullptr) + m_HasExtUnpackSubimage(false) { SDL_assert(backendRenderer); SDL_assert(backendRenderer->canExportEGL()); @@ -111,10 +110,6 @@ EGLRenderer::~EGLRenderer() SDL_GL_DeleteContext(m_Context); } - - if (m_DummyRenderer) { - SDL_DestroyRenderer(m_DummyRenderer); - } } bool EGLRenderer::prepareDecoderContext(AVCodecContext*, AVDictionary**) @@ -446,8 +441,13 @@ bool EGLRenderer::initialize(PDECODER_PARAMETERS params) return false; } - m_DummyRenderer = SDL_CreateRenderer(m_Window, renderIndex, SDL_RENDERER_ACCELERATED); - if (!m_DummyRenderer) { + // This will load OpenGL ES and convert our window to SDL_WINDOW_OPENGL if necessary + SDL_Renderer* dummyRenderer = SDL_CreateRenderer(m_Window, renderIndex, SDL_RENDERER_ACCELERATED); + if (dummyRenderer) { + SDL_DestroyRenderer(dummyRenderer); + dummyRenderer = nullptr; + } + else { // Print the error here (before it gets clobbered), but ensure that we flush window // events just in case SDL re-created the window before eventually failing. EGL_LOG(Error, "SDL_CreateRenderer() failed: %s", SDL_GetError()); @@ -470,12 +470,6 @@ bool EGLRenderer::initialize(PDECODER_PARAMETERS params) SDL_FlushEvent(SDL_WINDOWEVENT); } - // Now we finally bail if we failed during SDL_CreateRenderer() above. - if (!m_DummyRenderer) { - m_InitFailureReason = InitFailureReason::NoSoftwareSupport; - return false; - } - SDL_SysWMinfo info; SDL_VERSION(&info.version); if (!SDL_GetWindowWMInfo(params->window, &info)) { diff --git a/app/streaming/video/ffmpeg-renderers/eglvid.h b/app/streaming/video/ffmpeg-renderers/eglvid.h index 6ba2b37c..4528dc7b 100644 --- a/app/streaming/video/ffmpeg-renderers/eglvid.h +++ b/app/streaming/video/ffmpeg-renderers/eglvid.h @@ -68,6 +68,4 @@ private: #define OVERLAY_PARAM_TEXTURE 0 int m_OverlayShaderProgramParams[1]; - - SDL_Renderer *m_DummyRenderer; };