On Thu, 20 Jul 2023 03:39:03 GMT, Renjith Kannath Pariyangad <[email protected]>
wrote:
>> Hi Reviewers,
>>
>> Observations :
>> 1. Without com initialize if we access Mixer for recording, library loaded
>> invalid GUID and clipped description in windows(ID not found in registry).
>> With com initialization library load proper GUID (same as registry).
>> 2. For Play back device always loading proper device GUID irrespective of
>> com Initialization.
>>
>> Test:
>> Since screen lock and unlock workflow required for reproducing this issue,
>> did coupe of iteration of manual testing post fix and confirmed its
>> resolving the problem.
>> To reconfirm nothing is broken, executed all audio related test cases on
>> test bench post fix and all are green.
>>
>> Please review the changes and let me know your comments if any.
>>
>> Regards,
>> Renjith.
>
> Renjith Kannath Pariyangad has updated the pull request incrementally with
> one additional commit since the last revision:
>
> Disabled OLE1 from CoInit
src/java.desktop/windows/native/libjsound/PLATFORM_API_WinOS_DirectSound.cpp
line 482:
> 480: DWORD WINAPI __stdcall DS_StartBufferHelper::ThreadProc(void *param)
> 481: {
> 482: ::CoInitializeEx(NULL, COINIT_MULTITHREADED |
> COINIT_DISABLE_OLE1DDE);
You're changing the COM for this thread from `COINIT_APARTMENTTHREADED` to
`COINIT_MULTITHREADED`.
Do DirectSound objects support multi-threading? I couldn't find anything
quickly.
A Microsoft sample for [Creating the Device
Object](https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ee416365(v=vs.85))
uses `CoInitializeEx(NULL, 0)`.
The documentation for
[`CoInitializeEx`](https://learn.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-coinitializeex)
says, “You need to initialize the COM library on a thread before you call any
of the library functions…”
This implies that any thread which creates DirectSound objects must initialise
COM first. I can't see it happening. Do I miss anything?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14898#discussion_r1272027291