Mercurial > libavcodec.hg
comparison mpeg4videodec.c @ 10818:514dc1c87b2e libavcodec
Rename most non static h263 tables so their name contains h263.
author | michael |
---|---|
date | Fri, 08 Jan 2010 17:51:48 +0000 |
parents | d1fe22d92a65 |
children | 77b3f322dba8 |
comparison
equal
deleted
inserted
replaced
10817:d1fe22d92a65 | 10818:514dc1c87b2e |
---|---|
554 do{ | 554 do{ |
555 if(show_bits_long(&s->gb, 19)==DC_MARKER){ | 555 if(show_bits_long(&s->gb, 19)==DC_MARKER){ |
556 return mb_num-1; | 556 return mb_num-1; |
557 } | 557 } |
558 | 558 |
559 cbpc = get_vlc2(&s->gb, intra_MCBPC_vlc.table, INTRA_MCBPC_VLC_BITS, 2); | 559 cbpc = get_vlc2(&s->gb, ff_h263_intra_MCBPC_vlc.table, INTRA_MCBPC_VLC_BITS, 2); |
560 if (cbpc < 0){ | 560 if (cbpc < 0){ |
561 av_log(s->avctx, AV_LOG_ERROR, "cbpc corrupted at %d %d\n", s->mb_x, s->mb_y); | 561 av_log(s->avctx, AV_LOG_ERROR, "cbpc corrupted at %d %d\n", s->mb_x, s->mb_y); |
562 return -1; | 562 return -1; |
563 } | 563 } |
564 }while(cbpc == 8); | 564 }while(cbpc == 8); |
613 if(s->mbintra_table[xy]) | 613 if(s->mbintra_table[xy]) |
614 ff_clean_intra_table_entries(s); | 614 ff_clean_intra_table_entries(s); |
615 continue; | 615 continue; |
616 } | 616 } |
617 | 617 |
618 cbpc = get_vlc2(&s->gb, inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2); | 618 cbpc = get_vlc2(&s->gb, ff_h263_inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2); |
619 if (cbpc < 0){ | 619 if (cbpc < 0){ |
620 av_log(s->avctx, AV_LOG_ERROR, "cbpc corrupted at %d %d\n", s->mb_x, s->mb_y); | 620 av_log(s->avctx, AV_LOG_ERROR, "cbpc corrupted at %d %d\n", s->mb_x, s->mb_y); |
621 return -1; | 621 return -1; |
622 } | 622 } |
623 if(cbpc == 20) | 623 if(cbpc == 20) |
710 if(s->mb_x == s->resync_mb_x && s->mb_y == s->resync_mb_y+1) | 710 if(s->mb_x == s->resync_mb_x && s->mb_y == s->resync_mb_y+1) |
711 s->first_slice_line=0; | 711 s->first_slice_line=0; |
712 | 712 |
713 if(s->pict_type==FF_I_TYPE){ | 713 if(s->pict_type==FF_I_TYPE){ |
714 int ac_pred= get_bits1(&s->gb); | 714 int ac_pred= get_bits1(&s->gb); |
715 int cbpy = get_vlc2(&s->gb, cbpy_vlc.table, CBPY_VLC_BITS, 1); | 715 int cbpy = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); |
716 if(cbpy<0){ | 716 if(cbpy<0){ |
717 av_log(s->avctx, AV_LOG_ERROR, "cbpy corrupted at %d %d\n", s->mb_x, s->mb_y); | 717 av_log(s->avctx, AV_LOG_ERROR, "cbpy corrupted at %d %d\n", s->mb_x, s->mb_y); |
718 return -1; | 718 return -1; |
719 } | 719 } |
720 | 720 |
722 s->current_picture.mb_type[xy] |= ac_pred*MB_TYPE_ACPRED; | 722 s->current_picture.mb_type[xy] |= ac_pred*MB_TYPE_ACPRED; |
723 }else{ /* P || S_TYPE */ | 723 }else{ /* P || S_TYPE */ |
724 if(IS_INTRA(s->current_picture.mb_type[xy])){ | 724 if(IS_INTRA(s->current_picture.mb_type[xy])){ |
725 int dir=0,i; | 725 int dir=0,i; |
726 int ac_pred = get_bits1(&s->gb); | 726 int ac_pred = get_bits1(&s->gb); |
727 int cbpy = get_vlc2(&s->gb, cbpy_vlc.table, CBPY_VLC_BITS, 1); | 727 int cbpy = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); |
728 | 728 |
729 if(cbpy<0){ | 729 if(cbpy<0){ |
730 av_log(s->avctx, AV_LOG_ERROR, "I cbpy corrupted at %d %d\n", s->mb_x, s->mb_y); | 730 av_log(s->avctx, AV_LOG_ERROR, "I cbpy corrupted at %d %d\n", s->mb_x, s->mb_y); |
731 return -1; | 731 return -1; |
732 } | 732 } |
752 s->pred_dir_table[xy]= dir; | 752 s->pred_dir_table[xy]= dir; |
753 }else if(IS_SKIP(s->current_picture.mb_type[xy])){ | 753 }else if(IS_SKIP(s->current_picture.mb_type[xy])){ |
754 s->current_picture.qscale_table[xy]= s->qscale; | 754 s->current_picture.qscale_table[xy]= s->qscale; |
755 s->cbp_table[xy]= 0; | 755 s->cbp_table[xy]= 0; |
756 }else{ | 756 }else{ |
757 int cbpy = get_vlc2(&s->gb, cbpy_vlc.table, CBPY_VLC_BITS, 1); | 757 int cbpy = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); |
758 | 758 |
759 if(cbpy<0){ | 759 if(cbpy<0){ |
760 av_log(s->avctx, AV_LOG_ERROR, "P cbpy corrupted at %d %d\n", s->mb_x, s->mb_y); | 760 av_log(s->avctx, AV_LOG_ERROR, "P cbpy corrupted at %d %d\n", s->mb_x, s->mb_y); |
761 return -1; | 761 return -1; |
762 } | 762 } |
890 if (!coded) { | 890 if (!coded) { |
891 s->block_last_index[n] = i; | 891 s->block_last_index[n] = i; |
892 return 0; | 892 return 0; |
893 } | 893 } |
894 if(rvlc) rl = &rvlc_rl_inter; | 894 if(rvlc) rl = &rvlc_rl_inter; |
895 else rl = &rl_inter; | 895 else rl = &ff_h263_rl_inter; |
896 | 896 |
897 scan_table = s->intra_scantable.permutated; | 897 scan_table = s->intra_scantable.permutated; |
898 | 898 |
899 if(s->mpeg_quant){ | 899 if(s->mpeg_quant){ |
900 qmul=1; | 900 qmul=1; |
901 qadd=0; | 901 qadd=0; |
902 if(rvlc){ | 902 if(rvlc){ |
903 rl_vlc = rvlc_rl_inter.rl_vlc[0]; | 903 rl_vlc = rvlc_rl_inter.rl_vlc[0]; |
904 }else{ | 904 }else{ |
905 rl_vlc = rl_inter.rl_vlc[0]; | 905 rl_vlc = ff_h263_rl_inter.rl_vlc[0]; |
906 } | 906 } |
907 }else{ | 907 }else{ |
908 qmul = s->qscale << 1; | 908 qmul = s->qscale << 1; |
909 qadd = (s->qscale - 1) | 1; | 909 qadd = (s->qscale - 1) | 1; |
910 if(rvlc){ | 910 if(rvlc){ |
911 rl_vlc = rvlc_rl_inter.rl_vlc[s->qscale]; | 911 rl_vlc = rvlc_rl_inter.rl_vlc[s->qscale]; |
912 }else{ | 912 }else{ |
913 rl_vlc = rl_inter.rl_vlc[s->qscale]; | 913 rl_vlc = ff_h263_rl_inter.rl_vlc[s->qscale]; |
914 } | 914 } |
915 } | 915 } |
916 } | 916 } |
917 { | 917 { |
918 OPEN_READER(re, &s->gb); | 918 OPEN_READER(re, &s->gb); |
1205 s->mv[0][0][1] = 0; | 1205 s->mv[0][0][1] = 0; |
1206 s->mb_skipped = 1; | 1206 s->mb_skipped = 1; |
1207 } | 1207 } |
1208 goto end; | 1208 goto end; |
1209 } | 1209 } |
1210 cbpc = get_vlc2(&s->gb, inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2); | 1210 cbpc = get_vlc2(&s->gb, ff_h263_inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2); |
1211 if (cbpc < 0){ | 1211 if (cbpc < 0){ |
1212 av_log(s->avctx, AV_LOG_ERROR, "cbpc damaged at %d %d\n", s->mb_x, s->mb_y); | 1212 av_log(s->avctx, AV_LOG_ERROR, "cbpc damaged at %d %d\n", s->mb_x, s->mb_y); |
1213 return -1; | 1213 return -1; |
1214 } | 1214 } |
1215 }while(cbpc == 20); | 1215 }while(cbpc == 20); |
1220 if (s->mb_intra) goto intra; | 1220 if (s->mb_intra) goto intra; |
1221 | 1221 |
1222 if(s->pict_type==FF_S_TYPE && s->vol_sprite_usage==GMC_SPRITE && (cbpc & 16) == 0) | 1222 if(s->pict_type==FF_S_TYPE && s->vol_sprite_usage==GMC_SPRITE && (cbpc & 16) == 0) |
1223 s->mcsel= get_bits1(&s->gb); | 1223 s->mcsel= get_bits1(&s->gb); |
1224 else s->mcsel= 0; | 1224 else s->mcsel= 0; |
1225 cbpy = get_vlc2(&s->gb, cbpy_vlc.table, CBPY_VLC_BITS, 1) ^ 0x0F; | 1225 cbpy = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1) ^ 0x0F; |
1226 | 1226 |
1227 cbp = (cbpc & 3) | (cbpy << 2); | 1227 cbp = (cbpc & 3) | (cbpy << 2); |
1228 if (dquant) { | 1228 if (dquant) { |
1229 ff_set_qscale(s, s->qscale + quant_tab[get_bits(&s->gb, 2)]); | 1229 ff_set_qscale(s, s->qscale + quant_tab[get_bits(&s->gb, 2)]); |
1230 } | 1230 } |
1436 mb_type |= ff_mpeg4_set_direct_mv(s, mx, my); | 1436 mb_type |= ff_mpeg4_set_direct_mv(s, mx, my); |
1437 } | 1437 } |
1438 s->current_picture.mb_type[xy]= mb_type; | 1438 s->current_picture.mb_type[xy]= mb_type; |
1439 } else { /* I-Frame */ | 1439 } else { /* I-Frame */ |
1440 do{ | 1440 do{ |
1441 cbpc = get_vlc2(&s->gb, intra_MCBPC_vlc.table, INTRA_MCBPC_VLC_BITS, 2); | 1441 cbpc = get_vlc2(&s->gb, ff_h263_intra_MCBPC_vlc.table, INTRA_MCBPC_VLC_BITS, 2); |
1442 if (cbpc < 0){ | 1442 if (cbpc < 0){ |
1443 av_log(s->avctx, AV_LOG_ERROR, "I cbpc damaged at %d %d\n", s->mb_x, s->mb_y); | 1443 av_log(s->avctx, AV_LOG_ERROR, "I cbpc damaged at %d %d\n", s->mb_x, s->mb_y); |
1444 return -1; | 1444 return -1; |
1445 } | 1445 } |
1446 }while(cbpc == 8); | 1446 }while(cbpc == 8); |
1452 if(s->ac_pred) | 1452 if(s->ac_pred) |
1453 s->current_picture.mb_type[xy]= MB_TYPE_INTRA | MB_TYPE_ACPRED; | 1453 s->current_picture.mb_type[xy]= MB_TYPE_INTRA | MB_TYPE_ACPRED; |
1454 else | 1454 else |
1455 s->current_picture.mb_type[xy]= MB_TYPE_INTRA; | 1455 s->current_picture.mb_type[xy]= MB_TYPE_INTRA; |
1456 | 1456 |
1457 cbpy = get_vlc2(&s->gb, cbpy_vlc.table, CBPY_VLC_BITS, 1); | 1457 cbpy = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); |
1458 if(cbpy<0){ | 1458 if(cbpy<0){ |
1459 av_log(s->avctx, AV_LOG_ERROR, "I cbpy damaged at %d %d\n", s->mb_x, s->mb_y); | 1459 av_log(s->avctx, AV_LOG_ERROR, "I cbpy damaged at %d %d\n", s->mb_x, s->mb_y); |
1460 return -1; | 1460 return -1; |
1461 } | 1461 } |
1462 cbp = (cbpc & 3) | (cbpy << 2); | 1462 cbp = (cbpc & 3) | (cbpy << 2); |