If I'm getting it right, in an exporter, with the GetPixels function we get direct access to reading and modifiying pixels for the current frame.
This array of pixels is used for making the preview frame in the preview window AND it is the same array used if we are exporting the same sequence in multiple format at the same time...
This might be a feature, but I think you should state in the documentation that we should make a copy of theses pixels before modifying them for our exporter (for example swizzling pixels).
Why would a user ever expect an Exporter to modify pixels?
Well that's true, users don't expect Exporters to modify pixels BUT they actually can . For my exporter I am swizzling pixels so that they are in the right orders.
I tried to export both H264 and with my exporter from the same sequence. My exporter is able to modify pixels for the H264 exporter, resulting in a corrupted H264 export...
Strange thing is that my exporter was asking for 16 bit pixels and I would guess that the H264 exporter works in 8 bit, so I don't understand why the pixels array was shared.
I don't think that is a good feature for a professional video converter software like AME. Exporters should work with frames in a sandbox.