Finding the footer of an MXF file is not always easy, the general algorithm to use is as follows:
- Check the FooterPosition property in the header partition pack
- Next, check for a Random Index Pack at the end of the file (read the last 4 bytes of the file which should be the size of the RIP, seek back this many bytes and see if you find a RIP key) the last entry will be for the footer
- Next, scan backwards through the file, byte-by-byte looking for the footer key, if you find it validate that it is a footer not just the bytes that make up the footer key as part of some other data field.
- If all else fails you may have to scan every KLV from the start of the file - this is not likely to be quick!
As you can see it is much easier to find the footer if either the
FooterPosition property in the header is used or the file contains a Random Index Pack. So, if it is not possible to complete
FooterPosition when encoding an MXF file add a RIP.