Open Bug 1714626 Opened 3 years ago Updated 3 years ago

Gecko only stores one set of crypto information for sample descriptions even if multiple are present in the stsd box

Categories

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

defect

Tracking

()

People

(Reporter: bryce, Unassigned)

References

(Blocks 2 open bugs)

Details

When parsing the sample description table (stsd box) our code currently makes the assumption that a single sinf will be present. This can be seen in that our MoofParser stores a single mSinf member, rather than one per sample description entry[0]. This works for most media, but my understanding is that the specs involved allow more flexibility here. I.e. it's possible for well formed files to exist that we're not handling correctly. Specifically files with multiple sample descriptions, each of which contain crypto data.

In bug 1714125 I plan to address the case where the crypto information is the same. In such a scenario it doesn't matter that we only store one set of information, because if crypto1 == crypto2 then no matter which we store it's the same info.

However, if crypto1 != crypto2, and the mp4 relies on looking up a different sample description to get accurate crypto information, then we need to store that info per sample description and resolve it based on which sample description is referenced by a given sample.

[0] https://searchfox.org/mozilla-central/rev/bf8d5de8528036c09590009720bc172882845b80/dom/media/mp4/MoofParser.cpp#410

You need to log in before you can comment on or make changes to this bug.