Mercurial > libavcodec.hg
changeset 4532:c296efb7575e libavcodec
fix 2nd ref_count check
add list_count
author | michael |
---|---|
date | Fri, 16 Feb 2007 21:34:21 +0000 |
parents | 8a5a3dd25390 |
children | dca590e16c43 |
files | h264.c |
diffstat | 1 files changed, 8 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/h264.c Fri Feb 16 21:29:15 2007 +0000 +++ b/h264.c Fri Feb 16 21:34:21 2007 +0000 @@ -326,6 +326,7 @@ * num_ref_idx_l0/1_active_minus1 + 1 */ unsigned int ref_count[2]; ///< counts frames or fields, depending on current mb mode + unsigned int list_count; Picture *short_ref[32]; Picture *long_ref[32]; Picture default_ref_list[2][32]; @@ -4706,13 +4707,18 @@ if(h->slice_type==B_TYPE) h->ref_count[1]= get_ue_golomb(&s->gb) + 1; - if(h->ref_count[0] > 32 || h->ref_count[1] > 32){ + if(h->ref_count[0]-1 > 32-1 || h->ref_count[1]-1 > 32-1){ av_log(h->s.avctx, AV_LOG_ERROR, "reference overflow\n"); h->ref_count[0]= h->ref_count[1]= 1; return -1; } } - } + if(h->slice_type == B_TYPE) + h->list_count= 2; + else + h->list_count= 1; + }else + h->list_count= 0; if(!default_ref_list_done){ fill_default_ref_list(h);