Mercurial > libavcodec.hg
comparison h263.c @ 1796:7186712b391e libavcodec
rv10/obmc fixes
author | michael |
---|---|
date | Mon, 09 Feb 2004 15:23:35 +0000 |
parents | 920e6381e1fe |
children | 95612d423fde |
comparison
equal
deleted
inserted
replaced
1795:920e6381e1fe | 1796:7186712b391e |
---|---|
3864 mot_val[0] = mx; | 3864 mot_val[0] = mx; |
3865 mot_val[1] = my; | 3865 mot_val[1] = my; |
3866 } | 3866 } |
3867 } | 3867 } |
3868 | 3868 |
3869 /* decode each block */ | |
3870 for (i = 0; i < 6; i++) { | |
3871 if (h263_decode_block(s, block[i], i, cbp&32) < 0) | |
3872 return -1; | |
3873 cbp+=cbp; | |
3874 } | |
3875 | |
3869 if(s->obmc){ | 3876 if(s->obmc){ |
3870 if(s->pict_type == P_TYPE && s->mb_x+1<s->mb_width) | 3877 if(s->pict_type == P_TYPE && s->mb_x+1<s->mb_width && s->mb_num_left != 1) |
3871 preview_obmc(s); | 3878 preview_obmc(s); |
3872 } | 3879 } |
3873 } else if(s->pict_type==B_TYPE) { | 3880 } else if(s->pict_type==B_TYPE) { |
3874 int mb_type; | 3881 int mb_type; |
3875 const int stride= s->b8_stride; | 3882 const int stride= s->b8_stride; |
3955 mot_val[1 ]= mot_val[3 ]= mot_val[1+2*stride]= mot_val[3+2*stride]= my; | 3962 mot_val[1 ]= mot_val[3 ]= mot_val[1+2*stride]= mot_val[3+2*stride]= my; |
3956 } | 3963 } |
3957 } | 3964 } |
3958 | 3965 |
3959 s->current_picture.mb_type[xy]= mb_type; | 3966 s->current_picture.mb_type[xy]= mb_type; |
3967 | |
3968 /* decode each block */ | |
3969 for (i = 0; i < 6; i++) { | |
3970 if (h263_decode_block(s, block[i], i, cbp&32) < 0) | |
3971 return -1; | |
3972 cbp+=cbp; | |
3973 } | |
3960 } else { /* I-Frame */ | 3974 } else { /* I-Frame */ |
3961 do{ | 3975 do{ |
3962 cbpc = get_vlc2(&s->gb, intra_MCBPC_vlc.table, INTRA_MCBPC_VLC_BITS, 2); | 3976 cbpc = get_vlc2(&s->gb, intra_MCBPC_vlc.table, INTRA_MCBPC_VLC_BITS, 2); |
3963 if (cbpc < 0){ | 3977 if (cbpc < 0){ |
3964 av_log(s->avctx, AV_LOG_ERROR, "I cbpc damaged at %d %d\n", s->mb_x, s->mb_y); | 3978 av_log(s->avctx, AV_LOG_ERROR, "I cbpc damaged at %d %d\n", s->mb_x, s->mb_y); |
3987 } | 4001 } |
3988 cbp = (cbpc & 3) | (cbpy << 2); | 4002 cbp = (cbpc & 3) | (cbpy << 2); |
3989 if (dquant) { | 4003 if (dquant) { |
3990 h263_decode_dquant(s); | 4004 h263_decode_dquant(s); |
3991 } | 4005 } |
3992 } | 4006 |
3993 | 4007 /* decode each block */ |
3994 /* decode each block */ | 4008 for (i = 0; i < 6; i++) { |
3995 for (i = 0; i < 6; i++) { | 4009 if (h263_decode_block(s, block[i], i, cbp&32) < 0) |
3996 if (h263_decode_block(s, block[i], i, cbp&32) < 0) | 4010 return -1; |
3997 return -1; | 4011 cbp+=cbp; |
3998 cbp+=cbp; | 4012 } |
3999 } | 4013 } |
4000 end: | 4014 end: |
4001 | 4015 |
4002 /* per-MB end of slice check */ | 4016 /* per-MB end of slice check */ |
4003 { | 4017 { |