RFC mp3dmod/tests: Fix a couple failures on Vista.
Francois Gouget
fgouget at codeweavers.com
Wed Nov 25 12:50:29 CST 2020
diff --git a/dlls/mp3dmod/tests/mp3dmod.c b/dlls/mp3dmod/tests/mp3dmod.c
index 61002d59661..b1604c0fbd3 100644
--- a/dlls/mp3dmod/tests/mp3dmod.c
+++ b/dlls/mp3dmod/tests/mp3dmod.c
@@ -448,14 +448,15 @@ static void test_stream_info(void)
size = lookahead = alignment = 0xdeadbeef;
hr = IMediaObject_GetInputSizeInfo(dmo, 0, &size, &lookahead, &alignment);
ok(hr == S_OK, "Got hr %#x.\n", hr);
- ok(!size, "Got size %u.\n", size);
+ ok(size == 0 || broken(size == 2) /* Vista */, "Got size %u.\n", size);
ok(lookahead == 0xdeadbeef, "Got lookahead %u.\n", lookahead);
ok(alignment == 1, "Got alignment %u.\n", alignment);
size = alignment = 0xdeadbeef;
hr = IMediaObject_GetOutputSizeInfo(dmo, 0, &size, &alignment);
ok(hr == S_OK, "Got hr %#x.\n", hr);
- ok(size == 1152 * 4, "Got size %u.\n", size);
+ ok(size == 1152 * 4 || broken(size == 1152 * 2) /* Vista */,
+ "Got size %u.\n", size);
ok(alignment == 1, "Got alignment %u.\n", alignment);
IMediaObject_Release(dmo);
I'm a bit puzzled by the second chunk because the Vista result looks
good to me. The output format is:
static const WAVEFORMATEX output_format =
{
.nChannels = 1,
.nSamplesPerSec = 48000,
.nAvgBytesPerSec = 2 * 48000,
.nBlockAlign = 2,
.wBitsPerSample = 16,
};
.wFormatTag is not set but presumably it defaults to something sensible.
But there's only one channel of 16 bit so that would make it 2 bytes per
sample. Multiply by 1152, the number of samples in an MP3 frame, and
I'd expect to get 1152 * 2.
But all Windows versions except Vista return 1152 * 4, so a minimum of 2
MP3 frames?
--
Francois Gouget <fgouget at codeweavers.com>
More information about the wine-devel
mailing list