Now that we have MF pipelines properly resolved everywhere, we should be able to implement this, which is how native works. Some games assume a unique media type exposed by the source, and/or video processor being present in the pipeline.
It still decompresses streams internally, so next, we'll have to make it output compressed stream and let MF plug decoder elements in the pipelines.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5627
This is based on work done by Andrew Eikum. It has been in some form in Proton for the last 4 years.
If server's sampling rate is not 48kHz **DOOM Eternal** will try to set it 48kHz for the streams using the implemented interface. There's a whole class of audio devices that use 44.1kHz sampling rate and at least PulseAudio / PipeWire tends to inherit the value from the hardware to avoid resampling. The value can also be overridden by the user via the audio server's config files.
In such cases, if the interface is not present or stubbed, this results in **audio underruns and noticeable crackling**.
It's easy to test with pipewire-pulse:
```
$ cat /etc/pipewire/pipewire.conf.d/sample-rate.conf
context.properties = {
default.clock.rate = 41100
}
```
With PulseAudio this should be doable via setting `default-sample-rate = 41100` in `/etc/pulse/daemon.conf`.
--
v2: winepulse.drv: Implement set_sample_rate.
mmdevapi: Implement AudioClockAdjustment_SetSampleRate.
mmdevapi: Add stub IAudioClockAdjustment implementation.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5585
For some reason gitlab is not sending out patches properly (or at least as I would expect) for this MR and testbot isn't triggered. It hasn't sent out [PATCH v4 2/2], and for the no-diff v5 I sent to explicitly retrigger testbot there have been no patches at all :disappointed:
Does gitlab not send out a patch if there hasn't been a content change for that patch since the last version? Is there a way to trigger testbot manually for an MR?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5652#note_70644
Instead of internal ref, otherwise an executing callback might be the
one releasing the last ref, and MFUnlockWorkQueue will cancel and then
block waiting for the callback itself to finish executing.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5631
First part of Proton shared memory series. The full branch can be seen at https://gitlab.winehq.org/rbernon/wine/-/commits/mr/shared-memories.
--
v39: win32u: Use the desktop shared data for GetCursorPos.
server: Move the last cursor time to the desktop session object.
server: Move the cursor position to the desktop session object.
win32u: Open the desktop shared object in NtUserSetThreadDesktop.
server: Return the desktop object locator in set_thread_desktop.
server: Allocate shared session object for desktops.
include: Add ReadNoFence64 inline helpers.
server: Create a global session shared mapping.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3103
In some Win10 testbot images (notably jp and cn), we can get a spurious
layout change after creating the test window. Detect this and skip the
tests since the test expectations (e.g., wchar mappings) are now
invalid.
--
v3: user32/tests: Remove workaround for SendInput keyboard tests on zh_CN.
user32/tests: Skip affected keyboard tests if a spurious layout change is detected.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5652