On Thu, 27 May 2021 04:18:24 GMT, Alexander Matveev <almat...@openjdk.org> 
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

Reply via email to