Mercurial > libavcodec.hg
comparison cavs.c @ 3471:c2db6e76b269 libavcodec
replace run by run+1 in VLC tables
author | stefang |
---|---|
date | Fri, 14 Jul 2006 19:15:08 +0000 |
parents | c9059c843d4c |
children | 0e0cffe06fb3 |
comparison
equal
deleted
inserted
replaced
3470:c6071e607062 | 3471:c2db6e76b269 |
---|---|
653 | 653 |
654 memset(block,0,64*sizeof(DCTELEM)); | 654 memset(block,0,64*sizeof(DCTELEM)); |
655 for(i=0;i<65;i++) { | 655 for(i=0;i<65;i++) { |
656 level_code = get_ue_code(gb,r->golomb_order); | 656 level_code = get_ue_code(gb,r->golomb_order); |
657 if(level_code >= ESCAPE_CODE) { | 657 if(level_code >= ESCAPE_CODE) { |
658 run = (level_code - ESCAPE_CODE) >> 1; | 658 run = ((level_code - ESCAPE_CODE) >> 1) + 1; |
659 esc_code = get_ue_code(gb,esc_golomb_order); | 659 esc_code = get_ue_code(gb,esc_golomb_order); |
660 level = esc_code + (run > r->max_run ? 1 : r->level_add[run]); | 660 level = esc_code + (run > r->max_run ? 1 : r->level_add[run]); |
661 while(level > r->inc_limit) | 661 while(level > r->inc_limit) |
662 r++; | 662 r++; |
663 mask = -(level_code & 1); | 663 mask = -(level_code & 1); |
664 level = (level^mask) - mask; | 664 level = (level^mask) - mask; |
665 } else { | 665 } else { |
666 if(level_code < 0) | |
667 return -1; | |
668 level = r->rltab[level_code][0]; | 666 level = r->rltab[level_code][0]; |
669 if(!level) //end of block signal | 667 if(!level) //end of block signal |
670 break; | 668 break; |
671 run = r->rltab[level_code][1]; | 669 run = r->rltab[level_code][1]; |
672 r += r->rltab[level_code][2]; | 670 r += r->rltab[level_code][2]; |
674 level_buf[i] = level; | 672 level_buf[i] = level; |
675 run_buf[i] = run; | 673 run_buf[i] = run; |
676 } | 674 } |
677 /* inverse scan and dequantization */ | 675 /* inverse scan and dequantization */ |
678 while(--i >= 0){ | 676 while(--i >= 0){ |
679 pos += 1 + run_buf[i]; | 677 pos += run_buf[i]; |
680 if(pos > 63) { | 678 if(pos > 63) { |
681 av_log(h->s.avctx, AV_LOG_ERROR, | 679 av_log(h->s.avctx, AV_LOG_ERROR, |
682 "position out of block bounds at pic %d MB(%d,%d)\n", | 680 "position out of block bounds at pic %d MB(%d,%d)\n", |
683 h->picture.poc, h->mbx, h->mby); | 681 h->picture.poc, h->mbx, h->mby); |
684 return -1; | 682 return -1; |