From 2a6cb7431939faba1b40d3f08883847f0cf63572 Mon Sep 17 00:00:00 2001 From: Vignesh Venkatasubramanian Date: Thu, 1 Jun 2023 12:51:46 -0700 Subject: [PATCH] Add macro for I012ToAB30Matrix Uses I012ToAR30Matrix with u and v swapped and with VU suffixed constants. Bug: b/268505204 Change-Id: If0d189891be3053da776feb48d49fa68a9866037 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4581869 Reviewed-by: Frank Barchard Commit-Queue: Frank Barchard --- include/libyuv/convert_argb.h | 2 ++ unit_test/convert_test.cc | 3 +++ 2 files changed, 5 insertions(+) diff --git a/include/libyuv/convert_argb.h b/include/libyuv/convert_argb.h index 8e4562efc..35eeac9b2 100644 --- a/include/libyuv/convert_argb.h +++ b/include/libyuv/convert_argb.h @@ -67,6 +67,8 @@ LIBYUV_API extern const struct YuvConstants kYvuV2020Constants; // BT.2020 full I210ToAR30Matrix(a, b, e, f, c, d, g, h, i##VU, j, k) #define I410ToAB30Matrix(a, b, c, d, e, f, g, h, i, j, k) \ I410ToAR30Matrix(a, b, e, f, c, d, g, h, i##VU, j, k) +#define I012ToAB30Matrix(a, b, c, d, e, f, g, h, i, j, k) \ + I012ToAR30Matrix(a, b, e, f, c, d, g, h, i##VU, j, k) #define I420AlphaToABGRMatrix(a, b, c, d, e, f, g, h, i, j, k, l, m, n) \ I420AlphaToARGBMatrix(a, b, e, f, c, d, g, h, i, j, k##VU, l, m, n) #define I422AlphaToABGRMatrix(a, b, c, d, e, f, g, h, i, j, k, l, m, n) \ diff --git a/unit_test/convert_test.cc b/unit_test/convert_test.cc index 6013dbf89..1f1896b01 100644 --- a/unit_test/convert_test.cc +++ b/unit_test/convert_test.cc @@ -3656,6 +3656,8 @@ TEST_F(LibYUVConvertTest, ABGRToAR30Row_Opt) { I012ToARGBMatrix(a, b, c, d, e, f, g, h, &kYuvI601Constants, i, j) #define I012ToAR30(a, b, c, d, e, f, g, h, i, j) \ I012ToAR30Matrix(a, b, c, d, e, f, g, h, &kYuvI601Constants, i, j) +#define I012ToAB30(a, b, c, d, e, f, g, h, i, j) \ + I012ToAB30Matrix(a, b, c, d, e, f, g, h, &kYuvI601Constants, i, j) #define I410ToARGB(a, b, c, d, e, f, g, h, i, j) \ I410ToARGBMatrix(a, b, c, d, e, f, g, h, &kYuvI601Constants, i, j) @@ -3798,6 +3800,7 @@ TESTPLANAR16TOB(H410, 1, 1, 0x3ff, AB30, 4, 4, 1) TESTPLANAR16TOB(U410, 1, 1, 0x3ff, AR30, 4, 4, 1) TESTPLANAR16TOB(U410, 1, 1, 0x3ff, AB30, 4, 4, 1) TESTPLANAR16TOB(I012, 2, 2, 0xfff, AR30, 4, 4, 1) +TESTPLANAR16TOB(I012, 2, 2, 0xfff, AB30, 4, 4, 1) TESTPLANAR16TOB(I010, 2, 2, 0x3ff, AR30Filter, 4, 4, 1) TESTPLANAR16TOB(I210, 2, 1, 0x3ff, AR30Filter, 4, 4, 1) #endif // LITTLE_ENDIAN_ONLY_TEST