[Webkit-unassigned] [Bug 90375] Parallel image decoders

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Jul 17 21:53:14 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=90375





--- Comment #26 from Kwang Yul Seo <skyul at company100.net>  2012-07-17 21:53:10 PST ---
(In reply to comment #25)
> One part I have problem understanding is when is an image parallel decoded? toRetainedModeBitmapImageIfPossible() seems to be called only when an BitmapImage is painted to a GraphicsContext, yet method call to BitmapImage::frameDurationAtIndex() and other methods in BitmapImage also seems to trigger parallel image decoding.
> 
> Q1: Will BitmapImage::frameDurationAtIndex(), orientationAtIndex() and these metadata friends trigger parallel image decoding?

Yes, all metadata friends trigger parallel image decoding if they are used by RetainedModeBitmapImage. For example, RenderLayerBacking checks if the current frame is completed as in the following:

1083     // We have to wait until the image is fully decoded before setting it on the layer.
1084     if (image->isBitmapImage() && !toRetainedModeBitmapImage(image)->currentFrameIsComplete())
1085         return;

This can trigger parallel image decoding.

> Q2: Are these code paths currently used? Or do you expect all parallel image to be triggered by drawing a BitmapImage into a GraphicsContext?

Yes, as you can see in the example above. However, it seems BitmapImage::frameDurationAtIndex() and BitmapImage::orientationAtIndex() are not used to trigger parallel image decoding in the current code paths.

If you wrap a bitmap with RetainedModeBitmapImage, it can trigger parallel image decoding. While parallel image decoding is in progress, if other code paths call BitmapImage::frameDurationAtIndex() or other metadata friends without wrapping the bitmap with RetainedModeBitmapImage, parallel image decoding is cancelled and image is decoded serially.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list