From: Danyil Blyschak dblyschak@codeweavers.com
In source_reader_create_transform(), store the result of IMFActivate_ActivateObject() so that in the event of failure, resources are freed and an appropriate HRESULT is returned.
Previously, if every object's activation failed, the last part of the function was not aware of this. --- dlls/mfreadwrite/reader.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/mfreadwrite/reader.c b/dlls/mfreadwrite/reader.c index 11eac81d2ca..96bb316ac85 100644 --- a/dlls/mfreadwrite/reader.c +++ b/dlls/mfreadwrite/reader.c @@ -2011,7 +2011,7 @@ static HRESULT source_reader_create_transform(struct source_reader *reader, BOOL { IMFMediaType *media_type;
- if (FAILED(IMFActivate_ActivateObject(activates[i], &IID_IMFTransform, (void **)&transform))) + if (FAILED(hr = IMFActivate_ActivateObject(activates[i], &IID_IMFTransform, (void **)&transform))) continue; if (SUCCEEDED(hr = IMFTransform_SetInputType(transform, 0, input_type, 0)) && SUCCEEDED(hr = IMFTransform_GetInputCurrentType(transform, 0, &media_type)))