Copy clli in avifImageCopyNoAlloc()
Add avifcllitest.
diff --git a/src/avif.c b/src/avif.c
index 595cf53..4c085f1 100644
--- a/src/avif.c
+++ b/src/avif.c
@@ -162,6 +162,7 @@
dstImage->colorPrimaries = srcImage->colorPrimaries;
dstImage->transferCharacteristics = srcImage->transferCharacteristics;
dstImage->matrixCoefficients = srcImage->matrixCoefficients;
+ dstImage->clli = srcImage->clli;
dstImage->transformFlags = srcImage->transformFlags;
dstImage->pasp = srcImage->pasp;
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index e340ff8..765880a 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -80,6 +80,11 @@
target_include_directories(avifchangesettingtest PRIVATE ${GTEST_INCLUDE_DIRS})
add_test(NAME avifchangesettingtest COMMAND avifchangesettingtest)
+ add_executable(avifcllitest gtest/avifcllitest.cc)
+ target_link_libraries(avifcllitest aviftest_helpers ${GTEST_BOTH_LIBRARIES})
+ target_include_directories(avifcllitest PRIVATE ${GTEST_INCLUDE_DIRS})
+ add_test(NAME avifcllitest COMMAND avifcllitest)
+
add_executable(avifgridapitest gtest/avifgridapitest.cc)
target_link_libraries(avifgridapitest aviftest_helpers ${GTEST_BOTH_LIBRARIES})
target_include_directories(avifgridapitest PRIVATE ${GTEST_INCLUDE_DIRS})
diff --git a/tests/gtest/avifcllitest.cc b/tests/gtest/avifcllitest.cc
new file mode 100644
index 0000000..0416069
--- /dev/null
+++ b/tests/gtest/avifcllitest.cc
@@ -0,0 +1,34 @@
+// Copyright 2022 Google LLC
+// SPDX-License-Identifier: BSD-2-Clause
+
+#include "avif/avif.h"
+#include "aviftest_helpers.h"
+#include "gtest/gtest.h"
+
+namespace libavif {
+namespace {
+
+TEST(ClliTest, Simple) {
+ testutil::AvifImagePtr image =
+ testutil::CreateImage(/*width=*/8, /*height=*/8, /*depth=*/8,
+ AVIF_PIXEL_FORMAT_YUV444, AVIF_PLANES_YUV);
+ ASSERT_NE(image, nullptr);
+ testutil::FillImageGradient(image.get()); // The pixels do not matter.
+
+ for (int max_content_light_level : {0, 1, 65535}) {
+ for (int max_pic_average_light_level : {0, 1, 65535}) {
+ image->clli.maxCLL = static_cast<uint16_t>(max_content_light_level);
+ image->clli.maxPALL = static_cast<uint16_t>(max_pic_average_light_level);
+
+ const testutil::AvifRwData encoded = testutil::Encode(image.get());
+ const testutil::AvifImagePtr decoded =
+ testutil::Decode(encoded.data, encoded.size);
+ ASSERT_NE(decoded, nullptr);
+ ASSERT_EQ(decoded->clli.maxCLL, image->clli.maxCLL);
+ ASSERT_EQ(decoded->clli.maxPALL, image->clli.maxPALL);
+ }
+ }
+}
+
+} // namespace
+} // namespace libavif