[Libva] [PATCH v2 8/8] Remove gen7 only limitation for encoding configuration

Zhong Li zhong.li at intel.com
Thu Aug 7 21:05:43 PDT 2014


Since all generations from gen6 can support avc encoding configuration,
remove gen7 only limitation.
MVC also can be support with little change, but it is low priority,
it will be support when necessary and this function is stable.

Signed-off-by: Zhong Li <zhong.li at intel.com>
---
 src/i965_drv_video.c |    4 +++-
 src/i965_encoder.c   |    8 ++------
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c
index 3e88cc2..e29d2fb 100755
--- a/src/i965_drv_video.c
+++ b/src/i965_drv_video.c
@@ -678,7 +678,9 @@ i965_GetConfigAttributes(VADriverContextP ctx,
 	case VAConfigAttribEncQualityRange:
 	    if (entrypoint == VAEntrypointEncSlice) {
 		attrib_list[i].value = 1;
-                if(IS_GEN7(i965->intel.device_info))
+                if (profile == VAProfileH264ConstrainedBaseline ||
+                    profile == VAProfileH264Main ||
+                    profile == VAProfileH264High )
                     attrib_list[i].value = ENCODER_QUALITY_RANGE;
 		break;
 	    }
diff --git a/src/i965_encoder.c b/src/i965_encoder.c
index f1c1f3d..f66d889 100644
--- a/src/i965_encoder.c
+++ b/src/i965_encoder.c
@@ -375,6 +375,7 @@ intel_enc_hw_context_init(VADriverContextP ctx,
     case VAProfileH264Main:
     case VAProfileH264High:
         encoder_context->codec = CODEC_H264;
+        encoder_context->quality_range = ENCODER_QUALITY_RANGE;
         break;
 
     case VAProfileH264StereoHigh:
@@ -424,13 +425,8 @@ gen6_enc_hw_context_init(VADriverContextP ctx, struct object_config *obj_config)
 struct hw_context *
 gen7_enc_hw_context_init(VADriverContextP ctx, struct object_config *obj_config)
 {
-    struct intel_encoder_context *encoder_context;
 
-    encoder_context = (struct intel_encoder_context *)intel_enc_hw_context_init(ctx, obj_config, gen7_vme_context_init, gen7_mfc_context_init);
-
-    encoder_context->quality_range = ENCODER_QUALITY_RANGE;
-
-    return (struct hw_context *)encoder_context;
+    return intel_enc_hw_context_init(ctx, obj_config, gen7_vme_context_init, gen7_mfc_context_init);
 }
 
 struct hw_context *
-- 
1.7.9.5



More information about the Libva mailing list