This fixes a looping audio issue during seek in VRChat. The issue is that on Windows the stop request in handled immediately thus the AVPro MFT (which loops the audio) can be immediately flushed. Wine currently waits for a pending sample request to be completed before handling the stop request. As a result, the AVPro MFT loops audio whilst it waits for another sample (or to be flushed).
This MR releases the source CS before calling `wg_parser_stream_get_buffer` so it does not delay the handling of the stop request. This appears to be safe as the Unix side of `wg_parser_stream_get_buffer` has its own set of primitives.
--
v3: winegstreamer: Don't hold lock during wg_parser_stream_get_buffer.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8282
--
v2: setupapi: Support additional built-in properties for device instances.
ntoskrnl.exe/tests: Add tests for built-in properties for PnP device instances.
setupapi: Support getting the instance id and class GUID as in-built properties in SetupDiGetDevicePropertyW and CM_Get_DevNode_Property_ExW.
setupapi/tests: Add tests for getting "in-built" properties from SetupDiGetDevicePropertyW and SetupDiGetDevicePropertyKeys.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8515
The test now consistently fails, probably since the docker image update, with x264enc failing to allocate memory. The failure seem to happen only if some tests are run before it, but that seem to come from memory fragmentation rather than leaks. Except for the leaks fixed here, I couldn't find any other through Valgrind or GStreamer leak checkers.
--
v2: mf/tests: Skip memory-hungry H264 encoder tests on 32bit.
mf/tests: Avoid leaking D3D resources through IMFTrackedSample.
mf/tests: Fix some leaks in transform tests.
winegstreamer: Fix some video decoder media type leaks.
mp3dmod: Avoid uninitialized variable access.
mp3dmod: Fix some media type leaks.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8527
The test now consistently fails, probably since the docker image update, with x264enc failing to allocate memory. The failure seem to happen only if some tests are run before it, but that seem to come from memory fragmentation rather than leaks. Except for the leaks fixed here, I couldn't find any other through Valgrind or GStreamer leak checkers.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8527
Currently the treeview items do not change selection when back or forward buttons are clicked. The DoSync function also needed to be changed because the paths to the htm files in the .chm don't line up with the path to the .chm, especially if the .chm is not in the same path as hh.exe.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8526
Generic ATTribute Profile (GATT) is a protocol used by BLE devices for data exchange. Broadly, every LE device contains one or more GATT services, with each service having multiple characteristics, which contain the actual piece of data to be exchanged. The Win32 BLE api is defined in [`bluetoothleapis.h`](https://learn.microsoft.com/en-us/windows/win32/api/bluetoothleapis/), and operates on `HANDLE`s to PDOs created by the driver to remote devices and services, using the `GUID_BLUETOOTHLE_DEVICE_INTERFACE` and `GUID_BLUETOOTH_GATT_SERVICE_DEVICE_INTERFACE` class interfaces respectively.
This MR introduces initial support for accessing GATT services on LE devices:
* Create PDOs for remote devices that we discover GATT services on, and enabling `GUID_BLUETOOTHLE_DEVICE_INTERFACE` for them.
* Because the driver also creates PDOs for bluetooth radios, a tagged union is used to distinguish between device extension values to dispatch IOCTL and PnP IRPs appropriately.
* Enumerate through all `org.bluez.GattService1` objects on BlueZ, and store them on the PE driver inside the associated devices.
* Implement IOCTL_WINEBTH_LE_DEVICE_GET_GATT_SERVICES for device PDOs.
* Use the newly added IOCTL to implement [`BluetoothGATTGetServices`](https://learn.microsoft.com/en-us/windows/win32/api/bluetoothleapis/nf-bluetoothleapis-bluetoothgattgetservices).
--
v13: bluetoothapis/tests: Add tests for BluetoothGATTGetServices.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8174