[FFmpeg-cvslog] hwcontext_vulkan: support AV_PIX_FMT_GBRP
Lynne
git at videolan.org
Thu May 1 10:35:00 EEST 2025
ffmpeg | branch: master | Lynne <dev at lynne.ee> | Tue Apr 29 07:41:36 2025 +0200| [33a4d3610162758ddb0390a93ea10c4e8fea7e9d] | committer: Lynne
hwcontext_vulkan: support AV_PIX_FMT_GBRP
Support was partially added previously in vulkan.c, but now it's fully
supported.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=33a4d3610162758ddb0390a93ea10c4e8fea7e9d
---
libavutil/hwcontext_vulkan.c | 1 +
libavutil/vulkan.c | 6 ++++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index ade0235ef1..e5b139132c 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -351,6 +351,7 @@ static const struct FFVkFormatEntry {
{ VK_FORMAT_R32G32B32A32_UINT, AV_PIX_FMT_RGBA128, VK_IMAGE_ASPECT_COLOR_BIT, 1, 1, 1, { VK_FORMAT_R32G32B32A32_UINT } },
/* Planar RGB */
+ { VK_FORMAT_R8_UNORM, AV_PIX_FMT_GBRP, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R8_UNORM, VK_FORMAT_R8_UNORM, VK_FORMAT_R8_UNORM } },
{ VK_FORMAT_R16_UNORM, AV_PIX_FMT_GBRP10, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } },
{ VK_FORMAT_R16_UNORM, AV_PIX_FMT_GBRP12, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } },
{ VK_FORMAT_R16_UNORM, AV_PIX_FMT_GBRP14, VK_IMAGE_ASPECT_COLOR_BIT, 3, 3, 3, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM, VK_FORMAT_R16_UNORM } },
diff --git a/libavutil/vulkan.c b/libavutil/vulkan.c
index 55e3bbfd8e..2cc8ec110e 100644
--- a/libavutil/vulkan.c
+++ b/libavutil/vulkan.c
@@ -1493,7 +1493,8 @@ int ff_vk_mt_is_np_rgb(enum AVPixelFormat pix_fmt)
pix_fmt == AV_PIX_FMT_GBRPF32 || pix_fmt == AV_PIX_FMT_GBRAPF32 ||
pix_fmt == AV_PIX_FMT_X2RGB10 || pix_fmt == AV_PIX_FMT_X2BGR10 ||
pix_fmt == AV_PIX_FMT_RGBAF32 || pix_fmt == AV_PIX_FMT_RGBF32 ||
- pix_fmt == AV_PIX_FMT_RGBA128 || pix_fmt == AV_PIX_FMT_RGB96)
+ pix_fmt == AV_PIX_FMT_RGBA128 || pix_fmt == AV_PIX_FMT_RGB96 ||
+ pix_fmt == AV_PIX_FMT_GBRP)
return 1;
return 0;
}
@@ -1501,8 +1502,8 @@ int ff_vk_mt_is_np_rgb(enum AVPixelFormat pix_fmt)
void ff_vk_set_perm(enum AVPixelFormat pix_fmt, int lut[4], int inv)
{
switch (pix_fmt) {
- case AV_PIX_FMT_GBRAP:
case AV_PIX_FMT_GBRP:
+ case AV_PIX_FMT_GBRAP:
case AV_PIX_FMT_GBRAP10:
case AV_PIX_FMT_GBRAP12:
case AV_PIX_FMT_GBRAP14:
@@ -1605,6 +1606,7 @@ const char *ff_vk_shader_rep_fmt(enum AVPixelFormat pix_fmt,
};
return rep_tab[rep_fmt];
}
+ case AV_PIX_FMT_GBRP:
case AV_PIX_FMT_GRAY8:
case AV_PIX_FMT_GBRAP:
case AV_PIX_FMT_YUV420P:
More information about the ffmpeg-cvslog
mailing list