This MR adds a very basic implementation of `IPropertyDescription` for system defined properties (i.e, the ones in \<propkey.h\>). This is needed to support the [`Properties`](https://learn.microsoft.com/en-us/uwp/api/windows.devices.enumeration.deviceinformation.properties?view=winrt-26100) method for `IDeviceInformation` in Windows.Devices.Enumeration (!6874).
--
v14: propsys: Implement IPropertyDescription for several known system properties.
propsys: Add IPropertyDescription stub for system defined properties.
propsys/tests: Add conformance tests for PSGetNameFromPropertyKey.
propsys: Add stubs for PSGetNameFromPropertyKey.
propsys: Add stubs for PropertySystem.
include: Add declaration for PSGetPropertySystem.
propsys/tests: Add conformance tests for PSGetPropertyKeyFromName.
propsys/tests: Add conformance tests for getting PropertyDescriptions from PropertySystem.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6892
--
v41: wintypes: Add stubs for IIterable<IKeyValuePair<HSTRING, IInspectable *>> to PropertySet.
wintypes: Add stubs for IMap<HSTRING, IInspectable *> to PropertySet.
wintypes: Add stubs for IObservableMap<HSTRING, IInspectable *> to PropertySet.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6766
These patches make a test case attached to the bug https://bugs.winehq.org/show_bug.cgi?id=33190 work.
--
v8: win32u: NtGdiExtTextOutW() should translate x,y from logical to device units at the last step.
win32u: Fix device<->world width/height converters.
win32u: Use slightly more readable names for DP/LP converters.
win32u: Use correct helper for converting width to device units.
gdi32/tests: Add some tests for rotated font metrics.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5068
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
As discussed in !8402. @cmccarthy what do you think of this? I think queueing an event right before shutting down the queue is enough to get the media session notified? It won't get the actual event but it will be able to see the MF_E_SHUTDOWN error after calling `EndGetEvent`?
--
v2: include: Remove now unnecessary IMFMediaShutdownNotify interface.
mf/session: Remove now unnecessary IMFMediaShutdownNotify.
winegstreamer: Remove now unnecessary IMFMediaShutdownNotify.
mf/session: Handle an optional MEError event from sources on shutdown.
winegstreamer: Queue an event before shutting down the event queues.
mfsrcsnk: Queue an event before shutting down the event queues.
mfplat/tests: Add more tests for event queue shutdown.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8415
This should fix some spurious test failure in `test_media_session_Close`, as sometimes the source shutdown happens quickly enough and changes the session state to SESSION_STATE_STOPPED, causing the later Close command to succeed when it consistently returns E_SHUTDOWN on Windows.
--
v6: mf/session: Simplify the media session shutdown event handling.
mf/session: Introduce a SESSION_FLAG_SOURCE_SHUTDOWN presentation flag.
mf/session: Replace SESSION_FLAG_END_OF_PRESENTATION with dedicated states.
mf/session: Replace SESSION_FLAG_FINALIZE_SINKS with dedicated states.
mf/session: Remove unnecessary SESSION_FLAG_PENDING_COMMAND flag.
mf/session: Move internal states to a separate command_state enum.
mf/session: Clarify internal states from session states separation.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8402