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.

Data type

BOOL stored as UINT32

Example Code

The following code shows how to set the MF_MT_VIDEO_NO_FRAME_ORDERING property. The functionality within SetNoFrameReorderOnInput should be called before

C++
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;
}

See also

Alphabetical List of Media Foundation Attributes

Transform Attributes