On Thu, 27 May 2021 04:18:24 GMT, Alexander Matveev <[email protected]>
wrote:
> JDK-8264737 introduced new code for audio device removal/arrival
> notifications which calls CoInitialize/CoUninitialize on separate threads.
> CoInitialize/CoUninitialize should be called on same thread, since
> initialization is per thread. Doing it on separate thread will result in
> unloading COM libraries on that thread and if it uses COM libraries it might
> not work correctly. Fixed by calling it on same thread in same way it is done
> in dshowwrapper.
modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/gst-plugins-good/sys/directsound/gstdirectsoundnotify.cpp
line 57:
> 55: bool bResult = false;
> 56:
> 57: if (FAILED(CoInitialize(NULL))) {
As per the [`CoUninitialize`
doc](https://docs.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-couninitialize#remarks),
`CoUninitialize` should also be called if `CoInitialize` returns S_FALSE.
Can you please check.
-------------
PR: https://git.openjdk.java.net/jfx/pull/521