diff --git a/app/streaming/session.cpp b/app/streaming/session.cpp index ac6ed9a8..3f4761b3 100644 --- a/app/streaming/session.cpp +++ b/app/streaming/session.cpp @@ -629,6 +629,12 @@ void Session::exec() break; } + case SDL_WINDOWEVENT: + if (event.window.event != SDL_WINDOWEVENT_RESIZED) { + break; + } + + // Fall through to recreate decoder on resize (full-screen toggle) case SDL_RENDER_DEVICE_RESET: case SDL_RENDER_TARGETS_RESET: SDL_AtomicLock(&m_DecoderLock); diff --git a/app/streaming/video/ffmpeg-renderers/vt.mm b/app/streaming/video/ffmpeg-renderers/vt.mm index 106aaea0..6f3395c2 100644 --- a/app/streaming/video/ffmpeg-renderers/vt.mm +++ b/app/streaming/video/ffmpeg-renderers/vt.mm @@ -48,6 +48,10 @@ public: AVFrame* frame = m_FrameQueue.dequeue(); av_frame_free(&frame); } + + if (m_View != nullptr) { + [m_View removeFromSuperview]; + } } void drawFrame(uint64_t vsyncTime)