Andreas Kling
97986f9739
LibWeb: Stream animated image frames on demand
...
Add AnimatedDecodedImageData which implements DecodedImageData with
an 8-slot buffer pool instead of storing all frames in memory.
Frames are requested on demand from the ImageDecoder service as
the animation progresses.
For a 344-frame animated image at 1920x1080, this reduces
WebContent memory from ~1.3 GB to ~66 MB.
The streaming class owns frame progression and synchronizes
multiple callers (HTMLImageElement and ImageStyleValue) through
notify_frame_advanced() returning the authoritative frame index.
When a frame isn't in the pool, the last displayed frame is shown
as a fallback (brief freeze rather than blank).
Rename the old AnimatedBitmapDecodedImageData (which now only
handles static/single-frame images) to BitmapDecodedImageData.
2026-02-13 18:34:24 +01:00
..
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2025-10-22 00:01:30 +02:00
2026-01-15 12:03:16 +00:00
2026-01-15 12:03:16 +00:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-12 11:35:01 +00:00
2026-01-12 11:35:01 +00:00
2026-02-05 13:48:10 +00:00
2026-02-05 13:48:10 +00:00
2026-02-05 13:48:10 +00:00
2026-02-05 13:48:10 +00:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-23 14:26:11 +01:00
2025-10-15 18:40:48 +02:00
2026-02-05 13:48:10 +00:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-02-12 10:33:09 +00:00
2026-02-12 10:33:09 +00:00
2026-02-03 09:58:47 +00:00
2026-02-03 09:58:47 +00:00
2026-02-12 10:33:09 +00:00
2026-01-09 10:00:58 +01:00
2026-02-08 18:51:13 +01:00
2026-01-09 10:00:58 +01:00
2025-10-02 13:46:04 +01:00
2026-01-09 10:00:58 +01:00
2025-10-02 13:46:04 +01:00
2026-01-09 10:00:58 +01:00
2025-04-16 10:41:44 -06:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-26 12:40:36 +01:00
2026-01-09 10:00:58 +01:00
2026-01-16 11:29:30 +00:00
2026-01-16 11:29:30 +00:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-13 10:21:26 +00:00
2026-01-13 10:21:26 +00:00
2026-01-09 10:00:58 +01:00
2026-02-09 17:36:12 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-02-05 13:48:10 +00:00
2026-02-05 13:48:10 +00:00
2026-02-05 13:48:10 +00:00
2026-02-05 13:48:10 +00:00
2026-02-13 18:34:24 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-02-05 13:48:10 +00:00
2026-02-05 13:48:10 +00:00
2026-02-05 13:48:10 +00:00
2026-02-05 13:48:10 +00:00
2026-02-05 13:48:10 +00:00
2026-02-05 13:48:10 +00:00
2026-01-08 10:51:35 +01:00
2026-01-09 10:00:58 +01:00
2026-02-05 13:48:10 +00:00
2026-02-05 13:48:10 +00:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-23 14:26:11 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-15 11:50:45 +00:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-02-05 13:48:10 +00:00
2026-02-05 13:48:10 +00:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-02-09 17:36:12 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-02-12 10:33:09 +00:00
2026-02-12 10:33:09 +00:00
2026-02-03 09:58:47 +00:00
2026-02-03 09:58:47 +00:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-13 12:40:55 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00
2026-01-09 10:00:58 +01:00