OSDN Git Service

ENC: Disable the ROI feature of AVC encoder on SKL/APL/KBL
authorPengfei Qu <Pengfei.Qu@intel.com>
Wed, 5 Apr 2017 05:52:13 +0000 (13:52 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Thu, 6 Apr 2017 12:50:38 +0000 (20:50 +0800)
this is WA to disable the feature as the new improved AVC encoder does not support it by now.

Fixes #108

Signed-off-by: Pengfei Qu <Pengfei.Qu@intel.com>
(cherry picked from commit eb2b7f3e9f40f32506136be4f2cec3f1b8d1699f)

src/i965_drv_video.c

index 50de7a1..0ca5332 100644 (file)
@@ -1043,18 +1043,24 @@ i965_GetConfigAttributes(VADriverContextP ctx,
                     profile == VAProfileH264Main ||
                     profile == VAProfileH264High) {
 
-                    VAConfigAttribValEncROI *roi_config =
-                        (VAConfigAttribValEncROI *)&(attrib_list[i].value);
+                    if (IS_GEN9(i965->intel.device_info)&&
+                        entrypoint == VAEntrypointEncSlice)
+                        attrib_list[i].value = 0;
+                    else {
 
-                    if(entrypoint == VAEntrypointEncSliceLP) {
-                        roi_config->bits.num_roi_regions = 3;
-                        roi_config->bits.roi_rc_priority_support = 0;
-                        roi_config->bits.roi_rc_qp_delat_support = 0;
-                    } else {
-                        roi_config->bits.num_roi_regions =
-                            I965_MAX_NUM_ROI_REGIONS;
-                        roi_config->bits.roi_rc_priority_support = 0;
-                        roi_config->bits.roi_rc_qp_delat_support = 1;
+                        VAConfigAttribValEncROI *roi_config =
+                            (VAConfigAttribValEncROI *)&(attrib_list[i].value);
+
+                        if(entrypoint == VAEntrypointEncSliceLP) {
+                            roi_config->bits.num_roi_regions = 3;
+                            roi_config->bits.roi_rc_priority_support = 0;
+                            roi_config->bits.roi_rc_qp_delat_support = 0;
+                        } else {
+                            roi_config->bits.num_roi_regions =
+                                I965_MAX_NUM_ROI_REGIONS;
+                            roi_config->bits.roi_rc_priority_support = 0;
+                            roi_config->bits.roi_rc_qp_delat_support = 1;
+                        }
                     }
                 }else {
                     attrib_list[i].value = 0;