Commit e3bd83f8 authored by Michael Niedermayer's avatar Michael Niedermayer

10l (field select readed at the wrong place ...)

Originally committed as revision 939 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent fc97db64
...@@ -2840,10 +2840,21 @@ int h263_decode_mb(MpegEncContext *s, ...@@ -2840,10 +2840,21 @@ int h263_decode_mb(MpegEncContext *s,
if(cbp) if(cbp)
s->interlaced_dct= get_bits1(&s->gb); s->interlaced_dct= get_bits1(&s->gb);
if(mb_type!=MB_TYPE_B_DIRECT && get_bits1(&s->gb)) if(mb_type!=MB_TYPE_B_DIRECT && get_bits1(&s->gb)){
field_mv=1; field_mv=1;
if(mb_type!=MB_TYPE_B_BACKW){
s->field_select[0][0]= get_bits1(&s->gb);
s->field_select[0][1]= get_bits1(&s->gb);
}
if(mb_type!=MB_TYPE_B_FORW){
s->field_select[1][0]= get_bits1(&s->gb);
s->field_select[1][1]= get_bits1(&s->gb);
}
}
} }
s->mv_dir = 0;
if(mb_type!=MB_TYPE_B_DIRECT && !field_mv){ if(mb_type!=MB_TYPE_B_DIRECT && !field_mv){
s->mv_type= MV_TYPE_16X16; s->mv_type= MV_TYPE_16X16;
if(mb_type!=MB_TYPE_B_BACKW){ if(mb_type!=MB_TYPE_B_BACKW){
...@@ -2853,8 +2864,7 @@ int h263_decode_mb(MpegEncContext *s, ...@@ -2853,8 +2864,7 @@ int h263_decode_mb(MpegEncContext *s,
my = h263_decode_motion(s, s->last_mv[0][0][1], s->f_code); my = h263_decode_motion(s, s->last_mv[0][0][1], s->f_code);
s->last_mv[0][1][0]= s->last_mv[0][0][0]= s->mv[0][0][0] = mx; s->last_mv[0][1][0]= s->last_mv[0][0][0]= s->mv[0][0][0] = mx;
s->last_mv[0][1][1]= s->last_mv[0][0][1]= s->mv[0][0][1] = my; s->last_mv[0][1][1]= s->last_mv[0][0][1]= s->mv[0][0][1] = my;
}else }
s->mv_dir = 0;
if(mb_type!=MB_TYPE_B_FORW){ if(mb_type!=MB_TYPE_B_FORW){
s->mv_dir |= MV_DIR_BACKWARD; s->mv_dir |= MV_DIR_BACKWARD;
...@@ -2868,10 +2878,9 @@ int h263_decode_mb(MpegEncContext *s, ...@@ -2868,10 +2878,9 @@ int h263_decode_mb(MpegEncContext *s,
PRINT_MB_TYPE(mb_type==MB_TYPE_B_FORW ? "F" : (mb_type==MB_TYPE_B_BACKW ? "B" : "T")); PRINT_MB_TYPE(mb_type==MB_TYPE_B_FORW ? "F" : (mb_type==MB_TYPE_B_BACKW ? "B" : "T"));
}else if(mb_type!=MB_TYPE_B_DIRECT){ }else if(mb_type!=MB_TYPE_B_DIRECT){
s->mv_type= MV_TYPE_FIELD; s->mv_type= MV_TYPE_FIELD;
if(mb_type!=MB_TYPE_B_BACKW){ if(mb_type!=MB_TYPE_B_BACKW){
s->mv_dir = MV_DIR_FORWARD; s->mv_dir = MV_DIR_FORWARD;
s->field_select[0][0]= get_bits1(&s->gb);
s->field_select[0][1]= get_bits1(&s->gb);
for(i=0; i<2; i++){ for(i=0; i<2; i++){
mx = h263_decode_motion(s, s->last_mv[0][i][0] , s->f_code); mx = h263_decode_motion(s, s->last_mv[0][i][0] , s->f_code);
...@@ -2879,13 +2888,10 @@ int h263_decode_mb(MpegEncContext *s, ...@@ -2879,13 +2888,10 @@ int h263_decode_mb(MpegEncContext *s,
s->last_mv[0][i][0]= s->mv[0][i][0] = mx; s->last_mv[0][i][0]= s->mv[0][i][0] = mx;
s->last_mv[0][i][1]= (s->mv[0][i][1] = my)*2; s->last_mv[0][i][1]= (s->mv[0][i][1] = my)*2;
} }
}else }
s->mv_dir = 0;
if(mb_type!=MB_TYPE_B_FORW){ if(mb_type!=MB_TYPE_B_FORW){
s->mv_dir |= MV_DIR_BACKWARD; s->mv_dir |= MV_DIR_BACKWARD;
s->field_select[1][0]= get_bits1(&s->gb);
s->field_select[1][1]= get_bits1(&s->gb);
for(i=0; i<2; i++){ for(i=0; i<2; i++){
mx = h263_decode_motion(s, s->last_mv[1][i][0] , s->b_code); mx = h263_decode_motion(s, s->last_mv[1][i][0] , s->b_code);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment