Correct the mv offset for mpeg2 encoding on HSW
authorLi Xiaowei <xiaowei.a.li@intel.com>
Mon, 28 Jan 2013 05:22:09 +0000 (13:22 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Wed, 30 Jan 2013 08:06:41 +0000 (16:06 +0800)
Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
src/gen75_mfc.c

index 6262043..e7a3221 100644 (file)
@@ -2067,11 +2067,11 @@ gen75_mfc_mpeg2_pak_object_inter(VADriverContextP ctx,
     if (batch == NULL)
         batch = encoder_context->base.batch;
 
-    mvptr = (short *)msg;
-    mvx0 = mpeg2_motion_vector(mvptr[MPEG2_INTER_MV_OFFSET + 0] / 2, x, width_in_mbs * 16, pic_param->f_code[0][0]);
-    mvy0 = mpeg2_motion_vector(mvptr[MPEG2_INTER_MV_OFFSET + 1] / 2, y, height_in_mbs * 16, pic_param->f_code[0][0]);
-    mvx1 = mpeg2_motion_vector(mvptr[MPEG2_INTER_MV_OFFSET + 2] / 2, x, width_in_mbs * 16, pic_param->f_code[1][0]);
-    mvy1 = mpeg2_motion_vector(mvptr[MPEG2_INTER_MV_OFFSET + 3] / 2, y, height_in_mbs * 16, pic_param->f_code[1][0]);
+    mvptr = (short *)(msg + MPEG2_INTER_MV_OFFSET);
+    mvx0 = mpeg2_motion_vector(mvptr[0] / 2, x, width_in_mbs * 16, pic_param->f_code[0][0]);
+    mvy0 = mpeg2_motion_vector(mvptr[1] / 2, y, height_in_mbs * 16, pic_param->f_code[0][0]);
+    mvx1 = mpeg2_motion_vector(mvptr[2] / 2, x, width_in_mbs * 16, pic_param->f_code[1][0]);
+    mvy1 = mpeg2_motion_vector(mvptr[3] / 2, y, height_in_mbs * 16, pic_param->f_code[1][0]);
 
     BEGIN_BCS_BATCH(batch, len_in_dwords);