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?