On Sat Mar 1 21:59:13 2025 +0000, Brendan McGrath wrote:
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.
I've raised MR !7465 to fix the failing test. I also add new tests that seem to indicate we are still missing some validation in the aac decoder around `MF_MT_USER_DATA`. For example, in one of the tests, I send a value of 44.1KHz in `MF_MT_AUDIO_SAMPLES_PER_SECOND`, but a value of 48KHz in `MF_MT_USER_DATA`. Windows returns `MF_E_INVALIDMEDIATYPE`, but we return `S_OK`. So this test is currently marked as todo.