-
Notifications
You must be signed in to change notification settings - Fork 45
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
add BlockAdditionMapping to describe each BlockAdditional data #287
Conversation
IMO it should be in https://github.com/Matroska-Org/matroska-specification/pull/276/files directly. enum restriction: I am currently not in favor to restrict the list, as we don't limits e.g. tags. |
What do you mean by "it" ? As discussed on CELLAR putting a name and differentiate string/binary for something that can already be done with BlockAdditional doesn't seem like the right way to go. The lace number may be an issue, but it can certainly be added to
The enum is open-ended, there can be other values. But if I'm going to mention that, then I'll probably remove |
OK, I am lost now. |
2c6fd74
to
cc2d785
Compare
This PR solves the current situation where there are The PRs are separated. #276 should be updated to use this new system (thus it comes after). |
I would appreciate it if Timecode would not be mentioned here. It looks like a premature standardization of timecode storage format to me. Rather allow users to make their own BlockAddIDType definition (if really necessary) possibly with some reserved range for later standardization. |
It would be nice to clarify how new |
The EBML specification implies that enum lists are restrictive, not open. https://github.com/Matroska-Org/ebml-specification/blob/master/specification.markdown#restriction-element |
cc2d785
to
e6d2191
Compare
Hope you don't mind me working in the same branch @robUx4. I added a few commits here to start to define how to define BlockAdditions for Codec Mappings. So far, I think they are used for A_WAVPACK4 (for the lossless part) and VP8/VP9 (for alpha encodings). I haven't found others, but do they exist? Then IIUC correctly, the values of 2 and greater are arbitrarily used to relate BlockAdditional to the new BlockAddition mappings. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's what collaboration is for :)
I don't think there are other uses of BlockAdditions
but then I forgot about VPx alpha...
This is similar to a TrackID + CodecID + CodecPrivate + TrackName but for extra frame data.
e4d7c12
to
74294a2
Compare
@robUx4 I updated this PR to start a block_additional_mapping (timecode as a string in this example) as a standalone document. I think the timecode document could be expanded to allow BlockAddIDExtraData to support different types of timecode such as expressions of SMPTE 12M or QuickTime's timecode descriptor of QuickTime Timecode Sample Data via https://github.com/cellar-wg/matroska-specification/pull/112/files. However in this PR, timecode is mostly here as a first example while the PR more so focuses on the Block Additional Mapping section and how to define the mappings. |
I can finally talk about what I alluded to earlier. YouTube now ingests and serves HDR10+ dynamic metadata. |
Hi @robUx4, I did a little redesign of this PR so now there's a Block Additional Mapping introduction in its own document with an example in XML. In the Makefile this is add along with all markdown within the block_additional_mapping directory into the end of the Codec document. Please re-review. |
My recent updates don't accommodate @mjbshaw's comment at #287 (comment) as I think that would be better handled in a later PR as we'll have to discuss reserving BlockAddID=4. |
Thanks for the tip @mjbshaw !
On our side we should probably mention that BlockAddID value 4 is also a reserved value and explain what it does. I created #345 so we don't forget to do it once this PR is merged. |
I reviewed the recent changes and this seems ok to me. There is more work to do on timecode; however that isn't the focus on this PR. I suggest to merge and then we'll follow up with both timecode refinement and HDR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some adjustments are needed. Or we can split this PR to cover the specific case of timecode BlockAddition separately.
since 0 is reserved for main Block and 1 is for codec context
also use new lines (if there's no line in between it produces the same output and is more readable)
and use new lines
VP8/VP9 might contain other BlockMore elements in the same BlockAdditions (HDR dynamic metadata)
cfae516
to
dc368ae
Compare
This PR is ready for a review. I removed the timecode block additional mapping (which was here as an example) to separate the discussions, but this focuses on the new elements for block additional mappings and how they are defined. |
LGTM |
Merging then :) |
It was added in ietf-wg-cellar#390 but that value is not allowed since ietf-wg-cellar#287. The Opaque data (used by WavPack) don't make use of that value since it's for data unknown to the codec.
It was added in ietf-wg-cellar#390 but that value is not allowed since ietf-wg-cellar#287. The Opaque data (used by WavPack) don't make use of that value since it's for data unknown to the codec.
This is similar to a TrackID + CodecID + CodecPrivate + TrackName but for extra frame data.
The
Timecode
andRAWCooked
values may be removed and done in a separate spec. They need to define properly how to interpret theBlockAddIDExtraData
binary data.