This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 463cff5b9641d6a2df6595fa59234b2aa74d8463
Author:     Rainbaby <[email protected]>
AuthorDate: Fri Aug 28 16:18:07 2026 +0900
Commit:     Peter Ross <[email protected]>
CommitDate: Mon Nov 2 22:18:06 2026 +0000

    avcodec/cavsdec: parse slice_vertical_position_extension
    
    slice_vertical_position is the low byte of the start code and stops at
    0xAF, so a tall picture carries the high bits of MbRow in a 3 bit
    extension (table 25, clause 7.2.4). No level of annex B reaches that
    height, so this is completeness rather than a decode fix.
    
    Signed-off-by: Rainbaby <[email protected]>
---
 libavcodec/cavsdec.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/libavcodec/cavsdec.c b/libavcodec/cavsdec.c
index 67002049f0..f53576d787 100644
--- a/libavcodec/cavsdec.c
+++ b/libavcodec/cavsdec.c
@@ -944,12 +944,18 @@ static int decode_mb_b(AVSContext *h, enum cavs_mb 
mb_type)
 
 static inline int decode_slice_header(AVSContext *h, GetBitContext *gb)
 {
-    if (h->stc >= h->mb_height) {
-        av_log(h->avctx, AV_LOG_ERROR, "stc 0x%02x is too large\n", h->stc);
+    int mby = h->stc;
+
+    /* over 2800 lines MbRow carries high bits here (clause 7.2.4) */
+    if (h->height > 2800)
+        mby += get_bits(gb, 3) << 7; //slice_vertical_position_extension
+
+    if (mby >= h->mb_height) {
+        av_log(h->avctx, AV_LOG_ERROR, "MbRow %d is too large\n", mby);
         return AVERROR_INVALIDDATA;
     }
 
-    h->mby   = h->stc;
+    h->mby   = mby;
     h->mbidx = h->mby * h->mb_width;
 
     /* mark top macroblocks as unavailable */

-- 
To stop receiving notification emails like this one, please contact
[email protected].
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to