summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiang, Haihao <haihao.xiang@intel.com>2014-05-05 12:48:27 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2014-05-05 15:18:11 +0800
commita36f24198b46cba00a1d09f8c70dc86f36d98022 (patch)
tree089e5ada07e69f39c478fd9501d8535203f948f5
parent84a5695541346c0864166888abb60ee257b51a96 (diff)
Return error when trying to decoding an interlaced VC-1 video
https://bugs.freedesktop.org/show_bug.cgi?id=77386 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
-rw-r--r--src/i965_decoder_utils.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/i965_decoder_utils.c b/src/i965_decoder_utils.c
index 2533381..617bc15 100644
--- a/src/i965_decoder_utils.c
+++ b/src/i965_decoder_utils.c
@@ -654,7 +654,12 @@ intel_decoder_check_vc1_parameter(VADriverContextP ctx,
VAPictureParameterBufferVC1 *pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer;
struct object_surface *obj_surface;
int i = 0;
-
+
+ if (pic_param->sequence_fields.bits.interlace == 1 &&
+ pic_param->picture_fields.bits.frame_coding_mode != 0) { /* frame-interlace or field-interlace */
+ return VA_STATUS_ERROR_DECODING_ERROR;
+ }
+
if (pic_param->picture_fields.bits.picture_type == 0 ||
pic_param->picture_fields.bits.picture_type == 3) {
} else if (pic_param->picture_fields.bits.picture_type == 1 ||