kumquat-buildroot/package/libva/0001-adjust-call-sequence-to-ensure-authenticate.patch
Bernd Kuhls 0cedf59742 package/libva: bump version to 2.6.0
Added bugfix patch to fix known issue suggested by upstream:
https://github.com/intel/libva/releases/tag/2.6.0

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2020-01-05 21:57:51 +01:00

69 lines
2.8 KiB
Diff

From a80d2fe3bcc2c14c6e1434615d1be38924b668ea Mon Sep 17 00:00:00 2001
From: Carl Zhang <carl.zhang@intel.com>
Date: Mon, 30 Dec 2019 04:38:43 -0500
Subject: [PATCH] adjust call sequence to ensure authenticate operation is
executed
fixes #355
Downloaded from upstream PR: https://github.com/intel/libva/pull/356
Signed-off-by: Carl Zhang <carl.zhang@intel.com>
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
va/va.c | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/va/va.c b/va/va.c
index cfcabff..7f014a1 100644
--- a/va/va.c
+++ b/va/va.c
@@ -367,11 +367,23 @@ static VAStatus va_getDriverNameByIndex(VADisplay dpy, char **driver_name, int c
VADisplayContextP pDisplayContext = (VADisplayContextP)dpy;
const char *driver_name_env = NULL;
VADriverContextP ctx;
+ VAStatus status = VA_STATUS_SUCCESS;
ctx = CTX(dpy);
+ if (pDisplayContext->vaGetDriverNameByIndex) {
+ /*if vaGetDriverNameByIndex is implemented*/
+ status = pDisplayContext->vaGetDriverNameByIndex(pDisplayContext, driver_name, candidate_index);
+ } else {
+ if (candidate_index == 0)
+ status = pDisplayContext->vaGetDriverName(pDisplayContext, driver_name);
+ else
+ status = VA_STATUS_ERROR_INVALID_PARAMETER;
+ }
driver_name_env = getenv("LIBVA_DRIVER_NAME");
/*if user set driver name by vaSetDriverName */
if (ctx->override_driver_name){
+ if(*driver_name)
+ free(*driver_name);
*driver_name = strdup(ctx->override_driver_name);
if (!(*driver_name)) {
va_errorMessage(dpy, "va_getDriverNameByIndex failed with %s, out of memory\n",vaErrorStr(VA_STATUS_ERROR_ALLOCATION_FAILED));
@@ -380,19 +392,14 @@ static VAStatus va_getDriverNameByIndex(VADisplay dpy, char **driver_name, int c
va_infoMessage(dpy, "User requested driver '%s'\n", *driver_name);
return VA_STATUS_SUCCESS;
} else if (driver_name_env && (geteuid() == getuid())) {
+ if(*driver_name)
+ free(*driver_name);
/*if user set driver name by environment variable*/
*driver_name = strdup(driver_name_env);
va_infoMessage(dpy, "User environment variable requested driver '%s'\n", *driver_name);
return VA_STATUS_SUCCESS;
- } else if (pDisplayContext->vaGetDriverNameByIndex) {
- /*if vaGetDriverNameByIndex is implemented*/
- return pDisplayContext->vaGetDriverNameByIndex(pDisplayContext, driver_name, candidate_index);
- } else {
- if (candidate_index == 0)
- return pDisplayContext->vaGetDriverName(pDisplayContext, driver_name);
- else
- return VA_STATUS_ERROR_INVALID_PARAMETER;
- }
+ }
+ return status;
}
static char *va_getDriverPath(const char *driver_dir, const char *driver_name)