From 75ba8f403ddf8fa255f8de417214f77cfd76bfd6 Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Mon, 26 May 2025 18:36:00 +0200 Subject: [PATCH] util/format: Use more descriptive names for YUV formats This is the first step for more auto-generated YUV helpers. We keep the short/fourcc names as aliases, and generate defines so we don't have to patch the existing code, but ultimately, it'd be good to consistently use the fully descriptive names so it's easier to reason about the formats when reading the code. Signed-off-by: Boris Brezillon Part-of: --- src/util/format/u_format.yaml | 72 ++++++++++----- src/util/format/u_format_parse.py | 5 + src/util/format/u_format_table.py | 45 +++++---- src/util/format/u_format_yuv.c | 148 +++++++++++++++++++----------- src/util/format/u_format_yuv.h | 148 +++++++++++++++++++----------- 5 files changed, 262 insertions(+), 156 deletions(-) diff --git a/src/util/format/u_format.yaml b/src/util/format/u_format.yaml index 7b627402f37..767d884c52b 100644 --- a/src/util/format/u_format.yaml +++ b/src/util/format/u_format.yaml @@ -685,39 +685,45 @@ # YUV formats # http://www.fourcc.org/yuv.php#UYVY -- name: UYVY +- name: U8Y8V8Y8_422_UNORM + alias: UYVY layout: subsampled colorspace: YUV block: {width: 2, height: 1, depth: 1} channels: [UN8, UN8, UN8, UN8] swizzles: [X, Y, Z, 1] -- name: VYUY +- name: V8Y8U8Y8_422_UNORM + alias: VYUY layout: subsampled colorspace: YUV block: {width: 2, height: 1, depth: 1} channels: [UN8, UN8, UN8, UN8] swizzles: [X, Y, Z, 1] # http://www.fourcc.org/yuv.php#YUYV (a.k.a http://www.fourcc.org/yuv.php#YUY2) -- name: YUYV +- name: Y8U8Y8V8_422_UNORM + alias: YUYV layout: subsampled colorspace: YUV block: {width: 2, height: 1, depth: 1} channels: [UN8, UN8, UN8, UN8] swizzles: [X, Y, Z, 1] -- name: YVYU +- name: Y8V8Y8U8_422_UNORM + alias: YVYU layout: subsampled colorspace: YUV block: {width: 2, height: 1, depth: 1} channels: [UN8, UN8, UN8, UN8] swizzles: [X, Y, Z, 1] -- name: AYUV +- name: A8Y8U8V8_444_UNORM + alias: AYUV layout: other colorspace: YUV block: {width: 4, height: 4, depth: 1} channels: [UN8] swizzles: [X, Y, Z, W] -- name: XYUV +- name: X8Y8U8V8_444_UNORM + alias: XYUV layout: other colorspace: YUV block: {width: 4, height: 4, depth: 1} @@ -1964,31 +1970,36 @@ swizzles: [X, Y, Z, 1] -- name: YV12 +- name: Y8_V8_U8_420_UNORM + alias: YV12 layout: planar3 colorspace: YUV block: {width: 1, height: 1, depth: 1} channels: [] swizzles: [X, Y, Z, W] -- name: YV16 +- name: Y8_V8_U8_422_UNORM + alias: YV16 layout: planar3 colorspace: YUV block: {width: 1, height: 1, depth: 1} channels: [] swizzles: [X, Y, Z, W] -- name: IYUV +- name: Y8_U8_V8_420_UNORM + alias: IYUV layout: planar3 colorspace: YUV block: {width: 1, height: 1, depth: 1} channels: [] swizzles: [X, Y, Z, W] -- name: NV12 +- name: Y8_U8V8_420_UNORM + alias: NV12 layout: planar2 colorspace: YUV block: {width: 1, height: 1, depth: 1} channels: [] swizzles: [X, Y, Z, W] -- name: NV21 +- name: Y8_V8U8_420_UNORM + alias: NV21 layout: planar2 colorspace: YUV block: {width: 1, height: 1, depth: 1} @@ -2000,13 +2011,15 @@ block: {width: 1, height: 1, depth: 1} channels: [UN8] swizzles: [X, 0, 0, 1] -- name: NV15 +- name: Y10_U10V10_420_UNORM + alias: NV15 layout: planar2 colorspace: YUV block: {width: 1, height: 1, depth: 1} channels: [] swizzles: [X, Y, Z, W] -- name: NV20 +- name: Y10_U10V10_422_UNORM + alias: NV20 layout: planar2 colorspace: YUV block: {width: 1, height: 1, depth: 1} @@ -2160,7 +2173,8 @@ block: {width: 1, height: 1, depth: 1} channels: [] swizzles: [X, Y, Z, W] -- name: NV16 +- name: Y8_U8V8_422_UNORM + alias: NV16 layout: planar2 colorspace: YUV block: {width: 1, height: 1, depth: 1} @@ -2242,25 +2256,29 @@ swizzles: [X, Y, Z, W] -- name: P010 +- name: X6Y10_X6U10X6V10_420_UNORM + alias: P010 layout: planar2 colorspace: YUV block: {width: 1, height: 1, depth: 1} channels: [] swizzles: [X, Y, Z, W] -- name: P012 +- name: X4Y12_X4U12X4V12_420_UNORM + alias: P012 layout: planar2 colorspace: YUV block: {width: 1, height: 1, depth: 1} channels: [] swizzles: [X, Y, Z, W] -- name: P016 +- name: Y16_U16V16_420_UNORM + alias: P016 layout: planar2 colorspace: YUV block: {width: 1, height: 1, depth: 1} channels: [] swizzles: [X, Y, Z, W] -- name: P030 +- name: Y10Y10Y10X2_U10V10U10X2V10U10V10X2_420_UNORM + alias: P030 layout: planar2 colorspace: YUV block: {width: 1, height: 1, depth: 1} @@ -2268,19 +2286,22 @@ swizzles: [X, Y, Z, W] -- name: Y210 +- name: X6Y10X6U10X6Y10X6V10_422_UNORM + alias: Y210 layout: subsampled colorspace: YUV block: {width: 2, height: 1, depth: 1} channels: [X64] swizzles: [X, Y, Z, 1] -- name: Y212 +- name: X4Y12X4U12X4Y12X4V12_422_UNORM + alias: Y212 layout: subsampled colorspace: YUV block: {width: 2, height: 1, depth: 1} channels: [X64] swizzles: [X, Y, Z, 1] -- name: Y216 +- name: Y16U16Y16V16_422_UNORM + alias: Y216 layout: subsampled colorspace: YUV block: {width: 2, height: 1, depth: 1} @@ -2288,19 +2309,22 @@ swizzles: [X, Y, Z, 1] -- name: Y410 +- name: U10Y10V10A2_444_UNORM + alias: Y410 layout: other colorspace: YUV block: {width: 1, height: 1, depth: 1} channels: [UN10, UN10, UN10, UN2] swizzles: [Y, Z, X, W] -- name: Y412 +- name: X4U12X4Y12X4V12X4A12_444_UNORM + alias: Y412 layout: other colorspace: YUV block: {width: 1, height: 1, depth: 1} channels: [UN16, UN16, UN16, UN16] swizzles: [Y, Z, X, W] -- name: Y416 +- name: U16Y16V16A16_444_UNORM + alias: Y416 layout: other colorspace: YUV block: {width: 1, height: 1, depth: 1} diff --git a/src/util/format/u_format_parse.py b/src/util/format/u_format_parse.py index 274dbad2ad2..cf236eb6991 100644 --- a/src/util/format/u_format_parse.py +++ b/src/util/format/u_format_parse.py @@ -277,6 +277,11 @@ class Format: self.be_alias = f"PIPE_FORMAT_{consume_str(self, source, 'big_endian', 'alias')}" consumed(self, source, 'big_endian') + # Allow shorter fourcc alias for fully descriptive YUV formats. + self.alias = None + if 'alias' in source: + self.alias = f"PIPE_FORMAT_{consume_str(self, source, 'alias')}" + consumed(self, source) del(source) diff --git a/src/util/format/u_format_table.py b/src/util/format/u_format_table.py index d25fa9d3420..1913e526cda 100644 --- a/src/util/format/u_format_table.py +++ b/src/util/format/u_format_table.py @@ -80,26 +80,26 @@ def has_access(format): # pack/unpack functions for softpipe/llvmpipe. noaccess_formats = [ 'r1_unorm', - 'yv12', - 'yv16', - 'iyuv', - 'nv12', - 'nv16', - 'nv21', - 'nv15', - 'nv20', - 'p010', - 'p012', - 'p016', - 'p030', - 'y210', - 'y212', - 'y216', - 'y410', - 'y412', - 'y416', - 'xyuv', - 'ayuv', + 'y8_v8_u8_420_unorm', + 'y8_v8_u8_422_unorm', + 'y8_u8_v8_420_unorm', + 'y8_u8v8_420_unorm', + 'y8_u8v8_422_unorm', + 'y8_v8u8_420_unorm', + 'y10_u10v10_420_unorm', + 'y10_u10v10_422_unorm', + 'x6y10_x6u10x6v10_420_unorm', + 'x4y12_x4u12x4v12_420_unorm', + 'y16_u16v16_420_unorm', + 'y10y10y10x2_u10v10u10x2v10u10v10x2_420_unorm', + 'x6y10x6u10x6y10x6v10_422_unorm', + 'x4y12x4u12x4y12x4v12_422_unorm', + 'y16u16y16v16_422_unorm', + 'u10y10v10a2_444_unorm', + 'x4u12x4y12x4v12x4a12_444_unorm', + 'u16y16v16a16_444_unorm', + 'x8y8u8v8_444_unorm', + 'a8y8u8v8_444_unorm', 'r8g8_r8b8_unorm', 'r8b8_r8g8_unorm', 'g8r8_b8r8_unorm', @@ -279,6 +279,11 @@ def write_format_enum(formats): print('};', file=sys.stdout3) def write_format_aliases(formats): + for f in formats: + if f.colorspace and f.alias != None: + print("#define %s %s" % (f.alias, f.name), file=sys.stdout3) + + print(file=sys.stdout3) print("#if UTIL_ARCH_LITTLE_ENDIAN", file=sys.stdout3) for f in formats: if f.le_alias: diff --git a/src/util/format/u_format_yuv.c b/src/util/format/u_format_yuv.c index b86c8b72372..376d82df675 100644 --- a/src/util/format/u_format_yuv.c +++ b/src/util/format/u_format_yuv.c @@ -483,9 +483,11 @@ util_format_g8r8_g8b8_unorm_fetch_rgba(void *restrict in_dst, const uint8_t *res void -util_format_uyvy_unpack_rgba_float(void *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_u8y8v8y8_422_unorm_unpack_rgba_float(void *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -530,9 +532,11 @@ util_format_uyvy_unpack_rgba_float(void *restrict dst_row, unsigned dst_stride, } void -util_format_vyuy_unpack_rgba_float(void *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_v8y8u8y8_422_unorm_unpack_rgba_float(void *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -577,9 +581,11 @@ util_format_vyuy_unpack_rgba_float(void *restrict dst_row, unsigned dst_stride, } void -util_format_uyvy_unpack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_u8y8v8y8_422_unorm_unpack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -624,9 +630,11 @@ util_format_uyvy_unpack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stri } void -util_format_vyuy_unpack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_v8y8u8y8_422_unorm_unpack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -671,9 +679,11 @@ util_format_vyuy_unpack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stri } void -util_format_uyvy_pack_rgba_float(uint8_t *restrict dst_row, unsigned dst_stride, - const float *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_u8y8v8y8_422_unorm_pack_rgba_float(uint8_t *restrict dst_row, + unsigned dst_stride, + const float *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -723,9 +733,11 @@ util_format_uyvy_pack_rgba_float(uint8_t *restrict dst_row, unsigned dst_stride, } void -util_format_vyuy_pack_rgba_float(uint8_t *restrict dst_row, unsigned dst_stride, - const float *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_v8y8u8y8_422_unorm_pack_rgba_float(uint8_t *restrict dst_row, + unsigned dst_stride, + const float *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -776,9 +788,11 @@ util_format_vyuy_pack_rgba_float(uint8_t *restrict dst_row, unsigned dst_stride, void -util_format_uyvy_pack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_u8y8v8y8_422_unorm_pack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -828,9 +842,11 @@ util_format_uyvy_pack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride } void -util_format_vyuy_pack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_v8y8u8y8_422_unorm_pack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -880,8 +896,9 @@ util_format_vyuy_pack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride } void -util_format_uyvy_fetch_rgba(void *restrict in_dst, const uint8_t *restrict src, - unsigned i, ASSERTED unsigned j) +util_format_u8y8v8y8_422_unorm_fetch_rgba(void *restrict in_dst, + const uint8_t *restrict src, + unsigned i, ASSERTED unsigned j) { float *dst = in_dst; uint8_t y, u, v; @@ -900,8 +917,9 @@ util_format_uyvy_fetch_rgba(void *restrict in_dst, const uint8_t *restrict src, void -util_format_vyuy_fetch_rgba(void *restrict in_dst, const uint8_t *restrict src, - unsigned i, ASSERTED unsigned j) +util_format_v8y8u8y8_422_unorm_fetch_rgba(void *restrict in_dst, + const uint8_t *restrict src, + unsigned i, ASSERTED unsigned j) { float *dst = in_dst; uint8_t y, u, v; @@ -920,9 +938,11 @@ util_format_vyuy_fetch_rgba(void *restrict in_dst, const uint8_t *restrict src, void -util_format_yuyv_unpack_rgba_float(void *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_y8u8y8v8_422_unorm_unpack_rgba_float(void *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -967,9 +987,11 @@ util_format_yuyv_unpack_rgba_float(void *restrict dst_row, unsigned dst_stride, } void -util_format_yvyu_unpack_rgba_float(void *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_y8v8y8u8_422_unorm_unpack_rgba_float(void *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -1015,9 +1037,11 @@ util_format_yvyu_unpack_rgba_float(void *restrict dst_row, unsigned dst_stride, void -util_format_yuyv_unpack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_y8u8y8v8_422_unorm_unpack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -1062,9 +1086,11 @@ util_format_yuyv_unpack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stri } void -util_format_yvyu_unpack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_y8v8y8u8_422_unorm_unpack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -1110,9 +1136,11 @@ util_format_yvyu_unpack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stri void -util_format_yuyv_pack_rgba_float(uint8_t *restrict dst_row, unsigned dst_stride, - const float *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_y8u8y8v8_422_unorm_pack_rgba_float(uint8_t *restrict dst_row, + unsigned dst_stride, + const float *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -1162,9 +1190,11 @@ util_format_yuyv_pack_rgba_float(uint8_t *restrict dst_row, unsigned dst_stride, } void -util_format_yvyu_pack_rgba_float(uint8_t *restrict dst_row, unsigned dst_stride, - const float *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_y8v8y8u8_422_unorm_pack_rgba_float(uint8_t *restrict dst_row, + unsigned dst_stride, + const float *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -1214,9 +1244,11 @@ util_format_yvyu_pack_rgba_float(uint8_t *restrict dst_row, unsigned dst_stride, } void -util_format_yuyv_pack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_y8u8y8v8_422_unorm_pack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -1266,9 +1298,11 @@ util_format_yuyv_pack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride } void -util_format_yvyu_pack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height) +util_format_y8v8y8u8_422_unorm_pack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height) { unsigned x, y; @@ -1319,8 +1353,9 @@ util_format_yvyu_pack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride void -util_format_yuyv_fetch_rgba(void *restrict in_dst, const uint8_t *restrict src, - unsigned i, ASSERTED unsigned j) +util_format_y8u8y8v8_422_unorm_fetch_rgba(void *restrict in_dst, + const uint8_t *restrict src, + unsigned i, ASSERTED unsigned j) { float *dst = in_dst; uint8_t y, u, v; @@ -1338,8 +1373,9 @@ util_format_yuyv_fetch_rgba(void *restrict in_dst, const uint8_t *restrict src, } void -util_format_yvyu_fetch_rgba(void *restrict in_dst, const uint8_t *restrict src, - unsigned i, ASSERTED unsigned j) +util_format_y8v8y8u8_422_unorm_fetch_rgba(void *restrict in_dst, + const uint8_t *restrict src, + unsigned i, ASSERTED unsigned j) { float *dst = in_dst; uint8_t y, u, v; diff --git a/src/util/format/u_format_yuv.h b/src/util/format/u_format_yuv.h index c0d5c9301cd..bdb5ab52870 100644 --- a/src/util/format/u_format_yuv.h +++ b/src/util/format/u_format_yuv.h @@ -123,100 +123,136 @@ util_format_yuv_to_rgb_8unorm(uint8_t y, uint8_t u, uint8_t v, void -util_format_uyvy_unpack_rgba_float(void *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_u8y8v8y8_422_unorm_unpack_rgba_float(void *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_uyvy_unpack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_u8y8v8y8_422_unorm_unpack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_uyvy_pack_rgba_float(uint8_t *restrict dst_row, unsigned dst_stride, - const float *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_u8y8v8y8_422_unorm_pack_rgba_float(uint8_t *restrict dst_row, + unsigned dst_stride, + const float *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_uyvy_pack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_u8y8v8y8_422_unorm_pack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_uyvy_fetch_rgba(void *restrict dst, const uint8_t *restrict src, - unsigned i, unsigned j); +util_format_u8y8v8y8_422_unorm_fetch_rgba(void *restrict dst, + const uint8_t *restrict src, + unsigned i, unsigned j); void -util_format_vyuy_unpack_rgba_float(void *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_v8y8u8y8_422_unorm_unpack_rgba_float(void *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_vyuy_unpack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_v8y8u8y8_422_unorm_unpack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_vyuy_pack_rgba_float(uint8_t *restrict dst_row, unsigned dst_stride, - const float *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_v8y8u8y8_422_unorm_pack_rgba_float(uint8_t *restrict dst_row, + unsigned dst_stride, + const float *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_vyuy_pack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_v8y8u8y8_422_unorm_pack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_vyuy_fetch_rgba(void *restrict dst, const uint8_t *restrict src, - unsigned i, unsigned j); +util_format_v8y8u8y8_422_unorm_fetch_rgba(void *restrict dst, + const uint8_t *restrict src, + unsigned i, unsigned j); void -util_format_yuyv_unpack_rgba_float(void *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_y8u8y8v8_422_unorm_unpack_rgba_float(void *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_yuyv_unpack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_y8u8y8v8_422_unorm_unpack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_yuyv_pack_rgba_float(uint8_t *restrict dst_row, unsigned dst_stride, - const float *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_y8u8y8v8_422_unorm_pack_rgba_float(uint8_t *restrict dst_row, + unsigned dst_stride, + const float *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_yuyv_pack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_y8u8y8v8_422_unorm_pack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_yuyv_fetch_rgba(void *restrict dst, const uint8_t *restrict src, - unsigned i, unsigned j); +util_format_y8u8y8v8_422_unorm_fetch_rgba(void *restrict dst, + const uint8_t *restrict src, + unsigned i, unsigned j); void -util_format_yvyu_unpack_rgba_float(void *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_y8v8y8u8_422_unorm_unpack_rgba_float(void *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_yvyu_unpack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_y8v8y8u8_422_unorm_unpack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_yvyu_pack_rgba_float(uint8_t *restrict dst_row, unsigned dst_stride, - const float *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_y8v8y8u8_422_unorm_pack_rgba_float(uint8_t *restrict dst_row, + unsigned dst_stride, + const float *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_yvyu_pack_rgba_8unorm(uint8_t *restrict dst_row, unsigned dst_stride, - const uint8_t *restrict src_row, unsigned src_stride, - unsigned width, unsigned height); +util_format_y8v8y8u8_422_unorm_pack_rgba_8unorm(uint8_t *restrict dst_row, + unsigned dst_stride, + const uint8_t *restrict src_row, + unsigned src_stride, + unsigned width, unsigned height); void -util_format_yvyu_fetch_rgba(void *restrict dst, const uint8_t *restrict src, - unsigned i, unsigned j); +util_format_y8v8y8u8_422_unorm_fetch_rgba(void *restrict dst, + const uint8_t *restrict src, + unsigned i, unsigned j); void util_format_r8g8_b8g8_unorm_unpack_rgba_float(void *restrict dst_row, unsigned dst_stride,