diff options
-rw-r--r-- | libavcodec/mpeg12.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c index d0b24d0553..f0cbd8e7d6 100644 --- a/libavcodec/mpeg12.c +++ b/libavcodec/mpeg12.c @@ -338,23 +338,20 @@ static int mpeg_decode_mb(MpegEncContext *s, if (mb_type & MB_TYPE_ZERO_MV){ assert(mb_type & MB_TYPE_CBP); - /* compute dct type */ - if (s->picture_structure == PICT_FRAME && //FIXME add a interlaced_dct coded var? - !s->frame_pred_frame_dct) { - s->interlaced_dct = get_bits1(&s->gb); - } - - if (IS_QUANT(mb_type)) - s->qscale = get_qscale(s); - s->mv_dir = MV_DIR_FORWARD; - if(s->picture_structure == PICT_FRAME) + if(s->picture_structure == PICT_FRAME){ + if(!s->frame_pred_frame_dct) + s->interlaced_dct = get_bits1(&s->gb); s->mv_type = MV_TYPE_16X16; - else{ + }else{ s->mv_type = MV_TYPE_FIELD; mb_type |= MB_TYPE_INTERLACED; s->field_select[0][0]= s->picture_structure - 1; } + + if (IS_QUANT(mb_type)) + s->qscale = get_qscale(s); + s->last_mv[0][0][0] = 0; s->last_mv[0][0][1] = 0; s->last_mv[0][1][0] = 0; |