MF_MT_VIDEO__NO__FRAME__ORDERING attribute
MF_MT_VIDEO_NO_FRAME_ORDERING set to non-zero (true) implies external users/apps wish that MFT does not perform any frame reordering while decoding the input video bitstream, that is, the output and display order is the same as the input and decoding order. It will overwrite bitstream syntaxes even if bitstream syntaxes do not indicate that the output and display order is the same as the input and decoding order.
It is an attribute set on input media type and takes effect once when streaming begins. Call IMFTransform::ProcessMessage with the MFT_MESSAGE_NOTIFY_BEGIN_STREAMING message.
BOOL stored as UINT32
The following code shows how to set the MF_MT_VIDEO_NO_FRAME_ORDERING property. The functionality within SetNoFrameReorderOnInput should be called before
HRESULT SetNoFrameReorderOnInput(
const BOOL bNoFrameReorder,
IMFMediaType *inputType // Pointer to the input media type.
)
{
HRESULT hr = S_OK;
if (bNoFrameReorder)
{
hr = inputType->SetUINT32(MF_MT_VIDEO_NO_FRAME_ORDERING, 1);
if (FAILED(hr))
{
goto done;
}
}
done:
return hr;
}