I am writing an AMA plugin that needs to provide compressed video frames in formats that are natively supported by Media Composer (DNxHD, XDCAMHD etc.). As media files need to be accessed using custom IO API, I need to implement the ISampleProvider2 interface.

I started to write some evaluation code that reads a raw DNxHD file and provides samples thru the ISampleProvider2 interface. Problem: I did not find the right configuration to provide compressed video frames, but only uncompressed ones.

My current assumption is that if the IUncompressedImageProvider interface is not implemented, then Composer should expect compressed essence as defined in the AAF… But if I do not implement it, then Media Composer displays “Exception: A serious error has occured! It is recommended that you restart the application immediately” when trying to play the clip, just after querying the interface. If I implement IUncompressedImageProvider, then Media Composer works fine but expects uncompressed video frames: I tried to fillup frame buffers with uncompressed/dummy data and it plays OK.

I first suspected the “Serious error” to be related to something wrong in my AAF, so I implemented the full ISampleMapping interface and disabled the ISampleProvider one. Like this it works fine, I am able to play my raw DNxHD file in Composer. At least I am now assuming essence description in the AAF is valid, but ISampleMapping does not fulfill the requirements.

So what is the right way to tell Composer that video is compressed when using ISampleProvider2 interface? Is it supported? Could anyone help with this?