summaryrefslogtreecommitdiff
path: root/src/gen75_mfd.c
diff options
context:
space:
mode:
authorcarpalis <jerome.borsboom@carpalis.nl>2017-10-27 13:04:33 +0200
committerXiang, Haihao <haihao.xiang@intel.com>2018-01-05 14:57:31 +0800
commit9cba61ce395f943b4399e6646fa368dea958688f (patch)
treed49f2ec74d5047b633150b81e2fe9a8e6ceb3f47 /src/gen75_mfd.c
parent16871854bf5fadb33a59d4958546983f2a06011a (diff)
downloadlibva-intel-driver-9cba61ce395f943b4399e6646fa368dea958688f.tar.gz
genX_mfd: fix calculation of motion vector mode
As stated in the PRM, the FastUVMCFlag field should be equal to the LSB of the Motion Vector Mode field. This also conforms to VC-1 spec, as FASTUVMC controls whether color difference motion vectors are reconstructed with quarter of half pixel resolution. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
Diffstat (limited to 'src/gen75_mfd.c')
-rw-r--r--src/gen75_mfd.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/gen75_mfd.c b/src/gen75_mfd.c
index 13ee8b05..9906f604 100644
--- a/src/gen75_mfd.c
+++ b/src/gen75_mfd.c
@@ -1882,13 +1882,9 @@ gen75_mfd_vc1_pic_state(VADriverContextP ctx,
if (pic_param->mv_fields.bits.mv_mode == VAMvMode1MvHalfPelBilinear ||
(pic_param->mv_fields.bits.mv_mode == VAMvModeIntensityCompensation &&
pic_param->mv_fields.bits.mv_mode2 == VAMvMode1MvHalfPelBilinear))
- interpolation_mode = 9; /* Half-pel bilinear */
- else if (pic_param->mv_fields.bits.mv_mode == VAMvMode1MvHalfPel ||
- (pic_param->mv_fields.bits.mv_mode == VAMvModeIntensityCompensation &&
- pic_param->mv_fields.bits.mv_mode2 == VAMvMode1MvHalfPel))
- interpolation_mode = 1; /* Half-pel bicubic */
+ interpolation_mode = 8 | pic_param->fast_uvmc_flag;
else
- interpolation_mode = 0; /* Quarter-pel bicubic */
+ interpolation_mode = 0 | pic_param->fast_uvmc_flag;
BEGIN_BCS_BATCH(batch, 6);
OUT_BCS_BATCH(batch, MFD_VC1_LONG_PIC_STATE | (6 - 2));