gpac / ComplianceWarden

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

False negative: multiple iref boxes when ISOBMFF § 8.11.12 requires zero or one #17

Closed baumanj closed 3 years ago

baumanj commented 3 years ago

Per See ISOBMFF (ISO 14496-12:2015) § 8.11.12:

8.11.12 Item Reference Box 8.11.12.1 Definition Box Type: ‘iref’ Container: Metadata box (‘meta’) Mandatory: No Quantity: Zero or one

Here's an example of a non-compliant file that gives [isobmff] No errors from ComplianceWarden

rbouqueau commented 3 years ago

Hi, maintainer here. Very happy to get guided feedback about what to implement next (this check is not yet implemented). Please keep opening issues!

rbouqueau commented 3 years ago

I've just updated the wasm page so that you can check online.

baumanj commented 3 years ago

Wow! Thanks for addressing this so fast. I'm getting some errors from the tool (on basic load, before submitting any file) at the moment:

Tool errors:
wasm streaming compile failed: CompileError: wasm validation error: at offset 4: failed to match magic number
falling back to ArrayBuffer instantiation
failed to asynchronously prepare wasm: CompileError: wasm validation error: at offset 4: failed to match magic number
CompileError: wasm validation error: at offset 4: failed to match magic number

But I imagine you'll have those sorted soon and I'll check back.

rbouqueau commented 3 years ago

Thanks, should be fixed.

FYI the tool is also easy to build (it is C++ only): https://github.com/gpac/ComplianceWarden/blob/master/README.md. Then just execute bin/cw.exe avif file_to_check.