[Libva] [Libva-intel-driver PATCH 8/9] Export the profile/entrypoints for the wrapped backend drivers

Zhao Yakui yakui.zhao at intel.com
Sat Sep 5 18:39:15 PDT 2015


Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
Signed-off-by: Sean V Kelley <seanvk at posteo.de>
---
 src/i965_drv_video.c | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c
index a2d2cc8..00860f8 100644
--- a/src/i965_drv_video.c
+++ b/src/i965_drv_video.c
@@ -564,6 +564,25 @@ i965_QueryConfigProfiles(VADriverContextP ctx,
         profile_list[i++] = VAProfileHEVCMain;
     }
 
+    if (i965->wrapper_pdrvctx) {
+        VAProfile wrapper_list[4];
+        int wrapper_num;
+        VADriverContextP pdrvctx;
+        VAStatus va_status;
+
+        pdrvctx = i965->wrapper_pdrvctx;
+        CALL_VTABLE(pdrvctx, va_status,
+                    vaQueryConfigProfiles(pdrvctx,
+                                          wrapper_list, &wrapper_num));
+
+        if (va_status == VA_STATUS_SUCCESS) {
+            int j;
+            for (j = 0; j < wrapper_num; j++)
+                if (wrapper_list[j] != VAProfileNone)
+                    profile_list[i++] = wrapper_list[j];
+        }
+    }
+
     /* If the assert fails then I965_MAX_PROFILES needs to be bigger */
     ASSERT_RET(i <= I965_MAX_PROFILES, VA_STATUS_ERROR_OPERATION_FAILED);
     *num_profiles = i;
@@ -648,6 +667,20 @@ i965_QueryConfigEntrypoints(VADriverContextP ctx,
 
         break;
 
+    case VAProfileVP9Profile0:
+        if (i965->wrapper_pdrvctx) {
+            VAStatus va_status = VA_STATUS_SUCCESS;
+            VADriverContextP pdrvctx = i965->wrapper_pdrvctx;
+
+            CALL_VTABLE(pdrvctx, va_status,
+                        vaQueryConfigEntrypoints(pdrvctx, profile,
+                                                 entrypoint_list,
+                                                 num_entrypoints));
+            return va_status;
+        }
+
+        break;
+
     default:
         break;
     }
@@ -745,6 +778,13 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
 
         break;
 
+    case VAProfileVP9Profile0:
+        if (i965->wrapper_pdrvctx)
+            va_status = VA_STATUS_SUCCESS;
+        else
+            va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
+        break;
+
     default:
         va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
         break;
-- 
1.8.4.2



More information about the Libva mailing list