* [FFmpeg-devel] [PATCH 1/2] avutil/hwcontext_vulkan: add get_proc_addr option
@ 2023-11-01 16:56 Zhao Zhili
2023-11-01 18:12 ` Anton Khirnov
0 siblings, 1 reply; 4+ messages in thread
From: Zhao Zhili @ 2023-11-01 16:56 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Zhao Zhili
From: Zhao Zhili <zhilizhao@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
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/2] avutil/hwcontext_vulkan: add get_proc_addr option
2023-11-01 16:56 [FFmpeg-devel] [PATCH 1/2] avutil/hwcontext_vulkan: add get_proc_addr option Zhao Zhili
@ 2023-11-01 18:12 ` Anton Khirnov
2023-11-02 1:50 ` Zhao Zhili
0 siblings, 1 reply; 4+ messages in thread
From: Anton Khirnov @ 2023-11-01 18:12 UTC (permalink / raw)
To: FFmpeg development discussions and patches; +Cc: Zhao Zhili
Quoting Zhao Zhili (2023-11-01 17:56:46)
> From: Zhao Zhili <zhilizhao@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);
This is madness.
--
Anton Khirnov
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/2] avutil/hwcontext_vulkan: add get_proc_addr option
2023-11-01 18:12 ` Anton Khirnov
@ 2023-11-02 1:50 ` Zhao Zhili
2023-11-03 7:09 ` Zhao Zhili
0 siblings, 1 reply; 4+ messages in thread
From: Zhao Zhili @ 2023-11-02 1:50 UTC (permalink / raw)
To: FFmpeg development discussions and patches; +Cc: Zhao Zhili
> 在 2023年11月2日,上午2:12,Anton Khirnov <anton@khirnov.net> 写道:
>
> Quoting Zhao Zhili (2023-11-01 17:56:46)
>> From: Zhao Zhili <zhilizhao@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);
>
> This is madness.
Yes it is. Any better idea?
I can try to pass vulkan lib path, but it might impossible to get it in a portable way.
>
> --
> Anton Khirnov
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/2] avutil/hwcontext_vulkan: add get_proc_addr option
2023-11-02 1:50 ` Zhao Zhili
@ 2023-11-03 7:09 ` Zhao Zhili
0 siblings, 0 replies; 4+ messages in thread
From: Zhao Zhili @ 2023-11-03 7:09 UTC (permalink / raw)
To: FFmpeg development discussions and patches; +Cc: Lynne
Hi Lynne,
> On Nov 2, 2023, at 09:50, Zhao Zhili <quinkblack@foxmail.com> wrote:
>
>
>> 在 2023年11月2日,上午2:12,Anton Khirnov <anton@khirnov.net> 写道:
>>
>> Quoting Zhao Zhili (2023-11-01 17:56:46)
>>> From: Zhao Zhili <zhilizhao@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);
>>
>> This is madness.
>
> Yes it is. Any better idea?
>
> I can try to pass vulkan lib path, but it might impossible to get it in a portable way.
What do you think on this case? How to pass get_proc_addr to create_instance from
external? We can add an option to set lib path, but it’s not that flexible.
>
>>
>> --
>> Anton Khirnov
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-11-03 7:10 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-01 16:56 [FFmpeg-devel] [PATCH 1/2] avutil/hwcontext_vulkan: add get_proc_addr option Zhao Zhili
2023-11-01 18:12 ` Anton Khirnov
2023-11-02 1:50 ` Zhao Zhili
2023-11-03 7:09 ` Zhao Zhili
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git