Nikolay Sivov (@nsivov) commented about dlls/mfplat/mediatype.c:
if (FAILED(hr = IMFMediaType_GetBlobSize(mediatype, &MF_MT_USER_DATA, &user_size))) {
if (!IsEqualGUID(&subtype, &MFAudioFormat_PCM) && !IsEqualGUID(&subtype, &MFAudioFormat_Float))
if (SUCCEEDED(IMFMediaType_GetGUID(mediatype, &MF_MT_AM_FORMAT_TYPE, &formattype)) &&
!IsEqualGUID(&formattype, &GUID_NULL) &&
!IsEqualGUID(&subtype, &MFAudioFormat_PCM) && !IsEqualGUID(&subtype, &MFAudioFormat_Float)) return hr;
Either commit message is confusing, or there is something else missing. The message says "allow attribute to be missing", but it was never checked before and its value is not used in your change. Is the the idea that we either have MT_USER_DATA or MT_AM_FORMAT_TYPE? Docs seem to imply that a little bit.