-
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 AVC and HEVC codec mappings with BlockAdditionMapping 2 #390
Add AVC and HEVC codec mappings with BlockAdditionMapping 2 #390
Conversation
b9be6e4
to
354df6d
Compare
ebml_matroska.xml
Outdated
@@ -150,7 +150,7 @@ | |||
<extension webm="1"/> | |||
</element> | |||
<element name="BlockAddID" path="\Segment\Cluster\BlockGroup\BlockAdditions\BlockMore\BlockAddID" id="0xEE" type="uinteger" range="not 0" default="1" minOccurs="1" maxOccurs="1"> | |||
<documentation lang="en" purpose="definition">An ID to identify the BlockAdditional level. A value of 1 means the BlockAdditional data is interpreted as additional data passed to the codec with the Block data.</documentation> | |||
<documentation lang="en" purpose="definition">An ID to identify the BlockAdditional level. If BlockAddIDType of the corresponding block is 0, BlockAddID is considered as the corresponding BlockAddIDType.</documentation> |
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.
Same objection about the wording being confusing as in codec_specs.md
.
ebml_matroska.xml
Outdated
@@ -317,11 +317,11 @@ | |||
<extension webm="0"/> | |||
</element> | |||
<element name="BlockAdditionMapping" path="\Segment\Tracks\TrackEntry\BlockAdditionMapping" id="0x41E4" type="master" minver="4"> | |||
<documentation lang="en" purpose="definition">Contains elements that describe each value of <a href="https://www.matroska.org/technical/specs/index.html#BlockAddID">BlockAddID</a> found in the Track.</documentation> | |||
<documentation lang="en" purpose="definition">Contains elements that extend the track format, by adding content either to frames (with <a href="https://www.matroska.org/technical/specs/index.html#BlockAddID">BlockAddID</a>) or to the format definition</documentation> |
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.
Same objection as in 389: "the format definition" is a very ambiguous term, one that I wouldn't understand as an implementer. The "format definition" is e.g. ISO 14496-12. We don't extend that definition. What we do extend is codec-specific data present in the track headers.
|
||
Description: the `BlockAddIDExtraData` data is interpreted as `DOVIDecoderConfigurationRecord` structure as defined in [Dolby Vision Streams File Format](ttps://www.dolby.com/us/en/technologies/dolby-vision/dolby-vision-bitstreams-within-the-iso-base-media-file-format-v2.1.2.pdf). | ||
|
||
### hvcE |
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.
Please note, Dolby Vision is also possible (and is defined) for AVC streams, not only for HEVC.
In case of AVC related IDs are dvcC and avcE . We probably should change dvcC to be allowed on both HEVC and AVC, and define avcE for DV on AVC.
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 a very good point, Mike. @JeromeMartinez can you please adjust your PR accordingly? The PDF even talks about using Dolby Vision with other codecs such as VP9.
Additionally the PDF also mentions dvvC
atoms in addition to dvcC
when talking about Dolby Vision configuration boxes. Are they relevant to us somehow?
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.
I don't see where I limit dvcC
to a specific Codec ID
, I limit only for mvcC
and hvcE
.
I'll add dvvC
and avcE
to the list.
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.
Please note, Dolby Vision is also possible (and is defined) for AVC streams, not only for HEVC.
In case of AVC related IDs are dvcC and avcE . We probably should change dvcC to be allowed on both HEVC and AVC, and define avcE for DV on AVC.
HEVC Dolby Vision is not supported? I have seen a (MKV HEVC) movie online and it says Dolby Vision + 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.
HEVC Dolby Vision is not supported?
The text says the opposite, it is explicitly supported for both AVC and HEVC (other formats could be supported by just adding the corresponding 4CC for the enhanced layer configuration).
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.
HEVC Dolby Vision is not supported?
The text says the opposite, it is explicitly supported for both AVC and HEVC (other formats could be supported by just adding the corresponding 4CC for the enhanced layer configuration).
354df6d
to
66a994b
Compare
@mbunkus @MikeChenMM I updated the PR, please review again. |
66a994b
to
78a99c3
Compare
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.
Apart from those two small things I'm fine with the current version. Thanks a lot!
I'd really like to see a review from @robUx4 , though, before we merge any of our proposals.
78a99c3
to
e255aad
Compare
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.
I'm sorry to request changes yet again, but due to merging #392 your PR doesn't apply anymore — solely due to the changed URLs to the new web site layout in the XML. Please rebase.
Otherwise I'm fine with it now.
Thanks!
e255aad
to
cd59963
Compare
Done. |
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.
Looks fine to me now. Thanks again!
is it OK to merge this PR now? |
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.
The link to the DolbyVision spec should be turned into a reference.
There's also the question of the picture vs field terminology which I'm not sure about.
cd59963
to
95cb300
Compare
@robUx4 I modified the PR accordingly, please review again. |
I think it should be explained how to handled the interlacing a bit further if it can be one field, one picture (double field). At in which case should the Just like for AV1 we should also explain how the fields of |
I added a commit for making explicit the idea behind the word
AV1 documentation is the only one with such verbose description, more an help for developers than what should be in a specification, actually the only one with its own .md file, not sure it is good to do that in the standard itself.
I tried to write an issue for that, as well as for In my opinion there is no change really to do to this PR as is (so it could be merged), but rather a global quality update on all codec mappings, which should have its own issue tickets. |
nudge. |
57cae7a
to
3a09860
Compare
It may be of relevance to note that the original link for "Dolby Vision Streams Within the ISO Base Media File Format" is now broken, and has been moved to here. |
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.
Another alternative of #377, using
BlockAddIDType
for storing 4-byte ISOBMFF values.Discussion on #373 (comment).