Black screen is shown if user rotate the screen during YouTube playback based on AVDA |
||||
Issue descriptionSteps to reproduce: 1: Enable ADVA by setting command line:--enable-unified-media-pipeline 2: Playback YouTube video, eg:http://m.youtube.com/watch?v=IdneKLhsWOQ 3: Enter to fullscreen 4: Rotate the screen Expect result: Rotation smoothly Actual result: Black screen is shown See the attached video record for more details.
,
Mar 4 2016
If we force to fallback (force to return false in OverlayStrategyUnderlay::Attempt), SurfaceView for fullscreen playback is not created successfully, investigating the reason.
,
Mar 4 2016
do you mean the black rectangle in the upper left that shows up momentarily? once the transition is over, does the video display in landscape correctly? if so, that looks like we might be drawing the wrong transparent region during the transition. forcing a fallback to GLES composition is going to be problematic, since we don't have the video texture to render from. at best, we'd render black frames.
,
Mar 4 2016
I think we're seeing the portrait compositorview contents rotated to fit on the landscape surface momentarily, until the compositorview surface is resized and redrawn. Which means the black rectangle in landscape is the black bit you see above the video in portrait.
,
Mar 5 2016
,
Mar 8 2016
,
Mar 9 2016
@watk, you are correct! However, the non-AVDA path works fine with the same rotation, investigating in progress to understand the root cause the solution to fix it. Welcome any suggestions if you have.
,
Mar 9 2016
Awesome. The non-AVDA fullscreen path is special-cased in blink. I believe it makes the whole CompositorView transparent. Have a look at WebMediaPlayer::supportsOverlayFullscreenVideo. "overlay fullscreen video" here is confusingly distinct from the overlays that we use for AVDA fullscreen. The original CL for that stuff is here: https://codereview.chromium.org/22454003/
,
Mar 9 2016
Thanks so much, Chris. That's exactly the root cause. From the quick test by return true at WebMediaPlayer::supportsOverlayFullscreenVideo, we see the rotation behavior is the same as non-AVDA path, which means the pivot point of rotation is in the center of the screen to avoid this black screen issue. However, the video frames are not shown out if we force to true at WebMediaPlayer::supportsOverlayFullscreenVideo, any suggestions?
,
Mar 10 2016
I think the problem is that the VideoLayer is no longer in the layer tree. You could try using Chrome tracing to see what layers are being composited. I'm not sure of all the details of the blink behavior when WebMediaPlayer::supportsOverlayFullscreenVideo() is true. Also, this probably won't work for Spitzer as-is. The problem is that when supportsOverlayFullscreenVideo is called, we don't know whether we'll be using AVDA or software decoding. And if we're software decoding we won't be rendering to an overlay.
,
Dec 23 2016
|
||||
►
Sign in to add a comment |
||||
Comment 1 by william.xie@chromium.org
, Mar 4 2016