gpac / ComplianceWarden

A pluggable compliance checker (ISOBMFF, HEIF/MIAF/AVIF, AV1 HDR10+)
https://gpac.github.io/ComplianceWarden-wasm/
Other
16 stars 7 forks source link

AVIF rule #15: "stts" box can be omitted since all track samples are sync #68

Closed y-guyon closed 9 months ago

y-guyon commented 9 months ago

Running libavif's ChangeSettingTest.AOM with -DAVIF_ENABLE_COMPLIANCE_WARDEN=ON gives:

Specification description: AVIF v1.0.0, 19 February 2019 https://aomediacodec.github.io/av1-avif/ [avif][Rule #15] Warning: "stts" box can be omitted since all track samples are sync

The check was introduced in https://github.com/gpac/ComplianceWarden/commit/2c9031f470eb738c016f53c171cc0aeb97c111a3.

I am trying to understand if the issue comes from libavif or from ComplianceWarden. I could not find anything related to an optional "stts" in ISO 23008-12 (HEIF), ISO 23000-22 (MIAF), ISO 23000-19 (CMAF), AV1-AVIF v1.0.0, AV1-AVIF v1.1.0 nor AV1-ISOBMFF v1.2.0. Section 8.6.1.2.1 of ISO 14496-12 (BMFF) says stts is mandatory.

Section 8.6.2.1 of ISO 14496-12 says stss is not mandatory, and "If the SyncSampleBox is not present, every sample is a sync sample." So I believe there is a typo and it should be stss instead of stts checked at https://github.com/gpac/ComplianceWarden/blob/bf096d4bb35d8da48614b80ce763e3cc56361215/src/specs/avif/avif.cpp#L831-L832

wantehchang commented 9 months ago

@vigneshvg Vignesh: Could you take a look at this?

Yannis: I didn't consult the standards you cited, but I think your analysis is correct and that warning message should say "stss" instead of "stts".

rbouqueau commented 9 months ago

You are right, let me fix this.

rbouqueau commented 9 months ago

Should be good. Thanks for reporting!

y-guyon commented 9 months ago

Thanks for the fast fix!