diff options
author | Zhao Yakui <yakui.zhao@intel.com> | 2014-01-25 18:43:52 -0700 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2014-02-27 10:30:55 +0800 |
commit | 75c5420674e765d30fbbe553353ba8af30b8f0f1 (patch) | |
tree | b924ac518d942a754116848b865386371ee9b87c | |
parent | 9c2f9806af7653675a6d9414a50ce0f620d575d6 (diff) |
intel-vaapi: Add more checks for H264 decoding parameter to filter the unsupported clip
Signed-off-by: Yuan Feng <feng.yuan@intel.com>
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
-rw-r--r-- | src/i965_decoder_utils.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/i965_decoder_utils.c b/src/i965_decoder_utils.c index 7ba51ba..064074f 100644 --- a/src/i965_decoder_utils.c +++ b/src/i965_decoder_utils.c @@ -547,6 +547,7 @@ intel_update_vp8_frame_store_index(VADriverContextP ctx, static VAStatus intel_decoder_check_avc_parameter(VADriverContextP ctx, + VAProfile h264_profile, struct decode_state *decode_state) { struct i965_driver_data *i965 = i965_driver_data(ctx); @@ -566,6 +567,14 @@ intel_decoder_check_avc_parameter(VADriverContextP ctx, if (pic_param->CurrPic.picture_id != decode_state->current_render_target) goto error; + if ((h264_profile != VAProfileH264Baseline)) { + if (pic_param->num_slice_groups_minus1 || + pic_param->pic_fields.bits.redundant_pic_cnt_present_flag) { + WARN_ONCE("Unsupported the FMO/ASO constraints!!!\n"); + goto error; + } + } + for (i = 0; i < 16; i++) { if (pic_param->ReferenceFrames[i].flags & VA_PICTURE_H264_INVALID || pic_param->ReferenceFrames[i].picture_id == VA_INVALID_SURFACE) @@ -752,7 +761,7 @@ intel_decoder_sanity_check_input(VADriverContextP ctx, case VAProfileH264ConstrainedBaseline: case VAProfileH264Main: case VAProfileH264High: - vaStatus = intel_decoder_check_avc_parameter(ctx, decode_state); + vaStatus = intel_decoder_check_avc_parameter(ctx, profile, decode_state); break; case VAProfileVC1Simple: |