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

CTA 5001-c : WAVE Baseline Splice Constraint Profile - Encryption #49

Open
dsilhavy opened this issue Apr 22, 2021 · 0 comments
Open

CTA 5001-c : WAVE Baseline Splice Constraint Profile - Encryption #49

dsilhavy opened this issue Apr 22, 2021 · 0 comments

Comments

@dsilhavy
Copy link

Dear all,
I was assigned an action item in the last DPCTF call. We discussed the WAVE Baseline Splice Constraint Profile and specifically the part on the encryption. I would like to share my findings:

While reading CTA-5001-C we noticed one thing that might need further discussion.

Section 7.2.2 Table 5 states: “ Encryption: Can change between unencrypted/encrypted at Splice Points. SHALL only contain one [CENC] scheme per Program (‘cenc’ or ‘cbcs’).

From our recent experience there are cases in which MSE/EME clients need to reinitialize the SourceBuffer:

  • Encrypted -> Unencrypted: Works fine without reinit of the MSE
  • Unencrypted -> Encrypted: Requires reinit of the MSE before transition

From our experience this is related to the CMAF header/DASH init segment. Whenever, the init segment of the encrypted content is appended first, no reinit is required. Appending an init segment of the encrypted content after an init segment of the unencrypted content requires an MSE reset first. The root cause seems to be the time at which the media keys are added. If playback is started prior to adding the media keys (which is typically the case for unencrypted content) a transition to encrypted content will fail. To my best knowledge, this is also discussed as part of MSE v2, see here:

As this problem occurs on todays Desktop browsers I suggest to be more precise in Section 7.2.2 and only allow such transitions if playback was started with encrypted content.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant