-
Notifications
You must be signed in to change notification settings - Fork 4
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
Support for unknown boxes #6
Comments
We discussed this during the Sep 28 Media WG teleconference (https://www.w3.org/2021/09/28-mediawg-minutes.html). My understanding of the intent of (and Chromium's implementation of) "Valid top-level box" means what is defined in the normatively referenced [ISOBMFF] spec (http://standards.iso.org/ittf/PubliclyAvailableStandards/c068960_ISO_IEC_14496-12_2015.zip) at the top-level of the box parsing hierarchy. While not clear in the BSF spec, my further understanding of the intent of handling other boxes encountered at the top-level, either valid but not top-level, or not defined in that [ISOBMFF] spec, was to trigger the append error algorithm. During the teleconference call, I don't think we arrived fully at a conclusion for the next steps:
Following the teleconference, I thought a bit more on this, and want to mention that, while skipping unknown boxes enables continued buffering of streams when new top-level (or other mid-level) boxes are introduced, such boxes (like compressed boxes) might introduce a requirement on the implementation to be able to support (not skip) them to be able to interoperably and correctly parse, buffer and play the media. A large benefit of immediately signalling error on unknown boxes encountered in the stream is precisely identifying implementation lack of support for the box. While it may scale less as [ISOBMFF] is updated, such updates have been rare. So there is a tradeoff: scale and attempt to play streams muxed against some newer version of [ISOBMFF] skipping unknown boxes, or provide implementations and content providers more precise signals of what support is missing that requires interop updates (spec and implementation) to support the new streams. I tend to prefer the latter, though I believe this issue needs further discussion. |
For reference, here is the list of top-level boxes defined in ISOBMFF (7th edition, WG03N0148_MDS19980) :
Note that there are other specifications (MPEG or not) defining top-level boxes. For example, the MPEG ones are:
|
@wolenetz In theory, yes, skipping a top-level box could potentially prevent you from interpreting correctly a next top-level box. In practice, ISOBMFF is extended in backwards-compatible ways. The top-level boxes used in MSE ( |
The BSF spec says:
and
In my testing, only Safari supports boxes like
unkn
. All browsers support afree
box though. It should be clarified what "Valid top-level box" means. Does it mean an actual box defined somewhere, and if so where? or does it mean any box likeunkn
should be supported as long as it is well-formed.The text was updated successfully, but these errors were encountered: