Fix const on property type arrays, add a few more required-essential props
diff --git a/src/read.c b/src/read.c
index da4f8d5..d236d30 100644
--- a/src/read.c
+++ b/src/read.c
@@ -1471,7 +1471,7 @@
// Copy property to item
avifProperty * srcProp = &meta->properties.prop[propertyIndex];
- static const char * supportedTypes[] = { "ispe", "auxC", "colr", "av1C", "pasp", "clap", "irot", "imir", "pixi" };
+ static const char * const supportedTypes[] = { "ispe", "auxC", "colr", "av1C", "pasp", "clap", "irot", "imir", "pixi" };
size_t supportedTypesCount = sizeof(supportedTypes) / sizeof(supportedTypes[0]);
avifBool supportedType = AVIF_FALSE;
for (size_t i = 0; i < supportedTypesCount; ++i) {
@@ -1485,8 +1485,19 @@
// Verify that it is legal for this property to not be flagged as essential. Any
// types in this list are *required* in the spec to be flagged as essential when
// associated with an item.
- static const char * essentialTypes[] = {
- "av1C" // AVIF: Section 2.2.1: "This property shall be marked as essential."
+ static const char * const essentialTypes[] = {
+ // AVIF: Section 2.2.1: "This property shall be marked as essential."
+ "av1C",
+
+ // HEIF: Section 6.5.11.1: "essential shall be equal to 1 for an 'lsel' item property."
+ "lsel",
+
+ // MIAF: Section 7.3.9: "All transformative properties associated with coded
+ // and derived images required or conditionally required by this document
+ // shall be marked as essential"
+ "clap",
+ "irot",
+ "imir"
};
size_t essentialTypesCount = sizeof(essentialTypes) / sizeof(essentialTypes[0]);
for (size_t i = 0; i < essentialTypesCount; ++i) {