[FFmpeg-devel] [PATCH 1/2] avutil/hwcontext_vulkan: add get_proc_addr option

Zhao Zhili quinkblack at foxmail.com
Wed Nov 1 18:56:46 EET 2023


From: Zhao Zhili <zhilizhao at tencent.com>

It allows to pass SDL_Vulkan_GetVkGetInstanceProcAddr to hwcontext.
---
 libavutil/hwcontext_vulkan.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 8481427b42..155fe37a33 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -747,7 +747,21 @@ static int create_instance(AVHWDeviceContext *ctx, AVDictionary *opts)
         .sType            = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
         .pApplicationInfo = &application_info,
     };
+    AVDictionaryEntry *opt_d;
+
+    opt_d = av_dict_get(opts, "get_proc_addr", NULL, 0);
+    if (opt_d) {
+        char *end = NULL;
+        uintptr_t addr = strtoull(opt_d->value, &end, 16);
 
+        if (end != opt_d->value) {
+            hwctx->get_proc_addr = (PFN_vkGetInstanceProcAddr)addr;
+        } else {
+            av_log(ctx, AV_LOG_ERROR, "Invalid get_proc_addr option value %s\n",
+                   opt_d->value);
+            return AVERROR(EINVAL);
+        }
+    }
     if (!hwctx->get_proc_addr) {
         err = load_libvulkan(ctx);
         if (err < 0)
-- 
2.34.1



More information about the ffmpeg-devel mailing list