Closed Bug 1549544 Opened 1 year ago Closed 1 year ago

When encountering a pssh in cbcs encrypted fragment the encrypted event that's fired should use cenc as the init data type

Categories

(Core :: Audio/Video: Playback, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla68
Tracking Status
firefox68 --- fixed

People

(Reporter: bryce, Assigned: bryce)

References

(Blocks 1 open bug, Regression)

Details

Attachments

(1 file)

ISO/IEC 23001-7 lays out the common encryption standard or 'cenc'. Within this standard, there are several different schemes, confusingly, one of these is also known as 'cenc'.

When implementing parts of cbcs support in bug 1487416 I set the init data type we expose to cbcs. I believe this is incorrect, and that the type should be cenc. In this case the usage of 'cenc' refers to the init data format in the overall spec, and not something specific to the 'cenc' scheme. I.e. the data in the pssh box is in the same format if the 'cenc' or 'cbcs' schemes are used and this is the data we surface in the encrypted event, thus should have the same 'cenc' init data type.

When encountering media using the common encryption format (mp4s containing pssh
boxes), the encrypted event we fire should specify the cenc init data type.
Fixes a bug where for cbcs the 'cbcs' init data type was used -- which is a
bogus value.

It looks like when testing this I do see us dispatching with the 'cenc' type.

I think this is happening because:

  • This code in the mp4 demuxer hard codes the init data type.
  • I hit this code in my testing, which then uses the data set above.
  • In those cases, it looks like the pssh and init data is coming from the moov, rather than the moof. I imagine the bug with this case could be specific to the moof case -- in which case we follow a different path where we'd use the type from the first sample.

It would be good if we could have automated test coverage here, but with our current framework that is blocked on clearkey support (Bug 1516673).

Bug 1549737 created to track adding a test case (once we have clearkey-cbcs).

Summary: When encountering cbcs encrypted media the encrypted event that's fired should use cenc as the init data type → When encountering a pssh in cbcs encrypted fragment the encrypted event that's fired should use cenc as the init data type
Pushed by bvandyk@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/4b635d928b2b
Use the 'cenc' init data type when encountering cbcs media. r=cpearce
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
You need to log in before you can comment on or make changes to this bug.