On Sat Mar 1 10:14:45 2025 +0000, Nikolay Sivov wrote:
> Sorry, I didn't check linux-32 results.
I took a look at the linux-32 results, but I missed the mf failures (I thought they were all ddraw). Why would linux-32 fail but not linux-64?
Anyway, it's the same test failing twice:
```
$ xmllint --xpath 'testsuites/testsuite/testcase[failure and @classname="mf:transform"]/@name' winetest.xml
name="mf:transform transform.c:2587 Test failed: aacdec: "MF_MT_USER_DATA": SetInputType returned 0."
name="mf:transform transform.c:2587 Test failed: aacdec: "MF_MT_USER_DATA": SetInputType returned 0."
```
The test checks that a call to `SetInputType` on the AAC decoder returns an error when `MF_MT_USER_DATA` is missing. It does so by relying on the return value of `MFCreateWaveFormatExFromMFMediaType`. So it's dependent on what was the broken behavior. I suspect it should also be checking `cbSize`. I'll add tests to confirm as much and then fix.
Note, I have confirmed that we now have the correct behavior for `MFCreateWaveFormatExFromMFMediaType` by adding (locally) the following two tests:
```
@@ -5958,6 +5958,8 @@ static void test_MFCreateWaveFormatExFromMFMediaType(void)
{ &MFAudioFormat_Float, WAVE_FORMAT_IEEE_FLOAT, sizeof(WAVEFORMATEX), 0, },
{ &MFAudioFormat_MP3, WAVE_FORMAT_MPEGLAYER3, sizeof(WAVEFORMATEX), 0, },
{ &DUMMY_GUID3, WAVE_FORMAT_EXTENSIBLE, sizeof(WAVEFORMATEXTENSIBLE), 22, },
+ { &MFAudioFormat_AAC, WAVE_FORMAT_MPEG_HEAAC, sizeof(WAVEFORMATEX), 0, },
+ { &MFAudioFormat_RAW_AAC, WAVE_FORMAT_RAW_AAC1, sizeof(WAVEFORMATEX), 0, },
```
Test bot passes:
https://testbot.winehq.org/JobDetails.pl?Key=151559
Well Windows did, Debian crashed.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7417#note_96328
The spec says if the passed pointer is NULL then return E_POINTER
and not to just unconditionally deref then set NULL.
Signed-off-by: Edward O'Callaghan <edward(a)antitrust.cc>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7451