mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2026-11-06 05:17:42 +00:00
avutil/hwcontext_qsv: fix fall-through in qsv_fixed_pool_map_to()
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 <kasper93@gmail.com>
This commit is contained in:
1 file changed
+6
-9
@@ -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
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user