summaryrefslogtreecommitdiff
path: root/media-libs/libjxl/files/roundtripanimationpatches-ifdef-gif-9999.patch
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/libjxl/files/roundtripanimationpatches-ifdef-gif-9999.patch')
-rw-r--r--media-libs/libjxl/files/roundtripanimationpatches-ifdef-gif-9999.patch81
1 files changed, 81 insertions, 0 deletions
diff --git a/media-libs/libjxl/files/roundtripanimationpatches-ifdef-gif-9999.patch b/media-libs/libjxl/files/roundtripanimationpatches-ifdef-gif-9999.patch
new file mode 100644
index 0000000..fce63e7
--- /dev/null
+++ b/media-libs/libjxl/files/roundtripanimationpatches-ifdef-gif-9999.patch
@@ -0,0 +1,81 @@
+From 027c7997af8a3735e4b4706328c19e6805bc62b9 Mon Sep 17 00:00:00 2001
+From: "Alex Xu (Hello71)" <alex_y_xu@yahoo.ca>
+Date: Thu, 7 Oct 2021 14:07:35 -0400
+Subject: [PATCH] Run RoundtripAnimationPatches only if gif enabled
+
+---
+ AUTHORS | 1 +
+ lib/jxl/jxl_test.cc | 42 +++++++++++++++++++++---------------------
+ 2 files changed, 22 insertions(+), 21 deletions(-)
+
+diff --git a/AUTHORS b/AUTHORS
+index 03f8b40..d4aaef7 100644
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -28,3 +28,4 @@ Ziemowit Zabawa <ziemek.zabawa@outlook.com>
+ Andrius Lukas Narbutas <andrius4669@gmail.com>
+ Misaki Kasumi <misakikasumi@outlook.com>
+ Samuel Leong <wvvwvvvvwvvw@gmail.com>
++Alex Xu (Hello71) <alex_y_xu@yahoo.ca>
+diff --git a/lib/jxl/jxl_test.cc b/lib/jxl/jxl_test.cc
+index d411492..0cb0988 100644
+--- a/lib/jxl/jxl_test.cc
++++ b/lib/jxl/jxl_test.cc
+@@ -1337,6 +1337,27 @@ TEST(JxlTest, RoundtripLosslessAnimation) {
+ 5e-4);
+ }
+
++TEST(JxlTest, RoundtripAnimationPatches) {
++ ThreadPool* pool = nullptr;
++ const PaddedBytes orig = ReadTestData("jxl/animation_patches.gif");
++ CodecInOut io;
++ ASSERT_TRUE(SetFromBytes(Span<const uint8_t>(orig), &io, pool));
++ ASSERT_EQ(2u, io.frames.size());
++
++ CompressParams cparams;
++ cparams.patches = Override::kOn;
++ DecompressParams dparams;
++ CodecInOut io2;
++ // 40k with no patches, 27k with patch frames encoded multiple times.
++ EXPECT_LE(Roundtrip(&io, cparams, dparams, pool, &io2), 24000u);
++
++ EXPECT_EQ(io2.frames.size(), io.frames.size());
++ // >10 with broken patches
++ EXPECT_THAT(ButteraugliDistance(io, io2, cparams.ba_params,
++ /*distmap=*/nullptr, pool),
++ IsSlightlyBelow(1.5));
++}
++
+ #endif // JPEGXL_ENABLE_GIF
+
+ #if JPEGXL_ENABLE_JPEG
+@@ -1630,26 +1651,5 @@ TEST(JxlTest, RoundtripProgressive) {
+ IsSlightlyBelow(2.5f));
+ }
+
+-TEST(JxlTest, RoundtripAnimationPatches) {
+- ThreadPool* pool = nullptr;
+- const PaddedBytes orig = ReadTestData("jxl/animation_patches.gif");
+- CodecInOut io;
+- ASSERT_TRUE(SetFromBytes(Span<const uint8_t>(orig), &io, pool));
+- ASSERT_EQ(2u, io.frames.size());
+-
+- CompressParams cparams;
+- cparams.patches = Override::kOn;
+- DecompressParams dparams;
+- CodecInOut io2;
+- // 40k with no patches, 27k with patch frames encoded multiple times.
+- EXPECT_LE(Roundtrip(&io, cparams, dparams, pool, &io2), 24000u);
+-
+- EXPECT_EQ(io2.frames.size(), io.frames.size());
+- // >10 with broken patches
+- EXPECT_THAT(ButteraugliDistance(io, io2, cparams.ba_params,
+- /*distmap=*/nullptr, pool),
+- IsSlightlyBelow(1.5));
+-}
+-
+ } // namespace
+ } // namespace jxl
+--
+2.33.0
+