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

Errors for AOM's example animated AVIF files #44

Closed eportis-cloudinary closed 1 year ago

eportis-cloudinary commented 1 year ago

Are these files wrong, or is the Validator wrong?

https://github.com/AOMediaCodec/av1-avif/tree/master/testFiles/Netflix/avis

rbouqueau commented 1 year ago

For the record:

av1-avif/testFiles/Netflix/avis$ ~/works/ComplianceWarden/ComplianceWarden/bin/cw.exe avif alpha_video.avif 
+--------------------------------------+
|           avif validation            |
+--------------------------------------+

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

[avif][Rule #3] Warning: [ItemId=3] still_picture flag set to 0
[avif][Rule #3] Warning: [ItemId=4] still_picture flag set to 0
[avif][Rule #4] Warning: [ItemId=3] reduced_still_picture_header flag set to 0
[avif][Rule #4] Warning: [ItemId=4] reduced_still_picture_header flag set to 0
[avif][Rule #5] Warning: Sequence Header OBUs should not be present in the AV1CodecConfigurationBox
[avif][Rule #5] Warning: Sequence Header OBUs should not be present in the AV1CodecConfigurationBox
[avif][Rule #11] Warning: The to_item_ID value of 0 should not be used - ignoring (from_item_ID=3)
[avif][Rule #12] Error: Not data offset found for item 0
[avif][Rule #13] Error: No sequence header OBU found in 'mdat' box (track_ID=2)

========================================
[avif] 2 error(s), 7 warning(s).
========================================

===== Involved rules descriptions:

[avif][Rule #3] Section 2.1
The AV1 Image Item Data should have its still_picture flag set to 1.

[avif][Rule #4] Section 2.1
The AV1 Image Item Data should have its reduced_still_picture_header flag set to 1.

[avif][Rule #5] Section 2.1
Sequence Header OBUs should not be present in the AV1CodecConfigurationBox.

[avif][Rule #11] Section 4. Auxiliary Image Items
The mono_chrome field in the Sequence Header OBU shall be set to 1.
The color_range field in the Sequence Header OBU shall be set to 1.

[avif][Rule #12] Section 4. Alpha Image Images
An AV1 Alpha Image Item (respectively an AV1 Alpha Image Sequence) shall be
encoded with the same bit depth as the associated master AV1 Image Item
(respectively AV1 Image Sequence).

[avif][Rule #13] Section 4. Auxiliary Image Sequences
The mono_chrome field in the Sequence Header OBU shall be set to 1.
The color_range field in the Sequence Header OBU shall be set to 1.

+--------------------------------------+
|           miaf validation            |
+--------------------------------------+

Specification description: MIAF (Multi-Image Application Format)
MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019

========================================
[miaf] No errors.
========================================

+--------------------------------------+
|           heif validation            |
+--------------------------------------+

Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310

[heif][Rule #31] Error: 'msf1' brand: 'iso8' shall be present among the compatible brands array

========================================
[heif] 1 error(s), 0 warning(s).
========================================

===== Involved rules descriptions:

[heif][Rule #31] Section 10.3.1.1
Files shall contain the brand 'msf1' in the compatible brands:
- At least one track of handler type 'pict', as defined in 7.2, is required.
- It is required that 'iso8' is present among the compatible brands array.

+--------------------------------------+
|          isobmff validation          |
+--------------------------------------+

Specification description: ISO Base Media File Format
MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4)

========================================
[isobmff] No errors.
========================================

and

av1-avif/testFiles/Netflix/avis$ ~/works/ComplianceWarden/ComplianceWarden/bin/cw.exe avif Chimera-AV1-10bit-480x270.avif 
+--------------------------------------+
|           avif validation            |
+--------------------------------------+

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

[avif][Rule #3] Warning: [ItemId=1] still_picture flag set to 0
[avif][Rule #4] Warning: [ItemId=1] reduced_still_picture_header flag set to 0
[avif][Rule #5] Warning: Sequence Header OBUs should not be present in the AV1CodecConfigurationBox
[avif][Rule #10] Error: Track with 'pict' handler found, but no primary item that is an AV1 image item found.

========================================
[avif] 1 error(s), 3 warning(s).
========================================

===== Involved rules descriptions:

[avif][Rule #3] Section 2.1
The AV1 Image Item Data should have its still_picture flag set to 1.

[avif][Rule #4] Section 2.1
The AV1 Image Item Data should have its reduced_still_picture_header flag set to 1.

[avif][Rule #5] Section 2.1
Sequence Header OBUs should not be present in the AV1CodecConfigurationBox.

[avif][Rule #10] Section 3
The track handler for an AV1 Image Sequence shall be 'pict'.

+--------------------------------------+
|           miaf validation            |
+--------------------------------------+

Specification description: MIAF (Multi-Image Application Format)
MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019

[miaf][Rule #2] Error: compatible_brands list shall contain 'miaf' (found) and 'mif1' (not found)
[miaf][Rule #9] Error: PrimaryItemBox is required
[miaf][Rule #26] Error: Found no 'pixi' associated for 1 displayable (not hidden) images (ItemIds={1})

========================================
[miaf] 3 error(s), 0 warning(s).
========================================

===== Involved rules descriptions:

[miaf][Rule #2] Section 7.2.1.2
The FileTypeBox shall contain, in the compatible_brands list,
the following (in any order): 'mif1' (specified in ISO/IEC 23008-12)
[...]
Files conforming to the general restrictions in clause 7 shall include
the brand 'miaf' in the compatible_brands in the FileTypeBox.
/!\ this rule doesn't look for 'mif1' and 'miaf' brands rule-conformance:
     if a brand is absent then its conformance rules won't be checked here /!\

[miaf][Rule #9] Section 7.3.2
The primary item shall be a MIAF master image item.

[miaf][Rule #26] Section 7.3.6.6
The pixel information property shall be associated with every image that is
displayable (not hidden)

+--------------------------------------+
|           heif validation            |
+--------------------------------------+

Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310

[heif][Rule #0] Error: 'mif1' brand not found in 'ftyp' box
[heif][Rule #14] Error: No primary item.
[heif][Rule #31] Error: 'msf1' brand: 'iso8' shall be present among the compatible brands array

========================================
[heif] 3 error(s), 0 warning(s).
========================================

===== Involved rules descriptions:

[heif][Rule #0] Section 10.2.1.1
Files shall contain the brand 'mif1' in the compatible brands array of the
FileTypeBox.
/!\ this rule doesn't look for 'mif1' brands rule-conformance:
     if a brand is absent then its conformance rules won't be checked here /!\

[heif][Rule #14] Section 6.2
The file-level MetaBox shall identify as its primary item an item that is a
coded image or a derived image item

[heif][Rule #31] Section 10.3.1.1
Files shall contain the brand 'msf1' in the compatible brands:
- At least one track of handler type 'pict', as defined in 7.2, is required.
- It is required that 'iso8' is present among the compatible brands array.

+--------------------------------------+
|          isobmff validation          |
+--------------------------------------+

Specification description: ISO Base Media File Format
MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4)

========================================
[isobmff] No errors.
========================================

That could be due to the ComplianceWarden not implementing the latest version of the spec. @cconcolato Any opinion on the errors above?

cconcolato commented 1 year ago

It's most likely the files that are wrong and needs fixing. There was a previous bug report https://github.com/AOMediaCodec/av1-avif/issues/177. These files were created with a bunch of scripts when authoring tools did not exist. We should definitely fix them. I would suggest closing this issue and using the other one to follow up.