immersive-web / layers

A feature repo for working on multi-layer support in WebXR. Feature leads: Rik Cabanier and Artem Bolgar (Oculus)

Home Page:https://immersive-web.github.io/layers/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Widevine protected Dash video on XRQuadLayer

sky-hugolima opened this issue · comments

Hey !

I've been trying the xr-layers experimental feature on the Oculus browser and seems like DRM protected playback is not working on a video layer.

To test this I've made some changes to https://github.com/und3fined-v01d/webxr-layers (which I think was based on a PR to ThreeJS from @cabanier), to use a MSE player (Shaka) to play a Dash clear stream and a Dash Widevine protected stream.

Dash clear: https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd
Dash widevine: https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/mpds/11331.mpd
Dash widevine licensing URI: https://widevine-proxy.appspot.com/proxy

From my tests I could get the clear Dash stream to play correctly inside the immersive view, but not the widevine protected stream (although both play fine on a non immersive Oculus browser session).

This is the error I get when I enter XR session and start playing the DRM protected stream:

WebGL: INVALID_VALUE: tex(Sub)Image2D: video visible size is empty

Not sure if DRM playback failing is an issue with the Oculus Quest browser, or something else, but I was expecting DRM playback inside the XR session using a XRQuadLayer to work, since that's one thing currently impossible to do without layers. DRM playback on a XRMediaLayer is something to be expected (eventually), right ?

Thanks for running that experiment!
Would it be possible for you to post your example somewhere? It is possible that you are running into an edge case that we didn't test yet.

Seems like the issue is not specific to DRM... for some reason I'm no longer able to play even the clear stream using MSE...
Here's a really simple example app I've built just for the purpose of testing:
https://sky-hugolima.github.io/xr-layers-test-drm/

If you click on the Play progressive asset and then click the Enter VR button, it will use a basic video element with a src pointing to a mp4 file and that works, but if you click the Play MSE stream (which will try to play a Dash stream without DRM) you can hear the audio playing on the background, but no image is visible and you see the error I mentioned on the console log.

Thanks!
I reproduced the issue and will investigate why this is happening.

This was extremely helpful! This bug will be fixed in Oculus 16.1

@sky-hugolima again thank you for creating this test case.
Next time, can you reach out directly? This list should only be for spec issues.
My email is cabanier@fb.com

@cabanier Thanks for your availability ! I'll reach out directly again if needed.

👍 FYI this should be fixed in Oculus Browser 16.1