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

False negative: Warning: construction_method > 1 not supported #22

Closed baumanj closed 3 years ago

baumanj commented 3 years ago

When running https://gpac.github.io/ComplianceWarden-wasm/avif.html with kodim-extents.avif.zip, I observed:

Compliance Warden, version v27-master-rev0-g9ebfd86.
+--------------------------------------+
| avif validation |
+--------------------------------------+

Specification description: AVIF v1.0.0, 19 February 2019
https://aomediacodec.github.io/av1-avif/

[avif][Rule #1] Warning: construction_method > 1 not supported

Tool errors:
Assertion failed: 0 && "obu_has_size_field shall be set", at: src/spec_avif.cpp,469,parseAv1Obus

This warning specifically seems erroneous:

[avif][Rule #1] Warning: construction_method > 1 not supported

Examining with https://gpac.github.io/mp4box.js/test/filereader.html, reveals that for the only iloc box present, the construction_method value is 0.

There are other problems with that file (notably the lack of a hdlr box), but they are not reported

baumanj commented 3 years ago

Here's a file that I believe is valid, but gets the same error: multiple-extents.avif.zip

rbouqueau commented 3 years ago

Thanks for reporting. 3 issues on our end: 1) an error condition was hiding the proper error message (which says this is not implemented), 2) multiple extents are not yet implemented (first time we'd encounter a content that makes proper use of it), 3) the error handing is limited: at the moment we assert and stop the execution. This may be ok for the initial parsing but we should be able to recover when parsing occur inside one check. I'll think about it.

rbouqueau commented 3 years ago

The 3 issues are fixed. Closing.