From c54e6e4459140c35e187593d662c67cce5139d16 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 5 Nov 2025 23:58:51 -0600 Subject: [PATCH] Use hasFrameFormatChanged() in VDPAU --- app/streaming/video/ffmpeg-renderers/vdpau.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/streaming/video/ffmpeg-renderers/vdpau.cpp b/app/streaming/video/ffmpeg-renderers/vdpau.cpp index 20d421ab..e744855c 100644 --- a/app/streaming/video/ffmpeg-renderers/vdpau.cpp +++ b/app/streaming/video/ffmpeg-renderers/vdpau.cpp @@ -534,8 +534,13 @@ void VDPAURenderer::renderFrame(AVFrame* frame) m_NextSurfaceIndex = (m_NextSurfaceIndex + 1) % OUTPUT_SURFACE_COUNT; // We need to create the mixer on the fly, because we don't know the dimensions - // of our video surfaces in advance of decoding - if (m_VideoMixer == 0) { + // of our video surfaces in advance of decoding. We also need to recreate it when + // the frame format or size changes. + if (hasFrameFormatChanged(frame)) { + if (m_VideoMixer != 0) { + m_VdpVideoMixerDestroy(m_VideoMixer); + } + VdpChromaType videoSurfaceChroma; uint32_t videoSurfaceWidth, videoSurfaceHeight; status = m_VdpVideoSurfaceGetParameters(videoSurface, &videoSurfaceChroma,