mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
hwcontext_vulkan: fix uploading and downloading from/to flipped images
We want to copy the lowest amount of bytes per line, but while the buffer stride is sanitized, the src/dst stride can be negative, and negative numbers of bytes do not make a lot of sense.
This commit is contained in:
parent
2502e13b07
commit
64b12624e2
@ -3063,7 +3063,8 @@ static int vulkan_transfer_data_from_mem(AVHWFramesContext *hwfc, AVFrame *dst,
|
||||
|
||||
av_image_copy_plane(tmp.data[i], tmp.linesize[i],
|
||||
(const uint8_t *)src->data[i], src->linesize[i],
|
||||
FFMIN(tmp.linesize[i], src->linesize[i]), p_height);
|
||||
FFMIN(tmp.linesize[i], FFABS(src->linesize[i])),
|
||||
p_height);
|
||||
}
|
||||
|
||||
if ((err = unmap_buffers(dev_ctx, bufs, planes, 1)))
|
||||
@ -3251,7 +3252,8 @@ static int vulkan_transfer_data_to_mem(AVHWFramesContext *hwfc, AVFrame *dst,
|
||||
|
||||
av_image_copy_plane(dst->data[i], dst->linesize[i],
|
||||
(const uint8_t *)tmp.data[i], tmp.linesize[i],
|
||||
FFMIN(tmp.linesize[i], dst->linesize[i]), p_height);
|
||||
FFMIN(tmp.linesize[i], FFABS(dst->linesize[i])),
|
||||
p_height);
|
||||
}
|
||||
|
||||
err = unmap_buffers(dev_ctx, bufs, planes, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user