Nikolay Sivov (@nsivov) commented about dlls/mfreadwrite/reader.c:
if (SUCCEEDED(source_reader_get_source_type_handler(reader, index, &type_handler)))
{
if (FAILED(hr = IMFMediaTypeHandler_SetCurrentMediaType(type_handler, input_type)))
WARN("Failed to set current input media type, hr %#lx\n", hr);
IMFMediaTypeHandler_Release(type_handler);
}
if (FAILED(hr = IMFTransform_GetOutputCurrentType(stream->decoder.transform, 0, &output_type)))
WARN("Failed to get decoder output media type, hr %#lx\n", hr);
else
{
if (FAILED(hr = IMFMediaType_CopyAllItems(output_type, (IMFAttributes *)stream->current)))
WARN("Failed to set current output media type, hr %#lx\n", hr);
IMFMediaType_Release(output_type);
}
It's a duplication, not setting output type. I think for this call you don't really need a warning, it would be purely memory management failure, if it fails.