Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(189)

Issue 1829923004: Do not set m_decodeFailed in ImageFrameGenerator::decodeToYUV (Closed)

Created:
4 years, 9 months ago by xidachen
Modified:
4 years, 8 months ago
CC:
chromium-reviews, krit, pdr+graphicswatchlist_chromium.org, drott+blinkwatch_chromium.org, blink-reviews-platform-graphics_chromium.org, dshwang, jbroman, Justin Novosad, Rik, Stephen Chennney, blink-reviews, f(malita), danakj+watch_chromium.org, kinuko+watch, rwlbuis
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Do not set m_decodeFailed in ImageFrameGenerator::decodeToYUV The method was setting m_decodeFailed to be true dynamically, on a VUY decode failure, resulting in a null SkImage return in DeferredImageDecoder::createFrameAtIndex() when Ganesh is enabled and the image is Progressive JPEG. Ganesh falls back to displaying an RGBA decoded image on decode failure but the null SkImage was shown instead (see the bug examples). When decodeToYUV() fails, do not set m_decodeFailed. Instead set m_yuvDecodingFailed to allow Ganesh fallback logic (that decodes the image to RGBA on the CPU) to render Progressive JPEG. Update getYUVComponentSizes() to early return if m_yuvDecodingFailed to deny subsequent Ganesh requests to YUV decode the image. BUG=597127

Patch Set 1 #

Total comments: 6

Patch Set 2 : add a new unit test #

Patch Set 3 : changing outputRawData makes it work #

Patch Set 4 : back to PS1, add a new m_yuvDecodingFailed #

Unified diffs Side-by-side diffs Delta from patch set Stats (+6 lines, -1 line) Patch
M third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp View 1 2 3 3 chunks +5 lines, -1 line 0 comments Download

Messages

Total messages: 23 (10 generated)
Justin Novosad
This CL is missing a test https://codereview.chromium.org/1829923004/diff/1/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1829923004/diff/1/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode243 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:243: ASSERT(decoder->canDecodeToYUV()); Does this ...
4 years, 9 months ago (2016-03-24 14:13:58 UTC) #2
Justin Novosad
+noel for guidance
4 years, 9 months ago (2016-03-24 14:14:45 UTC) #4
xidachen
I am really confused by this debugging result... https://codereview.chromium.org/1829923004/diff/1/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1829923004/diff/1/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode243 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:243: ASSERT(decoder->canDecodeToYUV()); ...
4 years, 9 months ago (2016-03-24 14:40:24 UTC) #5
xidachen
In PS#2, I added a new unit test into JPEGImageDeocderTest.cpp, and the test currently fails.
4 years, 9 months ago (2016-03-24 15:13:52 UTC) #6
Noel Gordon
https://codereview.chromium.org/1829923004/diff/1/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1829923004/diff/1/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode251 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:251: return false; On 2016/03/24 14:13:57, Justin Novosad wrote: > ...
4 years, 9 months ago (2016-03-25 08:16:46 UTC) #7
xidachen
noel@: Thank you for your suggestions. I did bisect, and it eventually points to one ...
4 years, 9 months ago (2016-03-26 00:37:58 UTC) #8
Noel Gordon
On 2016/03/26 00:37:58, xidachen wrote: > noel@: > > Thank you for your suggestions. > ...
4 years, 9 months ago (2016-03-26 03:34:57 UTC) #9
xidachen
noel@ please take a look at PS#4. I have verified that the example attached in ...
4 years, 9 months ago (2016-03-27 15:11:55 UTC) #11
Noel Gordon
LGTM
4 years, 8 months ago (2016-03-27 21:13:10 UTC) #12
Noel Gordon
On 2016/03/27 15:11:55, xidachen wrote: > noel@ please take a look at PS#4. I have ...
4 years, 8 months ago (2016-03-27 21:22:23 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1829923004/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1829923004/60001
4 years, 8 months ago (2016-03-27 21:22:46 UTC) #15
commit-bot: I haz the power
Committed patchset #4 (id:60001)
4 years, 8 months ago (2016-03-27 22:29:33 UTC) #20
commit-bot: I haz the power
4 years, 8 months ago (2016-03-27 22:31:06 UTC) #22
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/0e4b0bc92e29939d10ff76a3540b4c2b3b5549b6
Cr-Commit-Position: refs/heads/master@{#383472}

Powered by Google App Engine
This is Rietveld 408576698