diff options
author | carpalis <jerome.borsboom@carpalis.nl> | 2017-10-27 13:04:33 +0200 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2018-01-05 14:57:31 +0800 |
commit | 9cba61ce395f943b4399e6646fa368dea958688f (patch) | |
tree | d49f2ec74d5047b633150b81e2fe9a8e6ceb3f47 /src/gen75_mfd.c | |
parent | 16871854bf5fadb33a59d4958546983f2a06011a (diff) | |
download | libva-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.c | 8 |
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)); |