Summary: | [Cairo] REGRESSION(r268176): media/video-orientation-canvas.html is failing | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Diego Pino <dpino> | ||||
Component: | Media | Assignee: | Nobody <webkit-unassigned> | ||||
Status: | RESOLVED DUPLICATE | ||||||
Severity: | Normal | CC: | jer.noble, lmoura, magomez, pnormand, pvollan, smoley, webkit-bug-importer | ||||
Priority: | P2 | Keywords: | InRadar | ||||
Version: | WebKit Nightly Build | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Attachments: |
|
Description
Diego Pino
2020-10-16 09:00:46 PDT
Setting didUseWidthAsHeight to false in CairoOperations.cpp line 919 makes the test pass again. Checking the (In reply to Philippe Normand from comment #2) > Setting didUseWidthAsHeight to false in CairoOperations.cpp line 919 makes > the test pass again. An initial investigation showed that Cairo::drawNativeImage somehow was invoked differently when the 90deg rotated video is drawn to the canvas in comparison to a 90deg image. For the image (subject of the original patch), both destination and source rect already arrived with the same orientation (same height and width), so the `ifs` check inside drawNativeImage transposed the destination rect to the expected orientation so drawSurface could scale/pad correctly. Now with video, the orientation information is there too (The source data is rotated 90deg) but the destination rect arrives already transposed. This causes the same if block to transpose again, leading to drawNativeSurface to scale/pad the video incorrectly. Next I'll check how the destination rects are provided to drawNativeImage. Created attachment 412388 [details]
Example with tranposed video and transposed image drawn to canvas
*** This bug has been marked as a duplicate of bug 218580 *** |