ImageDecoder+LibImageDecoder+LibWeb: Support animations in ImageDecoder

The ImageDecoder service now returns a list of image frames, each with
a duration value.

The code for in-process image decoding is removed from LibWeb, an all
image decode requests are sent out-of-process to ImageDecoder. :^)

This won't scale super well to very long and/or large animations, but
we can work on improving that separately. The main goal here is simply
to stop doing any image decoding inside LibWeb.

Fixes #5165.
This commit is contained in:
Andreas Kling
2021-01-29 22:30:48 +01:00
parent 449d56ef74
commit 7449c1b27f
Notes: sideshowbarker 2024-07-18 22:45:45 +09:00
10 changed files with 143 additions and 73 deletions

View File

@@ -2,5 +2,5 @@ endpoint ImageDecoderServer = 7001
{
Greet(i32 client_pid) => (i32 client_id, i32 server_pid)
DecodeImage(Core::AnonymousBuffer data) => (Gfx::ShareableBitmap bitmap)
DecodeImage(Core::AnonymousBuffer data) => (bool is_animated, u32 loop_count, Vector<Gfx::ShareableBitmap> bitmaps, Vector<u32> durations)
}