Bug 268750
| Summary: | Exiting of pip mode does not render well for for MediaStream videos | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | youenn fablet <youennf> |
| Component: | WebRTC | Assignee: | youenn fablet <youennf> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | jer.noble, webkit-bug-importer, youennf |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
youenn fablet
Exiting of pip mode does not render well for for MediaStream videos
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/122314896>
youenn fablet
This is most probably a bad computation of the rendering size due to UI side compositing
youenn fablet
Test page that does not work:
https://jsfiddle.net/wr9f4ez6/
This does not repro in some other pages like https://webrtc.github.io/samples/src/content/getusermedia/gum/ with controls=true added via web inspector to trigger pip.
When it does work, the GPUProcess VideoLayerManagerObjC frame is getting updated.
When it does not work, the GPUProcess VideoLayerManagerObjC frame does not get updated.
[WebAVPlayerLayer layoutSublayers] (and resolveBounds) are being called when exiting pip mode.
In the bad case, [WebAVPlayerLayer layoutSublayers] bails out early: "targetVideoFrame (", _targetVideoFrame, ") is essentially equal to videoSublayer.frame, bailing.
In the correct case, it goes through and triggers resolveBounds.
The frame check size is not valid by 1 pixel, so I am not sure that this works as expected, vs by chance.
youenn fablet
https://jsfiddle.net/97hgzy5m/ shows a case where exiting pip happens (1px kicks in) but we see that the rendering is not optimal as positioning is off for a small amount of time.
youenn fablet
Looking at the MSE code path, it does not seem like it needs the update frame, so it might be something else.
youenn fablet
Pull request: https://github.com/WebKit/WebKit/pull/25816
EWS
Committed 276086@main (42ce83919521): <https://commits.webkit.org/276086@main>
Reviewed commits have been landed. Closing PR #25816 and removing active labels.