vkformat: fix format conversion for matching vulkan formats

Other formats still need a swizzle or conversion.
This commit is contained in:
Matthew Waters 2019-05-16 19:36:18 +10:00
parent 5478d39900
commit 25a970f9d5

View File

@ -55,23 +55,27 @@ gst_vulkan_format_from_video_format (GstVideoFormat v_format, guint plane)
switch (v_format) { switch (v_format) {
case GST_VIDEO_FORMAT_RGBx: case GST_VIDEO_FORMAT_RGBx:
case GST_VIDEO_FORMAT_BGRx:
case GST_VIDEO_FORMAT_xRGB:
case GST_VIDEO_FORMAT_xBGR:
case GST_VIDEO_FORMAT_RGBA: case GST_VIDEO_FORMAT_RGBA:
return VK_FORMAT_R8G8B8A8_UNORM;
case GST_VIDEO_FORMAT_BGRx:
case GST_VIDEO_FORMAT_BGRA: case GST_VIDEO_FORMAT_BGRA:
return VK_FORMAT_B8G8R8A8_UNORM;
case GST_VIDEO_FORMAT_xRGB:
case GST_VIDEO_FORMAT_ARGB: case GST_VIDEO_FORMAT_ARGB:
case GST_VIDEO_FORMAT_xBGR:
case GST_VIDEO_FORMAT_ABGR: case GST_VIDEO_FORMAT_ABGR:
case GST_VIDEO_FORMAT_AYUV: case GST_VIDEO_FORMAT_AYUV:
n_plane_components = 4; n_plane_components = 4;
break; break;
case GST_VIDEO_FORMAT_RGB: case GST_VIDEO_FORMAT_RGB:
return VK_FORMAT_R8G8B8_UNORM;
case GST_VIDEO_FORMAT_BGR: case GST_VIDEO_FORMAT_BGR:
n_plane_components = 3; return VK_FORMAT_B8G8R8_UNORM;
break; break;
case GST_VIDEO_FORMAT_RGB16: case GST_VIDEO_FORMAT_RGB16:
case GST_VIDEO_FORMAT_BGR16:
return VK_FORMAT_R5G6B5_UNORM_PACK16; return VK_FORMAT_R5G6B5_UNORM_PACK16;
case GST_VIDEO_FORMAT_BGR16:
return VK_FORMAT_B5G6R5_UNORM_PACK16;
case GST_VIDEO_FORMAT_GRAY16_BE: case GST_VIDEO_FORMAT_GRAY16_BE:
case GST_VIDEO_FORMAT_GRAY16_LE: case GST_VIDEO_FORMAT_GRAY16_LE:
case GST_VIDEO_FORMAT_YUY2: case GST_VIDEO_FORMAT_YUY2:
@ -99,8 +103,6 @@ gst_vulkan_format_from_video_format (GstVideoFormat v_format, guint plane)
switch (n_plane_components) { switch (n_plane_components) {
case 4: case 4:
return VK_FORMAT_R8G8B8A8_UNORM; return VK_FORMAT_R8G8B8A8_UNORM;
case 3:
return VK_FORMAT_R8G8B8_UNORM;
case 2: case 2:
return VK_FORMAT_R8G8_UNORM; return VK_FORMAT_R8G8_UNORM;
case 1: case 1: