summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libavcodec/h264.c4
-rw-r--r--libavcodec/h264.h4
2 files changed, 5 insertions, 3 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 4b69ca5..a030959 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -3302,7 +3302,7 @@ static void idr(H264Context *h){
static void flush_dpb(AVCodecContext *avctx){
H264Context *h= avctx->priv_data;
int i;
- for(i=0; i<16; i++) {
+ for(i=0; i<MAX_DELAYED_PIC_COUNT; i++) {
if(h->delayed_pic[i])
h->delayed_pic[i]->reference= 0;
h->delayed_pic[i]= NULL;
@@ -7836,7 +7836,7 @@ static int decode_frame(AVCodecContext *avctx,
pics = 0;
while(h->delayed_pic[pics]) pics++;
- assert(pics+1 < sizeof(h->delayed_pic) / sizeof(h->delayed_pic[0]));
+ assert(pics <= MAX_DELAYED_PIC_COUNT);
h->delayed_pic[pics++] = cur;
if(cur->reference == 0)
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index 2531e3a..fa2fcf1 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -51,6 +51,8 @@
#define MAX_MMCO_COUNT 66
+#define MAX_DELAYED_PIC_COUNT 16
+
/* Compiling in interlaced support reduces the speed
* of progressive decoding by about 2%. */
#define ALLOW_INTERLACE
@@ -334,7 +336,7 @@ typedef struct H264Context{
Picture ref_list[2][48]; /**< 0..15: frame refs, 16..47: mbaff field refs.
Reordered version of default_ref_list
according to picture reordering in slice header */
- Picture *delayed_pic[18]; //FIXME size?
+ Picture *delayed_pic[MAX_DELAYED_PIC_COUNT+2]; //FIXME size?
Picture *delayed_output_pic;
/**
OpenPOWER on IntegriCloud