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).
--
v3: dlls/propsys: Implement IPropertyDescription for several known system properties.
dlls/propsys: Add IPropertyDescription stub for system defined properties.
dlls/propsys/tests: Add conformance tests for PSGetNameFromPropertyKey.
dlls/propsys: Add stubs for PSGetNameFromPropertyKey.
dlls/propsys: Add stubs for PropertySystem.
dlls/propsys/tests: Add conformance tests for PSGetPropertyKeyFromName.
dlls/propsys/tests: Add conformance tests for getting PropertyDescriptions from PropertySystem.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6892
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).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6892
Windows 10 and 11 introduce the timeout.exe command. This is a similar program with same argument options
--
v20: timeout: add minimal test suite
timeout: Windows 10 introduce the timeout command
https://gitlab.winehq.org/wine/wine/-/merge_requests/6869
The tests aren't really tested though (they partially require interactive mode
and they caused lag issues on one person's machine).
--
v2: dsound/tests: Add NaN tests for floating-point 3D functions.
dsound: Reject NaN values in floating-point 3D functions.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6289
Some things to test:
* could we use sample allocator unconditionally? In other words, is it possible to get SVR used when no device manager was provided;
* EVR has a circular buffer logic, so maybe we could copy from there;
* it would be great if we could get rid of locking sample buffer for copies, and that should be possible if we always have d3d samples.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5924#note_88688
Nikolay Sivov (@nsivov) commented about dlls/mfmediaengine/video_frame_sink.c:
> + LONGLONG pts2;
> + transfer_sample = TRUE;
> + /* if the second sample we have is also OK, we'll drop the first and use the second */
> + sample_index_increment(&sample_read_index);
> + if (sink->sample[sample_read_index] && sample_get_pts(sink->sample[sample_read_index], clocktime, &pts2) == S_OK)
> + {
> + *pts = pts2;
> + IMFSample_Release(sink->sample[sink->sample_read_index]);
> + sink->sample[sink->sample_read_index] = NULL;
> + sink->sample_read_index = sample_read_index;
> + }
> + }
> + else if (sink->presentation_sample && !sink->sample_presented)
> + {
> + hr = sample_get_pts(sink->presentation_sample, clocktime, pts);
> + }
I find this hard to understand. We'll need to document what's happening. For example, why does this check one more sample at all? Is that because buffer size is 2, or we always would check the adjacent one.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5924#note_88687
Nikolay Sivov (@nsivov) commented about dlls/mfmediaengine/main.c:
> {
> media_engine_set_flag(engine, FLAGS_ENGINE_SHUT_DOWN, TRUE);
> media_engine_clear_presentation(engine);
> + /* critical section can not be held during shutdown, as shut down requires all pending
> + * callbacks to complete, and some callbacks require this cs */
> + LeaveCriticalSection(&engine->cs);
> IMFMediaSession_Shutdown(engine->session);
> + EnterCriticalSection(&engine->cs);
> }
That's something else, unrelated to SVR work?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5924#note_88686