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

Most upvoted comments

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 master branch, you will need a TextDecoder polyfill for Xbox. We suggest https://www.npmjs.com/package/fastestsmallesttextencoderdecoder This is not needed for the v3.0.x branch 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:

-    const sourceBoxEnd = sourceBox.start + sourceBox.size;
+    const sourceBoxEnd = sourceBox.start;

For me, it at least fixes the E_FAIL error 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 master branch. 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.