Skip to content
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

Describe how to use consecutive ContentEncoding #580

Closed
robUx4 opened this issue Feb 13, 2022 · 1 comment · Fixed by #581
Closed

Describe how to use consecutive ContentEncoding #580

robUx4 opened this issue Feb 13, 2022 · 1 comment · Fixed by #581
Labels
clarifications spec_main Main Matroska spec document target

Comments

@robUx4
Copy link
Contributor

robUx4 commented Feb 13, 2022

It is possible to use more than one ContentEncoding in a track. But there is nothing that describes how it should be applied. In particular in what order.

Also different ContentEncoding may have a different ContentEncodingScope. But that wouldn't work well if a different ContentEncoding is applied after or before. So there's probably some constraints needed there.

Noone probably ever used 2 ContentEncoding in a single track but the specs allow it. But it might even be useful (see zstd Magic Number header stripping). So we need to clarify this.

@robUx4 robUx4 added clarifications spec_main Main Matroska spec document target labels Feb 13, 2022
@robUx4 robUx4 changed the title Describe how to uses consecutive ContentEncoding Describe how to use consecutive ContentEncoding Feb 20, 2022
@robUx4
Copy link
Contributor Author

robUx4 commented Feb 20, 2022

There is actally ContentEncodingOrder which is supposed to tell in which order the list of ContentEncoding has to be applied.

Chrome supports multiple ContentEncoding.
It doesn't support content compression, which makes the multiple support useless, unless there's encryption on different scope or multiple layers of encryption.
The only place it uses the list is to pick the CENC key. And it's only using the first content, without even checking the ContentEncodingOrder values.

Multiple layers may be useful though. You could do compression > header stripping of compressed data > encryption. But there's currently no implementation that supports more than one ContentEncoding (also checked libmatroska 1 and 2 as well as libavformat).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clarifications spec_main Main Matroska spec document target
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant