From 230a2e3a339e9f6f73c08ea4e16429aa68eef723 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 1 Aug 2023 19:15:15 +1000 Subject: [PATCH 1/3] If "reset" is always true, then the argument can be removed --- src/PIL/WebPImagePlugin.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/PIL/WebPImagePlugin.py b/src/PIL/WebPImagePlugin.py index 47227651b27..aadc71f62c8 100644 --- a/src/PIL/WebPImagePlugin.py +++ b/src/PIL/WebPImagePlugin.py @@ -93,7 +93,7 @@ def _open(self): self.info["xmp"] = xmp # Initialize seek state - self._reset(reset=True) + self._reset() def _getexif(self): if "exif" not in self.info: @@ -116,9 +116,8 @@ def seek(self, frame): # Set logical frame to requested position self.__logical_frame = frame - def _reset(self, reset=True): - if reset: - self._decoder.reset() + def _reset(self): + self._decoder.reset() self.__physical_frame = 0 self.__loaded = -1 self.__timestamp = 0 From 6115d5957f3a53a33675fdede51469cc02533649 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 1 Aug 2023 19:16:28 +1000 Subject: [PATCH 2/3] _decoder.get_next() may return None --- src/PIL/WebPImagePlugin.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/PIL/WebPImagePlugin.py b/src/PIL/WebPImagePlugin.py index aadc71f62c8..a6e1a2a00c5 100644 --- a/src/PIL/WebPImagePlugin.py +++ b/src/PIL/WebPImagePlugin.py @@ -74,9 +74,9 @@ def _open(self): self.info["background"] = (bg_r, bg_g, bg_b, bg_a) self.n_frames = frame_count self.is_animated = self.n_frames > 1 - _, ts = self._decoder.get_next() - if ts: - self.info["duration"] = ts + ret = self._decoder.get_next() + if ret is not None: + self.info["duration"] = ret[1] self._mode = "RGB" if mode == "RGBX" else mode self.rawmode = mode self.tile = [] From 60433d5f37e93e462584b0e5997dad9b43cd853a Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 1 Aug 2023 19:17:54 +1000 Subject: [PATCH 3/3] Added test --- Tests/test_file_webp.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Tests/test_file_webp.py b/Tests/test_file_webp.py index a7b6c735a69..3832441c02d 100644 --- a/Tests/test_file_webp.py +++ b/Tests/test_file_webp.py @@ -233,5 +233,4 @@ def test_duration(self, tmp_path): im.save(out_webp, save_all=True) with Image.open(out_webp) as reloaded: - reloaded.load() assert reloaded.info["duration"] == 1000