i need to encode RGB32 frames to H264 using Quick Sync, and my choice of API was Media Foundation, since I had that already with Microsoft's H264 encoder and wanted to switch to Quick Sync. So far I've been using Microsoft's Color Converter DSP before the actual H264 encoding but at least from what I read VPP should improve performance. I looked at all the samples for Media Foundation but I did not see if there is a way to do RGB32 -> NV12 conversion with VPP through them, to me it seems that the only Media Foundation components are the VC1/H264/.. encoders/decoders. So I wanted to ask, what is the least painful way to actually use VPP in my application? Does it make sense to try to patch the video encoders to also accept the RGB32 input and do the RGB32 -> VPP conversion in ProcessInput or there is some easier way i'm not seeing?
Unfortunately we do not have specific Media Foundation VPP sample available for use case you require.
I would guess the easiest approach would be to modify the encoder MFT by integrating VPP color conversion ahead of the encode operation. The added benefit of this approach is that you can couple VPP and encode, thus delaying synchronization until the after completed encode operation, leading to better performance, versus having to synchronize after both VPP and encode operations.
Someone else on the forum may have experience or suggestion about alternate options, such as existing open or commercial HW accelerated color conversion MFTs.