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

Gathering feedback on saiz extension. New version vs. new 4CC #99

Closed
podborski opened this issue Mar 26, 2024 · 4 comments
Closed

Gathering feedback on saiz extension. New version vs. new 4CC #99

podborski opened this issue Mar 26, 2024 · 4 comments
Labels
CENC Common Encryption ISOBMFF related to 14496-12

Comments

@podborski
Copy link
Member

We noticed that the 8 bit sample_info_size limitation in the version=0 of saiz can be problematic . Therefore, we proposed a fix to just extend the range by defining a new box saz2 that is equivalent to saiz. This is what the current CDAM text defines, it is basically the same as saiz but with 16 and 32 bits used for the size signaling:

aligned(8) class ExtendedSampleAuxiliaryInformationSizesBox
	extends FullBox('saz2', version, flags)
{
	if(version == 0) {
		if (flags & 1) {
			unsigned int(32) aux_info_type;
			unsigned int(32) aux_info_type_parameter;
		}
		unsigned int(16) default_sample_info_size;
		unsigned int(32) sample_count;
		if (default_sample_info_size == 0) {
			unsigned int(16) sample_info_size[ sample_count ];
		}
	}
	if(version == 1) {
		if (flags & 1) {
			unsigned int(32) aux_info_type;
			unsigned int(32) aux_info_type_parameter;
		}
		unsigned int(32) default_sample_info_size;
		unsigned int(32) sample_count;
		if (default_sample_info_size == 0) {
			unsigned int(32) sample_info_size[ sample_count ];
		}
	}
}

At Apple we think that having a new 4CC saz2 is a bit “safer” than defining a new version=1 saiz as there could be implementations out there that would still try to parse saiz version=1 as saiz version = 0.
However, in the file format group, when the issue was discussed, the feedback was a bit different. The group was leaning more towards extending the existing saiz as it is defined as FullBox in the first place and versions field can be used for that. This approach is currently in the TuC.

This issue here is just to get more feedback from the industry on the possible implications. Especially since it relates to CENC.

@podborski podborski added ISOBMFF related to 14496-12 CENC Common Encryption labels Mar 26, 2024
@AUGxhub
Copy link

AUGxhub commented Mar 27, 2024

vote up for new 4CC(FourCC) solution

@bradh
Copy link

bradh commented Mar 27, 2024

I don't think there is significant effort difference between reworking an existing saiz implementation and the cut-n-paste that would be involved in making saz2. So probably not an important consideration.

There is precedent for adding versions to published FullBox definitions.

I think it depends on whether saiz is seen as "generally applicable but a mainly a CENC thing". If so, saz2 might be better.

@bradh
Copy link

bradh commented Mar 27, 2024

Orthogonal to my previous comment, if there is going to be a new box with per-sample auxiliary information sizes / lengths, maybe it could be called sais or sail. Neither of those appears to be registered.

@cconcolato
Copy link
Contributor

At its previous meeting, the group decided to use versioning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CENC Common Encryption ISOBMFF related to 14496-12
Projects
None yet
Development

No branches or pull requests

4 participants