Fix MSVC warnings in avifrgbtoyuvtest
diff --git a/tests/gtest/avifrgbtoyuvtest.cc b/tests/gtest/avifrgbtoyuvtest.cc
index e4ce17a..e63e3fb 100644
--- a/tests/gtest/avifrgbtoyuvtest.cc
+++ b/tests/gtest/avifrgbtoyuvtest.cc
@@ -24,7 +24,7 @@
// Modifies the pixel values of a channel in image by modifier[] (row-ordered).
template <typename PixelType>
void ModifyImageChannel(avifRGBImage* image, uint32_t channel_offset,
- const int32_t modifier[kModifierSize]) {
+ const uint8_t modifier[kModifierSize]) {
const uint32_t channel_count = avifRGBFormatChannelCount(image->format);
assert(channel_offset < channel_count);
for (uint32_t y = 0, i = 0; y < image->height; ++y) {
@@ -38,7 +38,7 @@
}
void ModifyImageChannel(avifRGBImage* image, uint32_t channel_offset,
- const int32_t modifier[kModifierSize]) {
+ const uint8_t modifier[kModifierSize]) {
if (image->depth <= 8) {
ModifyImageChannel<uint8_t>(image, channel_offset, modifier);
} else {
@@ -93,17 +93,17 @@
// To exercise the chroma subsampling loss, the input samples must differ in
// each of the RGB channels. Chroma subsampling expects the input RGB channels
// to be correlated to minimize the quality loss.
-constexpr int32_t kRedNoise[kModifierSize] = {
+constexpr uint8_t kRedNoise[kModifierSize] = {
7, 14, 11, 5, // Random permutation of 16 values.
4, 6, 8, 15, //
2, 9, 13, 3, //
12, 1, 10, 0};
-constexpr int32_t kGreenNoise[kModifierSize] = {
+constexpr uint8_t kGreenNoise[kModifierSize] = {
3, 2, 12, 15, // Random permutation of 16 values
14, 10, 7, 13, // that is somewhat close to kRedNoise.
5, 1, 9, 0, //
8, 4, 11, 6};
-constexpr int32_t kBlueNoise[kModifierSize] = {
+constexpr uint8_t kBlueNoise[kModifierSize] = {
0, 8, 14, 9, // Random permutation of 16 values
13, 12, 2, 7, // that is somewhat close to kGreenNoise.
3, 1, 11, 10, //
@@ -314,13 +314,19 @@
AVIF_RGB_FORMAT_RGB, AVIF_RGB_FORMAT_RGBA, AVIF_RGB_FORMAT_ARGB,
AVIF_RGB_FORMAT_BGR, AVIF_RGB_FORMAT_BGRA, AVIF_RGB_FORMAT_ABGR};
+// avifMatrixCoefficients-typed constants for testing::Values() to work on MSVC.
+constexpr avifMatrixCoefficients kMatrixCoefficientsBT601 =
+ AVIF_MATRIX_COEFFICIENTS_BT601;
+constexpr avifMatrixCoefficients kMatrixCoefficientsIdentity =
+ AVIF_MATRIX_COEFFICIENTS_IDENTITY;
+
// This is the default avifenc setup when encoding from 8b PNG files to AVIF.
INSTANTIATE_TEST_SUITE_P(
DefaultFormat, RGBToYUVTest,
Combine(/*rgb_depth=*/Values(8),
/*yuv_depth=*/Values(8), Values(AVIF_RGB_FORMAT_RGBA),
Values(AVIF_PIXEL_FORMAT_YUV420), Values(AVIF_RANGE_FULL),
- Values(AVIF_MATRIX_COEFFICIENTS_BT601),
+ Values(kMatrixCoefficientsBT601),
/*add_noise=*/Values(true),
/*rgb_step=*/Values(3),
/*max_abs_average_diff=*/Values(0.1), // The color drift is almost
@@ -336,7 +342,7 @@
ValuesIn(kAllRgbFormats),
Values(AVIF_PIXEL_FORMAT_YUV444),
Values(AVIF_RANGE_FULL),
- Values(AVIF_MATRIX_COEFFICIENTS_IDENTITY),
+ Values(kMatrixCoefficientsIdentity),
/*add_noise=*/Values(true),
/*rgb_step=*/Values(31),
/*max_abs_average_diff=*/Values(0.),
@@ -347,7 +353,7 @@
ValuesIn(kAllRgbFormats),
Values(AVIF_PIXEL_FORMAT_YUV444),
Values(AVIF_RANGE_FULL),
- Values(AVIF_MATRIX_COEFFICIENTS_IDENTITY),
+ Values(kMatrixCoefficientsIdentity),
/*add_noise=*/Values(true),
/*rgb_step=*/Values(101),
/*max_abs_average_diff=*/Values(0.),
@@ -358,7 +364,7 @@
ValuesIn(kAllRgbFormats),
Values(AVIF_PIXEL_FORMAT_YUV444),
Values(AVIF_RANGE_FULL),
- Values(AVIF_MATRIX_COEFFICIENTS_IDENTITY),
+ Values(kMatrixCoefficientsIdentity),
/*add_noise=*/Values(true),
/*rgb_step=*/Values(401),
/*max_abs_average_diff=*/Values(0.),
@@ -372,7 +378,7 @@
/*yuv_depth=*/Values(8), ValuesIn(kAllRgbFormats),
Values(AVIF_PIXEL_FORMAT_YUV444, AVIF_PIXEL_FORMAT_YUV422,
AVIF_PIXEL_FORMAT_YUV420),
- Values(AVIF_RANGE_FULL), Values(AVIF_MATRIX_COEFFICIENTS_BT601),
+ Values(AVIF_RANGE_FULL), Values(kMatrixCoefficientsBT601),
/*add_noise=*/Values(false),
/*rgb_step=*/Values(17),
/*max_abs_average_diff=*/Values(0.02), // The color drift is centered.
@@ -388,7 +394,7 @@
ValuesIn(kAllRgbFormats),
Values(AVIF_PIXEL_FORMAT_YUV400),
Values(AVIF_RANGE_FULL),
- Values(AVIF_MATRIX_COEFFICIENTS_BT601),
+ Values(kMatrixCoefficientsBT601),
/*add_noise=*/Values(false),
/*rgb_step=*/Values(1),
/*max_abs_average_diff=*/Values(0.),
@@ -399,7 +405,7 @@
ValuesIn(kAllRgbFormats),
Values(AVIF_PIXEL_FORMAT_YUV400),
Values(AVIF_RANGE_FULL),
- Values(AVIF_MATRIX_COEFFICIENTS_BT601),
+ Values(kMatrixCoefficientsBT601),
/*add_noise=*/Values(false),
/*rgb_step=*/Values(1),
/*max_abs_average_diff=*/Values(0.),
@@ -410,7 +416,7 @@
ValuesIn(kAllRgbFormats),
Values(AVIF_PIXEL_FORMAT_YUV400),
Values(AVIF_RANGE_FULL),
- Values(AVIF_MATRIX_COEFFICIENTS_BT601),
+ Values(kMatrixCoefficientsBT601),
/*add_noise=*/Values(false),
/*rgb_step=*/Values(1),
/*max_abs_average_diff=*/Values(0.),
@@ -425,7 +431,7 @@
Values(AVIF_PIXEL_FORMAT_YUV444, AVIF_PIXEL_FORMAT_YUV422,
AVIF_PIXEL_FORMAT_YUV420),
Values(AVIF_RANGE_LIMITED, AVIF_RANGE_FULL),
- Values(AVIF_MATRIX_COEFFICIENTS_BT601),
+ Values(kMatrixCoefficientsBT601),
/*add_noise=*/Values(false, true),
/*rgb_step=*/Values(61), // High or it would be too slow.
/*max_abs_average_diff=*/Values(1.), // Not very accurate because
@@ -438,7 +444,7 @@
Values(AVIF_PIXEL_FORMAT_YUV444, AVIF_PIXEL_FORMAT_YUV422,
AVIF_PIXEL_FORMAT_YUV420),
Values(AVIF_RANGE_LIMITED, AVIF_RANGE_FULL),
- Values(AVIF_MATRIX_COEFFICIENTS_BT601),
+ Values(kMatrixCoefficientsBT601),
/*add_noise=*/Values(false, true),
/*rgb_step=*/Values(211), // High or it would be too slow.
/*max_abs_average_diff=*/Values(0.2), // Not very accurate because
@@ -451,7 +457,7 @@
Values(AVIF_PIXEL_FORMAT_YUV444, AVIF_PIXEL_FORMAT_YUV422,
AVIF_PIXEL_FORMAT_YUV420),
Values(AVIF_RANGE_LIMITED, AVIF_RANGE_FULL),
- Values(AVIF_MATRIX_COEFFICIENTS_BT601),
+ Values(kMatrixCoefficientsBT601),
/*add_noise=*/Values(false, true),
/*rgb_step=*/Values(809), // High or it would be too slow.
/*max_abs_average_diff=*/Values(0.3), // Not very accurate because
@@ -469,7 +475,7 @@
Values(AVIF_PIXEL_FORMAT_YUV444, AVIF_PIXEL_FORMAT_YUV422,
AVIF_PIXEL_FORMAT_YUV420, AVIF_PIXEL_FORMAT_YUV400),
Values(AVIF_RANGE_FULL, AVIF_RANGE_LIMITED),
- Values(AVIF_MATRIX_COEFFICIENTS_BT601),
+ Values(kMatrixCoefficientsBT601),
/*add_noise=*/Values(false, true),
/*rgb_step=*/Values(3), // way faster and 99% similar to rgb_step=1
/*max_abs_average_diff=*/Values(10.),