Nikolay Sivov (@nsivov) commented about dlls/mfreadwrite/reader.c:
if (IsEqualGUID(&out_type.guidMajorType, &MFMediaType_Video))
- { category = MFT_CATEGORY_VIDEO_DECODER;
- } else if (IsEqualGUID(&out_type.guidMajorType, &MFMediaType_Audio))
- { category = MFT_CATEGORY_AUDIO_DECODER;
- } else
- {
WARN("Unhandled major type %s.\n", debugstr_guid(&out_type.guidMajorType)); return MF_E_TOPO_CODEC_NOT_FOUND;
- if (SUCCEEDED(hr = MFTEnum(category, 0, &in_type, &out_type, NULL, &classes, &count)))
- {
The `count` variable used to be zero-initialized. Could you restore that? Similarly CoTaskMemFree() was only used when count is non-zero. I don't know if we have that covered by MFTEnum() tests, but it's important to use in a compatible way, to be able to test just our mfreadwrite.dll separately, on Windows.