diff --git a/src/util/media_capture.cpp b/src/util/media_capture.cpp index f6bc1da62..4499338e2 100644 --- a/src/util/media_capture.cpp +++ b/src/util/media_capture.cpp @@ -1117,13 +1117,6 @@ MediaCaptureMF::CreateVideoEncodeTransform(std::string_view codec, u32 frame_rat ComPtr transform; hr = transforms[0]->ActivateObject(IID_PPV_ARGS(transform.GetAddressOf())); if (transforms) - wrap_MFHeapFree(transforms); - if (FAILED(hr)) [[unlikely]] - { - Error::SetHResult(error, "Encoder ActivateObject() failed: ", hr); - return nullptr; - } - { LPWSTR transform_name; UINT32 transform_name_length; @@ -1134,6 +1127,14 @@ MediaCaptureMF::CreateVideoEncodeTransform(std::string_view codec, u32 frame_rat StringUtil::WideStringToUTF8String(std::wstring_view(transform_name, transform_name_length))); CoTaskMemFree(transform_name); } + + wrap_MFHeapFree(transforms); + } + + if (FAILED(hr)) [[unlikely]] + { + Error::SetHResult(error, "Encoder ActivateObject() failed: ", hr); + return nullptr; } *use_async_transform = false;