diff options
author | Lynne <dev@lynne.ee> | 2025-07-11 00:03:36 +0900 |
---|---|---|
committer | Lynne <dev@lynne.ee> | 2025-08-08 01:06:11 +0900 |
commit | 1f72bf5ec8c0abfd3f9fb0659f74defc99b3aef9 (patch) | |
tree | 92f9c2693c5f295da3f23731443a2f39adacddda | |
parent | 01a292c7e36545ddeb3c7f79cd02e2611cd37d73 (diff) | |
download | ffmpeg-1f72bf5ec8c0abfd3f9fb0659f74defc99b3aef9.tar.gz |
vulkan: add support for 16-bit RGGB Bayer pixfmt
-rw-r--r-- | libavutil/hwcontext_vulkan.c | 3 | ||||
-rw-r--r-- | libavutil/vulkan.c | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c index 40e27d56ad..dd362ab205 100644 --- a/libavutil/hwcontext_vulkan.c +++ b/libavutil/hwcontext_vulkan.c @@ -379,6 +379,9 @@ static const struct FFVkFormatEntry { { VK_FORMAT_R32_UINT, AV_PIX_FMT_GBRAP32, VK_IMAGE_ASPECT_COLOR_BIT, 4, 4, 4, { VK_FORMAT_R32_UINT, VK_FORMAT_R32_UINT, VK_FORMAT_R32_UINT, VK_FORMAT_R32_UINT } }, { VK_FORMAT_R32_SFLOAT, AV_PIX_FMT_GBRAPF32, VK_IMAGE_ASPECT_COLOR_BIT, 4, 4, 4, { VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32_SFLOAT } }, + /* Bayer */ + { VK_FORMAT_R16_UNORM, AV_PIX_FMT_BAYER_RGGB16, VK_IMAGE_ASPECT_COLOR_BIT, 1, 1, 1, { VK_FORMAT_R16_UNORM } }, + /* Two-plane 420 YUV at 8, 10, 12 and 16 bits */ { VK_FORMAT_G8_B8R8_2PLANE_420_UNORM, AV_PIX_FMT_NV12, ASPECT_2PLANE, 2, 1, 2, { VK_FORMAT_R8_UNORM, VK_FORMAT_R8G8_UNORM } }, { VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, AV_PIX_FMT_P010, ASPECT_2PLANE, 2, 1, 2, { VK_FORMAT_R16_UNORM, VK_FORMAT_R16G16_UNORM } }, diff --git a/libavutil/vulkan.c b/libavutil/vulkan.c index 420e7f631f..ef755ad6f7 100644 --- a/libavutil/vulkan.c +++ b/libavutil/vulkan.c @@ -1543,7 +1543,7 @@ int ff_vk_mt_is_np_rgb(enum AVPixelFormat pix_fmt) 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_GBRP) + pix_fmt == AV_PIX_FMT_GBRP || pix_fmt == AV_PIX_FMT_BAYER_RGGB16) return 1; return 0; } @@ -1700,7 +1700,8 @@ const char *ff_vk_shader_rep_fmt(enum AVPixelFormat pix_fmt, case AV_PIX_FMT_YUVA422P16: case AV_PIX_FMT_YUVA444P10: case AV_PIX_FMT_YUVA444P12: - case AV_PIX_FMT_YUVA444P16: { + case AV_PIX_FMT_YUVA444P16: + case AV_PIX_FMT_BAYER_RGGB16: { const char *rep_tab[] = { [FF_VK_REP_NATIVE] = "r16ui", [FF_VK_REP_FLOAT] = "r16f", |