vulkan: Add pixel-formats to query format properties

This commit is contained in:
columbarius 2023-09-24 00:09:14 +02:00
parent 439758f681
commit 80fa9ee516
3 changed files with 46 additions and 0 deletions

View file

@ -1,5 +1,6 @@
spa_vulkan_sources = [
'plugin.c',
'pixel-formats.c',
'vulkan-compute-filter.c',
'vulkan-compute-source.c',
'vulkan-compute-utils.c',

View file

@ -0,0 +1,33 @@
/* Spa */
/* SPDX-FileCopyrightText: Copyright © 2023 columbarius */
/* SPDX-License-Identifier: MIT */
#include "pixel-formats.h"
#include <spa/utils/defs.h>
#include <spa/param/video/raw.h>
struct pixel_info {
uint32_t format;
uint32_t bpp;
} pixel_infos[] = {
{ SPA_VIDEO_FORMAT_RGBA_F32, 16 },
{ SPA_VIDEO_FORMAT_BGRA, 4 },
{ SPA_VIDEO_FORMAT_RGBA, 4 },
{ SPA_VIDEO_FORMAT_BGRx, 4 },
{ SPA_VIDEO_FORMAT_RGBx, 4 },
{ SPA_VIDEO_FORMAT_BGR, 3 },
{ SPA_VIDEO_FORMAT_RGB, 3 },
};
bool get_pixel_format_info(uint32_t format, struct pixel_format_info *info)
{
struct pixel_info *p;
SPA_FOR_EACH_ELEMENT(pixel_infos, p) {
if (p->format != format)
continue;
info->bpp = p->bpp;
return true;
}
return false;
}

View file

@ -0,0 +1,12 @@
/* Spa */
/* SPDX-FileCopyrightText: Copyright © 2023 columbarius */
/* SPDX-License-Identifier: MIT */
#include <stdint.h>
#include <stdbool.h>
struct pixel_format_info {
uint32_t bpp; // bytes per pixel
};
bool get_pixel_format_info(uint32_t format, struct pixel_format_info *info);