I have a topology as below, it works fine for all frames of video sequence:
Source->Video Decoder MFT->Custom Video Edit MFT->Video Encoder MFT->Custom Sink MFT
But If I insert a Tee node after "Custom Video Edit MFT" to connect to Enhanced Video Renderer (EVR) as well, then the application doesn't run for all frames of the video sequence.
I tried to figure out the cause using mftrace, but it didn't help much. Is there a possibility of frame skips by any node if custom MFT takes too long time? I appreciate if some hints to debug this issue or any wild guess.
FYI, this issue observed only when I try with UHD (3840x2160) resolution video. It works well for HD (1920x1080) resolution.
Finally the issue is resolved by turning off the MF_SESSION_QUALITY_MANAGER as below, it avoids possible frame dropping:
CComPtr<IMFAttributes> attrib;
MFCreateAttributes(&attrib, 1);
attrib->SetGUID(MF_SESSION_QUALITY_MANAGER, GUID_NULL);
hr = MFCreateMediaSession(attrib, &_mediaSession);