diff --git a/libavcodec/ivi_common.c b/libavcodec/ivi_common.c index b930e1517d..b9ec1c28cd 100644 --- a/libavcodec/ivi_common.c +++ b/libavcodec/ivi_common.c @@ -330,7 +330,7 @@ int ff_ivi_dec_tile_data_size(GetBitContext *gb) int ff_ivi_decode_blocks(GetBitContext *gb, IVIBandDesc *band, IVITile *tile) { int mbn, blk, num_blocks, num_coeffs, blk_size, scan_pos, run, val, - pos, is_intra, mc_type, mv_x, mv_y, col_mask; + pos, is_intra, mc_type = 0, mv_x, mv_y, col_mask; uint8_t col_flags[8]; int32_t prev_dc, trvec[64]; uint32_t cbp, sym, lo, hi, quant, buf_offs, q; @@ -370,9 +370,7 @@ int ff_ivi_decode_blocks(GetBitContext *gb, IVIBandDesc *band, IVITile *tile) if (!is_intra) { mv_x = mb->mv_x; mv_y = mb->mv_y; - if (!band->is_halfpel) { - mc_type = 0; /* we have only fullpel vectors */ - } else { + if (band->is_halfpel) { mc_type = ((mv_y & 1) << 1) | (mv_x & 1); mv_x >>= 1; mv_y >>= 1; /* convert halfpel vectors into fullpel ones */