Nikolay Sivov (@nsivov) commented about dlls/mfreadwrite/writer.c:
+ || FAILED(hr = IMFMediaType_IsEqual(type, stream_type, &flags))) + goto done; + + if (!(flags & MF_MEDIATYPE_EQUAL_MAJOR_TYPES)) + { + hr = MF_E_INVALIDMEDIATYPE; + goto done; + } + + /* Types are not compatible, create transforms. */ + if (!(flags & MF_MEDIATYPE_EQUAL_FORMAT_DATA)) + { + /* Try only using converter first, then try again with encoder. */ + if (FAILED(hr = stream_create_transforms(stream, type, stream_type, FALSE))) + hr = stream_create_transforms(stream, type, stream_type, TRUE); + } Do we need to try? We know that on mismatching subtypes we need an encoder. Are there any other cases?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/7570#note_98594