* [FFmpeg-devel] [PATCH] avutil/hwcontext_vulkan: don't over-map buffers with prior padding
@ 2025-07-15 10:51 Niklas Haas
2025-07-15 11:45 ` Lynne
0 siblings, 1 reply; 2+ messages in thread
From: Niklas Haas @ 2025-07-15 10:51 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Niklas Haas
From: Niklas Haas <git@haasn.dev>
If the image data is not at the start of the buffer allocation, such as
when the buffer has padding before the image data, this function maps too
much memory, since src_data + src_buf->size exceeds the buffer size.
Fix this by subtracting the difference between the buffer start and the
provided image data pointer from the size of the memory range to map.
An easy way to reproduce this issue is using the vf_pad filter, which
allocates image data buffers with a nonzero offset whenever padding is
requested before the start of the image data.
---
libavutil/vulkan.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libavutil/vulkan.c b/libavutil/vulkan.c
index f36f2bb7cf..04cc45ee05 100644
--- a/libavutil/vulkan.c
+++ b/libavutil/vulkan.c
@@ -1408,7 +1408,8 @@ int ff_vk_host_map_buffer(FFVulkanContext *s, AVBufferRef **dst,
return AVERROR(ENOMEM);
/* Add the offset at the start, which gets ignored */
- buffer_size = offs + src_buf->size;
+ const ptrdiff_t src_offset = src_data - src_buf->data;
+ buffer_size = offs + (src_buf->size - src_offset);
buffer_size = FFALIGN(buffer_size, s->props.properties.limits.minMemoryMapAlignment);
buffer_size = FFALIGN(buffer_size, s->hprops.minImportedHostPointerAlignment);
--
2.49.0
_______________________________________________
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] 2+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avutil/hwcontext_vulkan: don't over-map buffers with prior padding
2025-07-15 10:51 [FFmpeg-devel] [PATCH] avutil/hwcontext_vulkan: don't over-map buffers with prior padding Niklas Haas
@ 2025-07-15 11:45 ` Lynne
0 siblings, 0 replies; 2+ messages in thread
From: Lynne @ 2025-07-15 11:45 UTC (permalink / raw)
To: ffmpeg-devel
On 15/07/2025 19:51, Niklas Haas wrote:
> From: Niklas Haas <git@haasn.dev>
>
> If the image data is not at the start of the buffer allocation, such as
> when the buffer has padding before the image data, this function maps too
> much memory, since src_data + src_buf->size exceeds the buffer size.
>
> Fix this by subtracting the difference between the buffer start and the
> provided image data pointer from the size of the memory range to map.
>
> An easy way to reproduce this issue is using the vf_pad filter, which
> allocates image data buffers with a nonzero offset whenever padding is
> requested before the start of the image data.
> ---
> libavutil/vulkan.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/libavutil/vulkan.c b/libavutil/vulkan.c
> index f36f2bb7cf..04cc45ee05 100644
> --- a/libavutil/vulkan.c
> +++ b/libavutil/vulkan.c
> @@ -1408,7 +1408,8 @@ int ff_vk_host_map_buffer(FFVulkanContext *s, AVBufferRef **dst,
> return AVERROR(ENOMEM);
>
> /* Add the offset at the start, which gets ignored */
> - buffer_size = offs + src_buf->size;
> + const ptrdiff_t src_offset = src_data - src_buf->data;
> + buffer_size = offs + (src_buf->size - src_offset);
> buffer_size = FFALIGN(buffer_size, s->props.properties.limits.minMemoryMapAlignment);
> buffer_size = FFALIGN(buffer_size, s->hprops.minImportedHostPointerAlignment);
>
lgtm
_______________________________________________
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] 2+ messages in thread
end of thread, other threads:[~2025-07-15 11:45 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-07-15 10:51 [FFmpeg-devel] [PATCH] avutil/hwcontext_vulkan: don't over-map buffers with prior padding Niklas Haas
2025-07-15 11:45 ` Lynne
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