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_GetBlob(mediatype, &MF_MT_USER_DATA, NULL, 0, &user_size)) + && hr != E_NOT_SUFFICIENT_BUFFER) { - 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; }
What is the meaning of E_NOT_SUFFICIENT_BUFFER check here? Is this supposed to check if MF_MT_USER_DATA attribute is present? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4879#note_58168