maj
maj copied to clipboard
Tolerance - non-strict mode please?
As some apps may make lazy AAFs, would it be possible to have some kind of 'non strict' mode when reading AAFs?
For instance trying to read the preface of an AAF exported from Digital Performer but it gives an error. However if I convert it to XML using aaffmtconv then it looks like it does actually contain enough useful information to generate a sequence. It's not complete garbage.
java.lang.ClassCastException: Cannot create a new extendible enumeration property value from the given AUID identity as it does not match the identity of an enumeration element of type PluginCategoryType.
at tv.amwa.maj.meta.impl.TypeDefinitionExtendibleEnumerationImpl.createValue(TypeDefinitionExtendibleEnumerationImpl.java:559)
at tv.amwa.maj.meta.impl.TypeDefinitionExtendibleEnumerationImpl.createFromBytes(TypeDefinitionExtendibleEnumerationImpl.java:618)
at tv.amwa.maj.io.aaf.AAFBuilder$LocalAAFEventReader.decodeProperties(AAFBuilder.java:625)
at tv.amwa.maj.io.aaf.AAFBuilder$LocalAAFEventReader.processPOIFSReaderEvent(AAFBuilder.java:317)
at tv.amwa.maj.io.aaf.AAFReader.processProperties(AAFReader.java:172)
at tv.amwa.maj.io.aaf.AAFReader.processProperties(AAFReader.java:148)
at tv.amwa.maj.io.aaf.AAFReader.processProperties(AAFReader.java:148)
at tv.amwa.maj.io.aaf.AAFReader.processProperties(AAFReader.java:148)
at tv.amwa.maj.io.aaf.AAFReader.read(AAFReader.java:121)
at tv.amwa.maj.io.aaf.AAFFactory.readPreface(AAFFactory.java:111)
at net.vordio.maj.MajTest.main(MajTest.java:20)
I also tried an AAF exported by Logic. This also won't validate. Non strict mode is going to be required to work with many apps.
tv.amwa.maj.exception.BadTypeException: Cannot create an instance of the underling record property type due to a tv.amwa.maj.exception.IllegalPropertyValueException: Unable to set the value of month due to a InvocationTargetException: The month must lie in the range 1 to 12.
at tv.amwa.maj.meta.impl.TypeDefinitionRecordImpl.createValueFromValues(TypeDefinitionRecordImpl.java:521)
at tv.amwa.maj.meta.impl.TypeDefinitionRecordImpl.createFromBytes(TypeDefinitionRecordImpl.java:828)
at tv.amwa.maj.meta.impl.TypeDefinitionRecordImpl.createFromBytes(TypeDefinitionRecordImpl.java:825)
at tv.amwa.maj.io.aaf.AAFBuilder$LocalAAFEventReader.decodeProperties(AAFBuilder.java:625)
at tv.amwa.maj.io.aaf.AAFBuilder$LocalAAFEventReader.processPOIFSReaderEvent(AAFBuilder.java:317)
at tv.amwa.maj.io.aaf.AAFReader.processProperties(AAFReader.java:172)
at tv.amwa.maj.io.aaf.AAFReader.processProperties(AAFReader.java:148)
at tv.amwa.maj.io.aaf.AAFReader.read(AAFReader.java:121)
at tv.amwa.maj.io.aaf.AAFFactory.readPreface(AAFFactory.java:111)