Nikolay Sivov (@nsivov) commented about dlls/mf/scheme_handler.c:
+ if (FAILED(IMFByteStream_QueryInterface(*out, &IID_IMFAttributes, (void **)&attributes))) + WARN("Failed to get IMFAttributes interface\n"); + else + { + if (FAILED(IMFAttributes_DeleteItem(attributes, &MF_BYTESTREAM_ORIGIN_NAME))) + WARN("Failed to delete MF_BYTESTREAM_ORIGIN_NAME attribute\n"); + if (FAILED(IMFAttributes_SetString(attributes, &MF_BYTESTREAM_EFFECTIVE_URL, url))) + WARN("Failed to set MF_BYTESTREAM_EFFECTIVE_URL attribute\n"); + if (FAILED(IMFAttributes_SetString(attributes, &MF_BYTESTREAM_CONTENT_TYPE, L"application/octet-stream"))) + WARN("Failed to set MF_BYTESTREAM_CONTENT_TYPE attribute\n"); + IMFAttributes_Release(attributes); + } + } + + IStream_Release(stream); + return hr; Just release ulrmon stream right away, and return if mf stream creation failed. IMFAttributes are probably always available if you're going to use MFCreateMFByteStreamOnStream(). I don't see any value in these warnings.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/3439#note_43002