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
If the AV1 Image Item Data consists of a single frame (i.e. when using a single layer),
It should have its still_picture flag set to 1.
It should have its reduced_still_picture_header flag set to 1.
libavif currently generates a meta box and image items alongside tracks when encoding sequences. I think this is the expected behavior because of ISO 23008-12 (HEIF):
Files containing an image sequence should also contain a file-level MetaBox with a primary item that is an image item as specified in Clause 6, for cases in which temporal presentation is either undesirable, or not possible (e.g. printing).
NOTE The primary item can share coded data with one of the intra-coded images in the sequence.
However the "shared coded data" will not have its still_picture and reduced_still_picture_header fields set to 0 because it is a sequence. So the note contradicts the other recommendations.
The recommendations on still_picture and reduced_still_picture_header were removed for Image Sequences in https://github.com/AOMediaCodec/av1-avif/pull/112. I suggest we do the same for Image Items.
Running libavif's ChangeSettingTest.AOM with
-DAVIF_ENABLE_COMPLIANCE_WARDEN=ON
gives:This matches AV1-AVIF v1.1.0 (also v1.0.0):
libavif currently generates a
meta
box and image items alongside tracks when encoding sequences. I think this is the expected behavior because of ISO 23008-12 (HEIF):However the "shared coded data" will not have its
still_picture
andreduced_still_picture_header
fields set to 0 because it is a sequence. So the note contradicts the other recommendations.The recommendations on
still_picture
andreduced_still_picture_header
were removed for Image Sequences in https://github.com/AOMediaCodec/av1-avif/pull/112. I suggest we do the same for Image Items.