Browse Source

Factor out block decoding in ff_h263_decode_mb()

Originally committed as revision 17734 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.6
Kostya Shishkov 16 years ago
parent
commit
b89e77cff7
1 changed files with 11 additions and 25 deletions
  1. +11
    -25
      libavcodec/h263.c

+ 11
- 25
libavcodec/h263.c View File

@@ -4005,18 +4005,6 @@ int ff_h263_decode_mb(MpegEncContext *s,
mot_val[1] = my; mot_val[1] = my;
} }
} }

/* decode each block */
for (i = 0; i < 6; i++) {
if (h263_decode_block(s, block[i], i, cbp&32) < 0)
return -1;
cbp+=cbp;
}

if(s->obmc){
if(s->pict_type == FF_P_TYPE && s->mb_x+1<s->mb_width && s->mb_num_left != 1)
preview_obmc(s);
}
} else if(s->pict_type==FF_B_TYPE) { } else if(s->pict_type==FF_B_TYPE) {
int mb_type; int mb_type;
const int stride= s->b8_stride; const int stride= s->b8_stride;
@@ -4105,13 +4093,6 @@ int ff_h263_decode_mb(MpegEncContext *s,
} }


s->current_picture.mb_type[xy]= mb_type; s->current_picture.mb_type[xy]= mb_type;

/* decode each block */
for (i = 0; i < 6; i++) {
if (h263_decode_block(s, block[i], i, cbp&32) < 0)
return -1;
cbp+=cbp;
}
} else { /* I-Frame */ } else { /* I-Frame */
do{ do{
cbpc = get_vlc2(&s->gb, intra_MCBPC_vlc.table, INTRA_MCBPC_VLC_BITS, 2); cbpc = get_vlc2(&s->gb, intra_MCBPC_vlc.table, INTRA_MCBPC_VLC_BITS, 2);
@@ -4146,13 +4127,18 @@ intra:
if (dquant) { if (dquant) {
h263_decode_dquant(s); h263_decode_dquant(s);
} }
}


/* decode each block */
for (i = 0; i < 6; i++) {
if (h263_decode_block(s, block[i], i, cbp&32) < 0)
return -1;
cbp+=cbp;
}
/* decode each block */
for (i = 0; i < 6; i++) {
if (h263_decode_block(s, block[i], i, cbp&32) < 0)
return -1;
cbp+=cbp;
}

if(s->obmc && !s->mb_intra){
if(s->pict_type == FF_P_TYPE && s->mb_x+1<s->mb_width && s->mb_num_left != 1)
preview_obmc(s);
} }
end: end:




Loading…
Cancel
Save