Mercurial > libavcodec.hg
changeset 2844:5f20ab245501 libavcodec
prevent assert failures and infinite loops with broken streams
author | michael |
---|---|
date | Thu, 25 Aug 2005 00:01:57 +0000 |
parents | ea05470188e4 |
children | d9f4b93e81c5 |
files | h264.c |
diffstat | 1 files changed, 5 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/h264.c Sun Aug 21 22:31:01 2005 +0000 +++ b/h264.c Thu Aug 25 00:01:57 2005 +0000 @@ -5363,6 +5363,8 @@ else ctx = 3; val++; + if(val > 52) //prevent infinite loop + return INT_MIN; } if( val&0x01 ) @@ -6548,7 +6550,7 @@ bS[0] = bS[1] = bS[2] = bS[3] = 3; } else { // TODO - assert(0); + av_log(h->s.avctx, AV_LOG_ERROR, "both non intra (TODO)\n"); } /* Filter edge */ // Do not use s->qscale as luma quantizer because it has not the same @@ -6569,7 +6571,7 @@ bS[0] = bS[1] = bS[2] = bS[3] = 3; } else { // TODO - assert(0); + av_log(h->s.avctx, AV_LOG_ERROR, "both non intra (TODO)\n"); } /* Filter edge */ // Do not use s->qscale as luma quantizer because it has not the same @@ -6701,7 +6703,7 @@ if(ret>=0) ret = decode_mb_cabac(h); - hl_decode_mb(h); + if(ret>=0) hl_decode_mb(h); s->mb_y--; } eos = get_cabac_terminate( &h->cabac );