From f25dd4e26f64b84cdd586c16dc522c7f023dafa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= Date: Wed, 29 Jul 2026 22:00:46 +0200 Subject: [PATCH] avutil/hwcontext_qsv: fix fall-through in qsv_fixed_pool_map_to() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The break only applied to the matching case, so every non-matching surface fell into the next case and reinterpreted the same mfxHDLPair under another API. Signed-off-by: Kacper Michajłow --- libavutil/hwcontext_qsv.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c index b92c9cb0ad..186576d182 100644 --- a/libavutil/hwcontext_qsv.c +++ b/libavutil/hwcontext_qsv.c @@ -2154,10 +2154,9 @@ static int qsv_fixed_pool_map_to(AVHWFramesContext *dst_ctx, case AV_PIX_FMT_VAAPI: { mfxHDLPair *pair = (mfxHDLPair*)hwctx->surfaces[i].Data.MemId; - if (*(VASurfaceID*)pair->first == (VASurfaceID)(uintptr_t)src->data[3]) { + if (*(VASurfaceID*)pair->first == (VASurfaceID)(uintptr_t)src->data[3]) index = i; - break; - } + break; } #endif #if CONFIG_D3D11VA @@ -2166,20 +2165,18 @@ static int qsv_fixed_pool_map_to(AVHWFramesContext *dst_ctx, mfxHDLPair *pair = (mfxHDLPair*)hwctx->surfaces[i].Data.MemId; if (pair->first == src->data[0] && (pair->second == src->data[1] - || (pair->second == (mfxMemId)MFX_INFINITE && src->data[1] == (uint8_t *)0))) { + || (pair->second == (mfxMemId)MFX_INFINITE && src->data[1] == (uint8_t *)0))) index = i; - break; - } + break; } #endif #if CONFIG_DXVA2 case AV_PIX_FMT_DXVA2_VLD: { mfxHDLPair *pair = (mfxHDLPair*)hwctx->surfaces[i].Data.MemId; - if (pair->first == src->data[3]) { + if (pair->first == src->data[3]) index = i; - break; - } + break; } #endif }