Part 1 of a set of changes for making the recording of highlights and "Play of the Game"s to mp4 in Overwatch work.
This MR contains most of the required IMFMediaSink changes.
--
v2: winegstreamer: Avoid an assert in Gstreamer code.
mfplat: Return NULL for *stream_sink on error in IMFMediaSink::AddStreamSink.
mfplat: Accept any media types without a MF_MT_USER_DATA attribute in MFCreateWaveFormatExFromMFMediaType.
mf/tests: Add test for MEStreamSinkStarted and MEStreamSinkRequestSample events.
winegstreamer: Request new samples after starting media sink and after processing a sample.
mf/tests: Test media sink creation with a media type without MF_MT_USER_DATA attribute.
winegstreamer: Generate AAC codec data if not provided in a media type.
winegstreamer: Implement IMFStreamSink::IMFMediaTypeHandler.GetMajorType.
winegstreamer: Copy media type instead of returning a reference in IMFStreamSink::IMFMediaTypeHandler.GetCurrentMediaType.
winegstreamer: Implement IMFMediaSink::GetPresentationClock.
winegstreamer: Implement IMFMediaSink::SetPresentationClock.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5159
On Fri Mar 8 07:56:39 2024 +0000, Huw Davies wrote:
> ```suggestion:-0+0
> }
> /* FALLTHROUGH */
> ```
> The commit message could be better, e.g.
> ```
> comdlg32: Don't treat cmb1 as the printer list unless in PRINT_SETUP.
> This changes WMCommandW to match WMCommandA.
> ```
> Essentially swapping the subject with the sentence in the body.
Fixed. Thanks Huw.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4971#note_64269
Currently, if you try to parse unix path, it simply crashes. See this test:
```c
static void test_desktop_folder(void)
{
static WCHAR slash[] = { '/',0 };
IShellFolder *psf;
ITEMIDLIST *pidl;
DWORD eaten;
HRESULT hr;
hr = SHGetDesktopFolder(&psf);
ok(hr == S_OK, "Got %lx\n", hr);
hr = IShellFolder_QueryInterface(psf, &IID_IShellFolder, NULL);
ok(hr == E_POINTER, "Got %lx\n", hr);
hr = IShellFolder_ParseDisplayName(psf, NULL, NULL, slash, &eaten, &pidl, NULL);
ok(hr == S_OK /* wine */ || hr == E_INVALIDARG, "IShellFolder::ParseDisplayName returned 0x%08lx\n", hr);
if(hr == S_OK) ILFree(pidl);
IShellFolder_Release(psf);
}
```
I didn't add it to the patch because it has a wine-specific success here, due to unix integration, I'm not sure if that's allowed in tests? I'd be happy to add this as an actual test otherwise.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5225