Nikolay Sivov (@nsivov) commented about dlls/mfplat/mediatype.c:
if (!IsEqualGUID(&major, &MFMediaType_Audio)) return E_INVALIDARG;
- if (!IsEqualGUID(&subtype, &MFAudioFormat_PCM) && !IsEqualGUID(&subtype, &MFAudioFormat_Float)) + if (FAILED(hr = IMFMediaType_GetBlobSize(mediatype, &MF_MT_USER_DATA, &user_size))) { - FIXME("Unsupported audio format %s.\n", debugstr_guid(&subtype)); - return E_NOTIMPL; + if (!IsEqualGUID(&subtype, &MFAudioFormat_PCM) && !IsEqualGUID(&subtype, &MFAudioFormat_Float)) + return hr; + user_size = 0; }
To check if attribute exists it's enough to use GetItem(key, NULL). Here it's fine of course, since you'll need user size anyway. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4879#note_58178