WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
245135
Holepunch missing after video source change
https://bugs.webkit.org/show_bug.cgi?id=245135
Summary
Holepunch missing after video source change
Olivier Blin
Reported
2022-09-13 05:46:23 PDT
Created
attachment 462314
[details]
Test case to reproduce the missing holepunch after changing video source Since
r295749
(
251754@main
), the holepunch feature is broken (missing) after changing the video source. See
https://bugs.webkit.org/show_bug.cgi?id=240283
for the crash fix which causes this regression. This bug can be seen with YouTube TV, just after skipping an ad. The holepunch contents layer is reset to NULL after changing the source, which causes the holepunch buffer not to be rendered anymore. The new content layer from the new MediaPlayer is set from TextureMapperPlatformLayerProxyGL::activateOnCompositingThread(), but after that, TextureMapperPlatformLayerProxyGL::invalidate() is called to invalidate the old content layer from the old MediaPlayer. This sets the content layer to NULL in the target layer, and this disables the new content layer. This can be reproduced on a WPE build with USE_GSTREAMER_HOLEPUNCH=ON and the attached test page.
Attachments
Test case to reproduce the missing holepunch after changing video source
(936 bytes, text/html)
2022-09-13 05:46 PDT
,
Olivier Blin
no flags
Details
tentative fix
(1.47 KB, patch)
2022-09-15 01:59 PDT
,
Miguel Gomez
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Miguel Gomez
Comment 1
2022-09-15 01:59:47 PDT
Created
attachment 462353
[details]
tentative fix The issue is quite complicated to reproduce in my system. I was able to see it only once in tens of executions. This is because it has to happen that the old player is destroyed and the new one created before there's a layerFlush, so the CoordinatedGraphicsScene can be in the situation where a layer's proxy is replaced with a new one. Most of the times there's a layerFlush between the destruction of the old player and the creation of the new one, so the problem doesn't reproduce. Anyway, I think the fix is as simple as doing the invalidation of the old proxies before activating the new ones. Olivier, as you seem to be able to reproduce the issue reliably, could you give a test to this patch and check whether it fixes the problem?
Olivier Blin
Comment 2
2022-09-15 04:29:27 PDT
Miguel: thank you, this fixes the issue for me. I could reproduce the issue on my laptop, but it has been first detected on set-top boxes with less powerful CPUs.
Miguel Gomez
Comment 3
2022-09-15 06:22:26 PDT
Pull request:
https://github.com/WebKit/WebKit/pull/4379
EWS
Comment 4
2022-09-16 01:30:42 PDT
Committed
254548@main
(f994a1b3e3dc): <
https://commits.webkit.org/254548@main
> Reviewed commits have been landed. Closing PR #4379 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug