From 5cbb0e70a0a2ee99eb3cb09e837b9a1f7355b9bc Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Sat, 25 Sep 2004 09:59:36 +0000
Subject: [PATCH] H.264 max reference pictures fix by (Loren Merritt <lorenm at
 u dot washington dot edu>)

Originally committed as revision 3504 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/h264.c      | 3 +++
 libavcodec/mpegvideo.h | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index cb026badc46..d90fefc7dfe 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -5430,6 +5430,9 @@ static inline int decode_seq_parameter_set(H264Context *h){
     }
 
     sps->ref_frame_count= get_ue_golomb(&s->gb);
+    if(sps->ref_frame_count > MAX_PICTURE_COUNT-2){
+        av_log(h->s.avctx, AV_LOG_ERROR, "too many reference frames\n");
+    }
     sps->gaps_in_frame_num_allowed_flag= get_bits1(&s->gb);
     sps->mb_width= get_ue_golomb(&s->gb) + 1;
     sps->mb_height= get_ue_golomb(&s->gb) + 1;
diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
index d0ad4f066ba..0c317202c17 100644
--- a/libavcodec/mpegvideo.h
+++ b/libavcodec/mpegvideo.h
@@ -50,7 +50,7 @@ enum OutputFormat {
 
 #define MAX_THREADS 8
 
-#define MAX_PICTURE_COUNT 15
+#define MAX_PICTURE_COUNT 32
 
 #define ME_MAP_SIZE 64
 #define ME_MAP_SHIFT 3
-- 
GitLab