On Mon Jul 8 21:43:03 2024 +0000, Etaash Mathamsetty wrote:
> cracked the mystery, im pretty sure AUDCLNT_STREAMFLAGS_RATEADJUST is
> needed for GetService to work :)
This explains things, thanks! I'll amend the tests and add support in `GetService()`.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5585#note_75784
On Tue Jul 9 19:55:30 2024 +0000, Davide Beatrici wrote:
> Since the operations are more or less the same as in
> `pulse_create_stream()`, could you create a helper function in a
> separate commit (that will be first in the list), please?
I've been looking into this when originally implementing the function. I had another look now.
The only shared parts that I think we could extract are
```c
new_bufsize_frames = ceil((stream->duration / 10000000.) * new_ss.rate);
size = new_bufsize_frames * 2 * pa_frame_size(&stream->ss);
if (NtAllocateVirtualMemory(GetCurrentProcess(), (void **)&new_buffer, zero_bits, &size, MEM_COMMIT, PAGE_READWRITE))
hr = E_OUTOFMEMORY;
```
but I couldn't make it not overly awkward, mostly because of when the variables have to be set and the failure paths / cleanup. I can do two helpers, one for `bufsize_frames` and `size` each unless you have a more detailed suggestion.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5585#note_75783
I'm not sure about the need for this solution, so it's a **DRAFT**. For me it is an academic interest to check whether atomic locks will give advantages over pthread_mutex in games. First impressions are that games have become smoother, but need to think about tests that can actually be measured.
Before build need define `WINE_USE_ATOMIC_LOCKS`.
```bash
export CFLAGS="${CFLAGS} -DWINE_USE_ATOMIC_LOCKS"
```
--
v2: ws2_32: Add atomic lock support.
wine32u: Add atomic lock support.
winevulkan: Add atomic lock support.
ntdll: Add atomic lock support.
winewayland: Add atomic lock support.
include: Define custom mutex macroses.
msxml3: Fix compilation errors with Clang 18.
configure: Change C standard to C17.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6031
First part of a series introducing a separate unix interface for the MF media source. The goal is to use a synchronous demuxing-only interface, similar to native, which will be simpler and faster and better fitted to most MF media source use cases.
--
v2: winegstreamer/media_source: Handle GST_QUERY_SCHEDULING on wg_source src pad.
winegstreamer/media_source: Handle GST_QUERY_DURATION on wg_source src pad.
winegstreamer/media_source: Handle GST_QUERY_URI on wg_source src pad.
winegstreamer/media_source: Push a stream and segment event to the wg_source.
winegstreamer/media_source: Create a demuxer element in wg_source_create.
winegstreamer/media_source: Create a source pad on the wg_source.
winegstreamer/media_source: Prefer MF_BYTESTREAM_ORIGIN_NAME for source URL.
winegstreamer/media_source: Provide first block of data and stream URL to wg_source.
winegstreamer/media_source: Call (Begin|End)Read to read the byte stream header.
winegstreamer/media_source: Introduce a new wg_source interface.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5998
This is the first batch of a series implementing faster media source resolution required to workaround an Unreal Engine race condition present in some games, and deterministic stream ordering that decodebin / parsebin cannot provide, which is required to expose the streams in native order, for compatibility in several other applications.
I pushed the full series as a branch here: https://gitlab.winehq.org/rbernon/wine/-/commits/mr/wg-source-part-one
Note that this full series is also a first step in the direction of having a simpler demuxer interface, which will be required in the future for compatibility with applications that build MF or DirectShow pipelines directly and expect the relevant components to behave as a demuxer and expose compressed media types. For now it only delays the use of wg_parser to whenever the media source is started, and matches the non-ordered streams using their media types and tags. This is a best effort solution but I don't think we can do much better for the moment.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3606
--
v2: winegstreamer: Expose the generic video decoder transform.
winegstreamer: Introduce a generic audio decoder transform.
winegstreamer: Rename aac_decoder to audio_decoder.
winegstreamer: Translate generic unknown audio / video media types.
winegstreamer: Support generic audio / video unknown formats.
winegstreamer: Call gst_video_info_from_caps for all video formats.
winegstreamer: Call gst_audio_info_from_caps for all audio formats.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5138