commit | cb521877bf31b9b6df74d34e01da6e41b0d9b469 | [log] [tgz] |
---|---|---|
author | Madeleine Barowsky <mbarowsky@chromium.org> | Wed Jan 23 23:28:05 2019 |
committer | Commit Bot <commit-bot@chromium.org> | Wed Jan 23 23:28:05 2019 |
tree | eb9902d12a219aaba262b59a6e42fb5ac0498752 | |
parent | 2f3863b0e20bd1fc6c7f1961701b96a23758bf05 [diff] |
CC: Support YUV images in PaintImage and GpuImageDecodeCache This patch modifies PaintImage to have an interface to indicate that the underlying image is YUV pixel format and adds a corresponding DecodeYuv() method. In GpuImageDecodeCache, this change adds "is YUV" variables/getters to DecodedImageData, UploadedImageData (has_yuv_planes()), and ImageData, as well as base:Optional arrays for the SkImages and GL texture IDs for each Y, U, and V plane in the relevant places. The YUV decoding path will initially be implemented for in-process GPU rasterization and later for OOPR (Out of Process Rasterization). Changes that affect WebP decoding in Blink will be hidden behind a flag called kDecodeLossyWebPImagesToYUV. Finally, because this decides whether to YUV decode based on the result of PaintImageGenerator::QueryYUVA8, we separately modified JPEGImageDecoder::CanDecodeToYUV (crrev.com/c/1400764) and VideoImageGenerator::QueryYUVA8 (crrev.com/c/1418322) to return false in order to avoid prematurely going down the YUV decode path. See bit.ly/webp-decoding-into-yuv for the design document and crrev.com/c/1338461 for a working prototype CL. Bug: 900672 Change-Id: I14f60d83cc2da2382e3da296fab598597b7e8ec8 Reviewed-on: https://chromium-review.googlesource.com/c/1368687 Reviewed-by: Miguel Casas <mcasas@chromium.org> Reviewed-by: Khushal <khushalsagar@chromium.org> Commit-Queue: Madeleine Barowsky <mbarowsky@chromium.org> Cr-Commit-Position: refs/heads/master@{#625406}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .