cta-wave / content-specification-task-force

13 stars 0 forks source link

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

Open dsilhavy opened 3 years ago

dsilhavy commented 3 years ago

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:

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.