CRYPT_ImportSystemRootCertsToReg calls sync_trusted_roots_from_known_locations which calls
check_and_store_certs. check_and_store_certs creates a chain engine with `cached`. Here the problem
is that the chain engine actually owns the store used to create it. And when later the chain engine
is freed, the store is closed too.
This means on the success path `cached` is already closed when
sync_trusted_roots_from_known_locations returns to CRYPT_ImportSystemRootCertsToReg, but
CRYPT_ImportSystemRootCertsToReg tries to close `cached` again.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8180
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).
--
v4: bluetoothapis/tests: Add tests for BluetoothGATTGetServices.
bluetoothapis: Implement BluetoothGATTGetServices.
winebth.sys: Implement IOCTL_WINEBTH_LE_DEVICE_GET_GATT_SERVICES.
winebth.sys: Store a list of GATT services discovered on LE devices.
winebth.sys: Create PDOs for remote Bluetooth devices.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8174
--
v2: avifil32: Fix dwLength counting for fixed size samples.
avifil32: Assume OF_WRITE for OF_CREATE in AVIFileOpenW().
avifil32/tests: Test creating AVI file with OF_CREATE but without access mode.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8152
--
v4: mshtml: Remove outdated FIXME comment.
mshtml: Try to guess the script encoding when there's no BOM.
mshtml/tests: Test mixed charset encodings for document and text resources.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7360
Windows doesn't support I420 10LE, but uses P010 instead, thus
GST_VIDEO_FORMAT_I420_10LE is ultimately converted to
GST_VIDEO_FORMAT_P010_10LE.
This fixes playback of videos in VRChat that use i420 10le as the raw video color format.
--
v2: winedmo: Add support for the P010 format.
winegstreamer: Add support for the I420 10LE format.
winegstreamer: Add support for the P010 format.
mfplat: Add support for the P010 format.
mfplat/tests: Add image size tests for P010.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8144
Marked as WIP since it depends on !8175 for the test to run reliably (and currently includes its commits).
Tests should be run both with HKCU\\Software\\Wine\\MediaFoundation\\DisableGstByteStreamHandler enabled and disabled.
--
v3: mfsrcsnk: Support thinning.
winedmo: Support thinning.
winegstreamer: Support thinning in media source.
winegstreamer: Support thinning in wg_parser.
mf: Support thinning in media session.
mf/tests: Add tests for thinning.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8184