From: Boyuan Zhang <boyuan.zh...@amd.com>

Add entrypoint check for HEVC to differentiate decode and encode jobs.

Signed-off-by: Boyuan Zhang <boyuan.zh...@amd.com>
Acked-by: Christian K├Ânig <christian.koe...@amd.com>
---
 src/gallium/state_trackers/va/context.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/gallium/state_trackers/va/context.c 
b/src/gallium/state_trackers/va/context.c
index f03b326..f567f54 100644
--- a/src/gallium/state_trackers/va/context.c
+++ b/src/gallium/state_trackers/va/context.c
@@ -263,16 +263,18 @@ vlVaCreateContext(VADriverContextP ctx, VAConfigID 
config_id, int picture_width,
 
      case PIPE_VIDEO_FORMAT_HEVC:
          context->templat.max_references = num_render_targets;
-         context->desc.h265.pps = CALLOC_STRUCT(pipe_h265_pps);
-         if (!context->desc.h265.pps) {
-            FREE(context);
-            return VA_STATUS_ERROR_ALLOCATION_FAILED;
-         }
-         context->desc.h265.pps->sps = CALLOC_STRUCT(pipe_h265_sps);
-         if (!context->desc.h265.pps->sps) {
-            FREE(context->desc.h265.pps);
-            FREE(context);
-            return VA_STATUS_ERROR_ALLOCATION_FAILED;
+         if (config->entrypoint != PIPE_VIDEO_ENTRYPOINT_ENCODE) {
+            context->desc.h265.pps = CALLOC_STRUCT(pipe_h265_pps);
+            if (!context->desc.h265.pps) {
+               FREE(context);
+               return VA_STATUS_ERROR_ALLOCATION_FAILED;
+            }
+            context->desc.h265.pps->sps = CALLOC_STRUCT(pipe_h265_sps);
+            if (!context->desc.h265.pps->sps) {
+               FREE(context->desc.h265.pps);
+               FREE(context);
+               return VA_STATUS_ERROR_ALLOCATION_FAILED;
+            }
          }
          break;
 
-- 
2.7.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to