shaka-player: [ViacomCBS] [XBOX] Clear preroll period to first encrypted content period failure.
Have you read the FAQ and checked for duplicate open issues? Yes completely.
What version of Shaka Player are you using? Tested Master branch, 2.5.14, 2.5.10, 2.4.7, 2.3.10 and 2.2.10 All of which had the exact same result. Could not get out of clear pre roll to content protected period.
Can you reproduce the issue with our latest release version? Yes
Can you reproduce the issue with the latest code from master? Yes
Are you using the demo app or your own custom app? Demo raw simple setup. Page urls included in support email with content and la urls.
If custom app, can you reproduce the issue using our demo app? yes
What browser and OS are you using? XBOX Win/10 Spartan (2014–2019 Edge) non chromium build of edge which is what XBOX dev offers at this time.
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
Sandbox ID: XDKS.1
OS version: 10.0.19041.3068 (rs_xbox_release_2006.200610-0000)
OS edition: June 2020
Xbox Live device ID: FD00A956242E1869
Console ID: 74f233ae.f9265a03.c4fee763.851eb008.01
Serial number: 210633693016
Console type: Xbox One S
Model: 1681
Devkit type: Universal Windows App Devkit
Sandbox ID: XDKS.1
OS version: 10.0.19041.3068 (rs_xbox_release_2006.200610-0000)
OS edition: June 2020
Console ID: A7DCC4D8.6B218CCF.694B68FC.0D3DB308.01
Model: 1681
Console type: Xbox One S
Devkit type: Universal Windows App Devkit
Sandbox ID: XDKS.1
OS version: 10.0.19041.3068 (rs_xbox_release_2006.200610-0000)
OS edition: June 2020
Xbox Live device ID: FD00812AA7534FE0
Console ID: 4c279407.7e461c98.d56bb52f.dfb64007.01
Serial number: 051235192517
Console type: Xbox One X
Devkit type: Universal Windows App Devkit
What are the manifest and license server URIs? Same as this ticket https://github.com/google/shaka-player/issues/2620 Sent over on shaka-player-issues@google.com
What did you do?
Play from 0 start time and let preroll finish, on the first transition to a content period player stalls.
Non zero test are interesting. If you skip the pre-roll with a non zero start time, all mid-roll DAI period transition thereafter works as expected.
What did you expect to happen? The first content period initializes and plays out.
What actually happened? The content period fails to init and play properly.
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 61 (56 by maintainers)
Commits related to this issue
- fix: Fix load-time exception in nodejs It is sometimes useful to load Shaka Player in nodejs, particularly a debug build, to access some internal part of Shaka Player in a nodejs script. For example... — committed to shaka-project/shaka-player by joeyparrish 3 years ago
- fix: Fix header sizes for MP4 boxes with 64-bit size fields The MP4 box header depends on both whether the box is a "full" box (with version and flags) and whether the box has an extra 64-bit size fi... — committed to shaka-project/shaka-player by joeyparrish 3 years ago
- fix: Catch unhandled rejection destroying StreamingEngine When destroying StreamingEngine, there is a chance that we might be in the middle of a fetch-and-append cycle. If that's the case, the Promi... — committed to shaka-project/shaka-player by joeyparrish 3 years ago
- fix: Fix load-time exception in nodejs It is sometimes useful to load Shaka Player in nodejs, particularly a debug build, to access some internal part of Shaka Player in a nodejs script. For example... — committed to shaka-project/shaka-player by joeyparrish 3 years ago
- fix: Fix header sizes for MP4 boxes with 64-bit size fields The MP4 box header depends on both whether the box is a "full" box (with version and flags) and whether the box has an extra 64-bit size fi... — committed to shaka-project/shaka-player by joeyparrish 3 years ago
- fix: Catch unhandled rejection destroying StreamingEngine When destroying StreamingEngine, there is a chance that we might be in the middle of a fetch-and-append cycle. If that's the case, the Promi... — committed to shaka-project/shaka-player by joeyparrish 3 years ago
- fix: Fix mixed clear/encrypted content on Xbox & Tizen Some platforms seem to ignore EME if the first init segment appended at the MSE level does not indicate encryption. To work around this, we wil... — committed to shaka-project/shaka-player by joeyparrish 3 years ago
- fix: Add TextDecoder requirement to isBrowserSupported This also adds logs indicating the external polyfills we require. Issue #2759 Change-Id: I7507e2014dfe2050b5ba43b82632c5b61f762094 — committed to shaka-project/shaka-player by TheModMaker 3 years ago
- fix: Fix header sizes for MP4 boxes with 64-bit size fields The MP4 box header depends on both whether the box is a "full" box (with version and flags) and whether the box has an extra 64-bit size fi... — committed to shaka-project/shaka-player by joeyparrish 3 years ago
- fix: Fix mixed clear/encrypted content on Xbox & Tizen (again) In d0da2d49 (Change-Id: Iccf6b8589cf9265ac9bef0d083f4a72f6f2dd628), we introduced a workaround for Xbox and Tizen in which we fake encry... — committed to shaka-project/shaka-player by joeyparrish 3 years ago
We’re very happy that we could address it at all. The change went out in the official v3.0.8 release, in case you want to stay on the release branch. Thanks for your feedback and for helping verify the work!
With the URL in the log, playing in ChromeOS, I don’t see an XML parsing error.
@bcupac, thank you for mentioning this! If you are using the
masterbranch, you will need aTextDecoderpolyfill for Xbox. We suggest https://www.npmjs.com/package/fastestsmallesttextencoderdecoder This is not needed for thev3.0.xbranch or v3.0 releases, but will be needed in v3.1+.Now that I look again at the logs from @agajassi, I see that the version number is reported as
v3.0.7-master-22-g49d611f6, so y’all must have made the same mistake.You can try again with a polyfill added for TextDecoder, or you can try building from the v3.0.x branch instead.
Xbox One will soon become an officially-supported platform. If anyone is interested to see how, check out this PR for our new test infrastructure tools for Xbox: https://github.com/google/generic-webdriver-server/pull/12
@riksagar, I’m not in control of the PR licenses coming from CBS’s license service, but they seem to be fine in that regard.
Flipping the order of “encv”/“enca” and “avc1”/“mp4a” boxes seems to make my Xbox happy, although Chrome doesn’t like it. Since this is a platform-specific workaround, that might not matter in the long run. However, I found that even with the workarounds disabled, the sample content sent to me by @dsparacio seems to play anyway.
So, it’s possible that my Xbox simply doesn’t exhibit the problem to begin with. @dsparacio, @agajassi, please try this small edit to the master branch in lib/media/content_workarounds.js to see if it helps:
For me, it at least fixes the
E_FAILerror I saw before, but since I can’t seem to reproduce the blocky-green artifacts of a failed decrypt either way, you’ll have to let me know what that small change does for your devices.Hey @joeyparrish , sorry if you already took this into account. You mentioned your Xbox1 is in DevMode. For DevMode you need to set you PR license to SL150.
I managed to find a used one that could be shipped to me by the end of the week. But thank you for the offer!
It will take some time to get set up for anything more useful than opening the browser, but I’ll try to set up Visual Studio and dev mode soon.
I’m cherry-picking this to v3.0.x and doing another test pass, in preparation for v3.0.8. If everything looks good here, I’ll push to v3.0.x. If your tests are not successful, I can still revert the commit before we push the release. Thanks!
@dsparacio, the workaround is now on the
masterbranch. Please take a look when you have time!The workaround has not quite cleared our code review yet, but I hope it will be on github soon. I’ll be sure to update this issue as soon as it’s out.
Good news and bad news. The good news is that there is a workaround in review right now. The bad news is that our Xbox One has died, so we have no way to confirm it there.
We will confirm the workaround on Tizen 3.0 using the content provided by @dsparacio, though, and then hopefully someone else can confirm on Xbox before we cherry-pick the workaround into a release.