Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

AAF SDK and MXF files

Anonymous
2012-11-15
2013-04-29

  • Anonymous
    2012-11-15

    Hello

    My current project involves both AAF and MXF files and since there should be "Zero Divergence" between them I thought that I can use one toolkit to deal with both of them.

    But I quickly found out that the divergence seems to be greater than zero as far as the SDK is concerned.
    I could only parse few MXFs most of them either caused assertions about objects not found, crashed the AAFCOAPI or just failed to be recognized as valid files.

    I fiddled around with the source to check why the SDK does not grok these files and here is what I found out:
    1. Some MXFs have version set to 1.3 (as per the 2009 MXF spec). AAF SDK wants 1.2 and nothing else (in the OM library)
    2. The rest of the problems are related to missing things from the object model. The DataEssence_Datadef was missing and also the ANCDataDescriptor class.

    After digging deep into the source and finding out that I have no idea how to use the awk program used to generate the dictionary (seems that the excel file is different from what it expects in terms of field names and more…
    Also I discovered that the DataDefs are actually not used at all from the dictionary header, but they are hardcoded somewhere else.
    So I added the missing datadef manually.

    I did not have time to mess with dodo and things like that to add the ANCDataDescriptor…
    But I tried to replace the AAFCOAPI.dll with one which Avid provides with their editing software. That one groked all files perfectly… It has version number 1.1.6.something which leads me to believe that it is based on the current 1.1.6 version of the SDK (and yes, I tried to build the HEAD revision also… which also does not like my MXFs).

    Any chance that the Avid people check back in their changes?

    Or someone who knows how to add ANCDataDescriptor can share their knowledge

    Thanks,
    Jaka