diff --git a/libavcodec/mpegvideo_xvmc.c b/libavcodec/mpegvideo_xvmc.c index 44e779648cc208a3077b16b4450ccb33cb526354..e6f9eada820931c4e0e5af75a3c2707ec22ad9a1 100644 --- a/libavcodec/mpegvideo_xvmc.c +++ b/libavcodec/mpegvideo_xvmc.c @@ -226,14 +226,10 @@ void ff_xvmc_decode_mb(MpegEncContext *s) //set correct field references if (s->mv_type == MV_TYPE_FIELD || s->mv_type == MV_TYPE_16X8) { - if (s->field_select[0][0]) - mv_block->motion_vertical_field_select |= 1; - if (s->field_select[1][0]) - mv_block->motion_vertical_field_select |= 2; - if (s->field_select[0][1]) - mv_block->motion_vertical_field_select |= 4; - if (s->field_select[1][1]) - mv_block->motion_vertical_field_select |= 8; + mv_block->motion_vertical_field_select |= s->field_select[0][0]; + mv_block->motion_vertical_field_select |= s->field_select[1][0]<<1; + mv_block->motion_vertical_field_select |= s->field_select[0][1]<<2; + mv_block->motion_vertical_field_select |= s->field_select[1][1]<<3; } }//!intra //time to handle data blocks;