Commit 7ff0752871 for ffmpeg

commit 7ff075287103af42b13df558ce8a7ff98c17971d
Author: Kacper Michajłow <kasper93@gmail.com>
Date:   Tue Nov 10 11:50:28 2026 +0100

    avcodec/dxva2_{h264,hevc,vp9}: reject the invalid surface index 127

    The DXVA specifications of H.264, HEVC and VP8/VP9 reserve the
    Index7Bits value 127 for entries without a valid surface, but the
    asserts in fill_picture_entry() accept it. VP9 decoding into surface 127
    reset the driver on AMD RX 9070 XT (32.0.32015.12012), and H.264 and
    HEVC decoded wrong.

    Signed-off-by: Kacper Michajłow <kasper93@gmail.com>

diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c
index 9184ba8889..4bf5f560d9 100644
--- a/libavcodec/dxva2_h264.c
+++ b/libavcodec/dxva2_h264.c
@@ -44,7 +44,7 @@ struct dxva2_picture_context {
 static void fill_picture_entry(DXVA_PicEntry_H264 *pic,
                                unsigned index, unsigned flag)
 {
-    av_assert0((index&0x7f) == index && (flag&0x01) == flag);
+    av_assert0(index < 0x7f && (flag&0x01) == flag);
     pic->bPicEntry = index | (flag << 7);
 }

diff --git a/libavcodec/dxva2_hevc.c b/libavcodec/dxva2_hevc.c
index 85698dfcce..3b5b9833ae 100644
--- a/libavcodec/dxva2_hevc.c
+++ b/libavcodec/dxva2_hevc.c
@@ -43,7 +43,7 @@ struct hevc_dxva2_picture_context {
 static void fill_picture_entry(DXVA_PicEntry_HEVC *pic,
                                unsigned index, unsigned flag)
 {
-    av_assert0((index & 0x7f) == index && (flag & 0x01) == flag);
+    av_assert0(index < 0x7f && (flag & 0x01) == flag);
     pic->bPicEntry = index | (flag << 7);
 }

diff --git a/libavcodec/dxva2_vp9.c b/libavcodec/dxva2_vp9.c
index cffa95e1d1..a6aa521ed6 100644
--- a/libavcodec/dxva2_vp9.c
+++ b/libavcodec/dxva2_vp9.c
@@ -39,7 +39,7 @@ struct vp9_dxva2_picture_context {
 static void fill_picture_entry(DXVA_PicEntry_VPx *pic,
                                unsigned index, unsigned flag)
 {
-    av_assert0((index & 0x7f) == index && (flag & 0x01) == flag);
+    av_assert0(index < 0x7f && (flag & 0x01) == flag);
     pic->bPicEntry = index | (flag << 7);
 }