# HG changeset patch # User michael # Date 1215583439 0 # Node ID f8b6ec3e5538219e5790a92c9198a47d7210c324 # Parent d5a52b28c9de311fc3fa39ee2592f80fba4ffb2a fix IPCM_decode_error.h264 diff -r d5a52b28c9de -r f8b6ec3e5538 h264.c --- a/h264.c Tue Jul 08 23:50:03 2008 +0000 +++ b/h264.c Wed Jul 09 06:03:59 2008 +0000 @@ -4352,12 +4352,11 @@ level_code= (prefix<s.avctx, AV_LOG_ERROR, "prefix too large at %d %d\n", s->mb_x, s->mb_y); - return -1; + if(prefix>=16) + level_code += (1<<(prefix-3))-4096; } if(trailing_ones < 3) level_code += 2; @@ -4375,11 +4374,10 @@ prefix = get_level_prefix(gb); if(prefix<15){ level_code = (prefix<s.avctx, AV_LOG_ERROR, "prefix too large at %d %d\n", s->mb_x, s->mb_y); - return -1; + level_code = (15<=16) + level_code += (1<<(prefix-3))-4096; } mask= -(level_code&1); level[i]= (((2+level_code)>>1) ^ mask) - mask;