Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PARAMOUNT GLOBAL] - PS4 - Video Start Failure In New MSE Based WebMAF #4315

Closed
agajassi opened this issue Jun 23, 2022 · 12 comments · Fixed by #4320
Closed

[PARAMOUNT GLOBAL] - PS4 - Video Start Failure In New MSE Based WebMAF #4315

agajassi opened this issue Jun 23, 2022 · 12 comments · Fixed by #4320
Assignees
Labels
platform: Playstation 4 Issues affecting Playstation 4 priority: P2 Smaller impact or easy workaround status: archived Archived and locked; will not be updated type: bug Something isn't working correctly
Milestone

Comments

@agajassi
Copy link
Contributor

Have you read the FAQ and checked for duplicate open issues?
Yes, I have. I searched for duplicates and couldn't find any

What version of Shaka Player are you using?
Shaka Player 4.1.1

Can you reproduce the issue with our latest release version?
Yes

Can you reproduce the issue with the latest code from main?
Yes

Are you using the demo app or your own custom app?
Custom app

If custom app, can you reproduce the issue using our demo app?
N/A

What browser and OS are you using?
Recently released WebMAF 3.0 for Play Station 4

For embedded devices (smart TVs, etc.), what model and firmware version are you using?
WebMAF/v3.0.1-rc-6-g6b785d8b
SDK Version: 9.5

What are the manifest and license server URIs?

http://dash.edgesuite.net/envivio/EnvivioDash3/manifest.mpd

What configuration are you using? What is the output of player.getConfiguration()?

Default configuration. Using it as is.

What did you do?

  1. Put together a simple html page with Shaka player 4.1.1 and autoplay attribute in
  2. Packaged using WebMAF 3.0.1 packager provided to me by Sony
  3. Loaded package onto PS4

What did you expect to happen?
I expected it to start playing

What actually happened?

Playback did not begin. I can see that player loaded the manifest and then state changed to buffering. See the logs for details.
This page works and plays just fine if I use Shaka Player version 3.2.1 and below in the same environment.

Logs

[Info] ARIAMixin interface not detected. Installing polyfill. (shaka-player.compiled.debug.js, line 1772)
[Log] MediaSource.install (shaka-player.compiled.debug.js, line 1783)
[Info] Using native MSE as-is. (shaka-player.compiled.debug.js, line 1784)
[Log] randomUUID.install (shaka-player.compiled.debug.js, line 1839)
[Log] Symbol.install (shaka-player.compiled.debug.js, line 1841)
[Log] VideoPlayPromise.install (shaka-player.compiled.debug.js, line 1842)
[Info] Using native VTTCue. (shaka-player.compiled.debug.js, line 1844)
[Info] MediaCapabilities: install (shaka-player.compiled.debug.js, line 1777)
[Debug] EmeEncryptionSchemePolyfill: Waiting to detect encryptionScheme support. (shaka-player.compiled.debug.js, line 1950)
[Debug] McEncryptionSchemePolyfill: Waiting to detect encryptionScheme support. (shaka-player.compiled.debug.js, line 1956)
[Log] {drm: Object, manifest: Object, streaming: Object, offline: Object, abrFactory: function, …} (index.html, line 44)
[Log] EVENT:  – "loading" (index.html, line 96)
[Log] The video has now been loaded! (index.html, line 88)
[Info] Starting attach... (shaka-player.compiled.debug.js, line 900)
[Log] EVENT:  – "onstatechange" (index.html, line 96, x2)
[Info] Starting load of http://dash.edgesuite.net/envivio/EnvivioDash3/manifest.mpd... (shaka-player.compiled.debug.js, line 905)
[Log] EVENT:  – "onstatechange" (index.html, line 96)
[Log] EVENT:  – "unloading" (index.html, line 96)
[Log] EVENT:  – "buffering" (index.html, line 96)
[Log] EVENT:  – "onstatechange" (index.html, line 96, x3)
[Debug] Changing effective playback rate to – 0 (shaka-player.compiled.debug.js, line 714)
[Debug] Changing Player state to – "buffering" (shaka-player.compiled.debug.js, line 875)
[Log] EVENT:  – "buffering" (index.html, line 96)
[Log] EVENT:  – "streaming" (index.html, line 96)
[Debug] Changing effective playback rate to – 0 (shaka-player.compiled.debug.js, line 714)
[Log] EVENT:  – "ratechange" (index.html, line 96)

User Agent

"Mozilla/5.0 (PlayStation 4 WebMAF) AppleWebKit/601.2 (KHTML, like Gecko) WebMAF/v3.0.1-rc-6-g6b785d8b SDK: (0x09008001u), Built: Jun  1 2022 16:46:42"
@agajassi agajassi added the type: bug Something isn't working correctly label Jun 23, 2022
@github-actions github-actions bot added this to the v4.2 milestone Jun 23, 2022
@joeyparrish
Copy link
Member

So WebMAF is a browser-like environment? Is there anywhere we could access that for debugging purposes? We don't have a PS4.

v4.1.1 fails, but v3.2.1 works? What about later v3.2 releases, such as v3.2.8? Does v3.3 work? Does v4.0?

@joeyparrish joeyparrish added the status: waiting on response Waiting on a response from the reporter(s) of the issue label Jun 23, 2022
@agajassi
Copy link
Contributor Author

Yes it is. Hmm 🤔, I think having an actual PS4 (test-kit or dev-kit) device is the only way unfortunately. Just a regular production PS4 doesn't cut it either. It needs to be one of their test or dev-kits.

I randomly tried a few builds between 3.2.1 and 4.1.1. None worked. I know I did 3.3.1 and 3.3.7 for sure.

I will run additional tests with other builds and be more thorough, in case if I get lucky and find a 3.x build that works

@github-actions github-actions bot removed the status: waiting on response Waiting on a response from the reporter(s) of the issue label Jun 23, 2022
@dsparacio
Copy link
Contributor

We will test the versions to see if something later works. Also, I'll be shipping a PS4 dev kit and pc to @littlespex for debugging. This will take some time.

@avelad avelad added the platform: Playstation 4 Issues affecting Playstation 4 label Jun 27, 2022
@bcupac
Copy link

bcupac commented Jun 27, 2022

One of the things that needs changing is that shaka.util.Platform.isApple() returns true for PS4.

Not sure if that was the only cause of MediaCapabilities.decodingInfo() failed error that I was getting for DASH/PlayReady.

At some point playback was starting but it was very glitchy.

Hopefully I'll have some time to look at it this/next week.

@agajassi
Copy link
Contributor Author

@bcupac thank you.
I went back and tried every single build between 3.2.1 and 4.1.1 and now can definitely confirm that last working version is 3.2.1.

@avelad
Copy link
Member

avelad commented Jun 27, 2022

Can you create a PR similar to #3808? Thanks!

@joeyparrish
Copy link
Member

One of the things that needs changing is that shaka.util.Platform.isApple() returns true for PS4.

This would force the use of our polyfill for MCap, since we force that on for isApple().

Can you create a PR similar to #3808? Thanks!

That would make it more explicit to force the MCap polyfill, but it sounds like it's already happening by accident. Perhaps we should try fixing isApple() first, and see what happens after that.

@joeyparrish joeyparrish added the priority: P2 Smaller impact or easy workaround label Jun 27, 2022
@joeyparrish
Copy link
Member

I would mark this a P1 (since everything is broken in WebMAF), but I'm marking this a P2 (lower priority) since that is not an officially supported platform for the project.

And since my team can't do anything about it, I'll assign this issue to the groups of folks who have responded so far (and @littlespex, who is apparently getting a PS4 dev kit).

Thanks!

@agajassi
Copy link
Contributor Author

On this new MSE based WebMAF environment navigator.vendor returns "Apple Computer, Inc.". That explains why shaka.util.Platform.isApple() returns true for PS4.

@bcupac
Copy link

bcupac commented Jun 28, 2022

PR is there just for clarity, as joeyparrish said it was polyfiling accidentally and it should as PS4 doesn't have navigator.mediaCapabilities

@agajassi
Copy link
Contributor Author

@bcupac
On PS4 it probably depends on WebMAF version, because navigator.mediaCapabilities.decodeInfo is defined for me. I just tested your PR on my device. Looks good. I am getting playback. Thank you very much.

That being said, I have another PS4 issue that involves VTT cue parsing. I haven't submitted a ticket yet, but I will shortly. So stay tuned 😉

@subhanahmed047
Copy link
Contributor

I was able to get the playback working on a PS4 test kit with Shaka Player v4.1.1 and Webmaf v3.0.1 using the suggested fix by @bcupac in this PR.

Looking forward to seeing the fix in an upcoming release.

@github-actions github-actions bot added the status: archived Archived and locked; will not be updated label Aug 27, 2022
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 27, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
platform: Playstation 4 Issues affecting Playstation 4 priority: P2 Smaller impact or easy workaround status: archived Archived and locked; will not be updated type: bug Something isn't working correctly
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants