Skip to content

Commit 39d866b

Browse files
authored
Merge pull request python-pillow#7311 from k128/main
Read WebP duration after opening
2 parents f39f74f + 9c6b8c4 commit 39d866b

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

Tests/test_file_webp.py

-1
Original file line numberDiff line numberDiff line change
@@ -233,5 +233,4 @@ def test_duration(self, tmp_path):
233233
im.save(out_webp, save_all=True)
234234

235235
with Image.open(out_webp) as reloaded:
236-
reloaded.load()
237236
assert reloaded.info["duration"] == 1000

src/PIL/WebPImagePlugin.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ def _open(self):
7474
self.info["background"] = (bg_r, bg_g, bg_b, bg_a)
7575
self.n_frames = frame_count
7676
self.is_animated = self.n_frames > 1
77+
ret = self._decoder.get_next()
78+
if ret is not None:
79+
self.info["duration"] = ret[1]
7780
self._mode = "RGB" if mode == "RGBX" else mode
7881
self.rawmode = mode
7982
self.tile = []
@@ -90,7 +93,7 @@ def _open(self):
9093
self.info["xmp"] = xmp
9194

9295
# Initialize seek state
93-
self._reset(reset=False)
96+
self._reset()
9497

9598
def _getexif(self):
9699
if "exif" not in self.info:
@@ -113,9 +116,8 @@ def seek(self, frame):
113116
# Set logical frame to requested position
114117
self.__logical_frame = frame
115118

116-
def _reset(self, reset=True):
117-
if reset:
118-
self._decoder.reset()
119+
def _reset(self):
120+
self._decoder.reset()
119121
self.__physical_frame = 0
120122
self.__loaded = -1
121123
self.__timestamp = 0

0 commit comments

Comments
 (0)