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.

1. Yes, I did test it on RDP reconnect for multiple streams.
2. Not really needed. CoCreateInstance() will fails in this case most likely 
and we will return false from Init(). So, it should be fine if it fails. Also, 
CoInitialize() can return RPC_E_CHANGED_MODE if someone already initialized 
thread as multithread apartment (MTA) and in this case CoCreateInstance() 
should work, so it is better not to fail Init() even if CoInitialize() failed.

-------------

PR: https://git.openjdk.java.net/jfx/pull/521

Reply via email to