[Libva] [PATCH] intel-vaapi: Add more checks for H264 decoding parameter to filter the unsupported clip

yakui.zhao at intel.com yakui.zhao at intel.com
Sat Jan 25 17:43:52 PST 2014


From: Zhao Yakui <yakui.zhao at intel.com>

Signed-off-by: Yuan Feng <feng.yuan at intel.com>
Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
---
 src/i965_decoder_utils.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/i965_decoder_utils.c b/src/i965_decoder_utils.c
index cf7f60b..597d239 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:
-- 
1.7.12-rc1



More information about the Libva mailing list