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;