Far Cry 4 expects IXAudio27_GetDeviceDetails to return a PCM format GUID and refuses to create a source voice if the format is IEEE_FLOAT.
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/xaudio2_7/tests/xaudio2.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/dlls/xaudio2_7/tests/xaudio2.c b/dlls/xaudio2_7/tests/xaudio2.c index 502b513fb6b..ea7e2ec121a 100644 --- a/dlls/xaudio2_7/tests/xaudio2.c +++ b/dlls/xaudio2_7/tests/xaudio2.c @@ -27,6 +27,8 @@ #include "xapo.h" #include "xapofx.h" #include "mmsystem.h" +#include "ks.h" +#include "ksmedia.h"
static BOOL xaudio27;
@@ -937,6 +939,10 @@ static UINT32 test_DeviceDetails(IXAudio27 *xa) ok(dd.Role == GlobalDefaultDevice, "Got wrong role for index 0: 0x%x\n", dd.Role); else ok(dd.Role == NotDefaultDevice, "Got wrong role for index %u: 0x%x\n", i, dd.Role); + + todo_wine + ok(IsEqualGUID(&dd.OutputFormat.SubFormat, &KSDATAFORMAT_SUBTYPE_PCM), + "got format %s\n", debugstr_guid(&dd.OutputFormat.SubFormat)); }
return count;
And that a corresponding PCM format is supported.
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/mmdevapi/tests/render.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c index 495c1c6f496..6b77edc569e 100644 --- a/dlls/mmdevapi/tests/render.c +++ b/dlls/mmdevapi/tests/render.c @@ -232,6 +232,14 @@ static void test_audioclient(void) IsEqualGUID(&pwfxe->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)?"PCM": (IsEqualGUID(&pwfxe->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)?"FLOAT":"Other")); + ok(IsEqualGUID(&pwfxe->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT), + "got format %s\n", debugstr_guid(&pwfxe->SubFormat)); + + pwfxe->SubFormat = KSDATAFORMAT_SUBTYPE_PCM; + hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2); + ok(hr == S_OK, "Valid IsFormatSupported(Shared) call returns %08x\n", hr); + ok(pwfx2 == NULL, "pwfx2 is non-null\n"); + CoTaskMemFree(pwfx2); }
hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2);
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=104270
Your paranoid android.
=== w8 (32 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 6656 too far after playing 100ms
=== w864 (32 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 6656 too far after playing 100ms
=== w1064v1507 (32 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 51120 too far after playing 100ms render.c:1114: Test failed: Position 6743 too far after playing 100ms render.c:1340: Test failed: GetBuffer large (20671) at iteration 1
=== w1064v1809 (32 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 51968 too far after playing 100ms render.c:1114: Test failed: Position 6797 too far after playing 100ms
=== w1064 (32 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 58680 too far after playing 100ms render.c:1114: Test failed: Position 7039 too far after playing 100ms
=== w1064_tsign (32 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 7677 too far after playing 100ms
=== w10pro64 (32 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 58600 too far after playing 100ms render.c:1340: Test failed: GetBuffer large (22500) at iteration 3 render.c:1114: Test failed: Position 7196 too far after playing 100ms
=== w864 (64 bit report) ===
mmdevapi: render.c:1340: Test failed: GetBuffer large (20671) at iteration 4 render.c:1114: Test failed: Position 6656 too far after playing 100ms render.c:1340: Test failed: GetBuffer large (20671) at iteration 2
=== w1064v1507 (64 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 51168 too far after playing 100ms render.c:1114: Test failed: Position 6616 too far after playing 100ms
=== w1064v1809 (64 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 52296 too far after playing 100ms render.c:1114: Test failed: Position 6417 too far after playing 100ms
=== w1064 (64 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 58296 too far after playing 100ms render.c:1114: Test failed: Position 6809 too far after playing 100ms
=== w1064_2qxl (64 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 58696 too far after playing 100ms render.c:1114: Test failed: Position 6843 too far after playing 100ms
=== w1064_tsign (64 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 6911 too far after playing 100ms
=== w10pro64 (64 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 55808 too far after playing 100ms render.c:1340: Test failed: GetBuffer large (22500) at iteration 2 render.c:1114: Test failed: Position 7036 too far after playing 100ms
=== w10pro64_ar (64 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 58768 too far after playing 100ms render.c:1114: Test failed: Position 7090 too far after playing 100ms
=== w10pro64_he (64 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 57640 too far after playing 100ms render.c:1340: Test failed: GetBuffer large (22500) at iteration 5 render.c:1340: Test failed: GetBuffer large (22500) at iteration 7 render.c:1114: Test failed: Position 7017 too far after playing 100ms
=== w10pro64_ja (64 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 58736 too far after playing 100ms render.c:1114: Test failed: Position 7789 too far after playing 100ms
=== w10pro64_zh_CN (64 bit report) ===
mmdevapi: render.c:1114: Test failed: Position 57560 too far after playing 100ms render.c:1114: Test failed: Position 7798 too far after playing 100ms
Signed-off-by: Andrew Eikum aeikum@codeweavers.com
On Mon, Dec 20, 2021 at 05:16:36PM +0100, Rémi Bernon wrote:
And that a corresponding PCM format is supported.
Signed-off-by: Rémi Bernon rbernon@codeweavers.com
dlls/mmdevapi/tests/render.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c index 495c1c6f496..6b77edc569e 100644 --- a/dlls/mmdevapi/tests/render.c +++ b/dlls/mmdevapi/tests/render.c @@ -232,6 +232,14 @@ static void test_audioclient(void) IsEqualGUID(&pwfxe->SubFormat, &KSDATAFORMAT_SUBTYPE_PCM)?"PCM": (IsEqualGUID(&pwfxe->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)?"FLOAT":"Other"));
ok(IsEqualGUID(&pwfxe->SubFormat, &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT),
"got format %s\n", debugstr_guid(&pwfxe->SubFormat));
pwfxe->SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2);
ok(hr == S_OK, "Valid IsFormatSupported(Shared) call returns %08x\n", hr);
ok(pwfx2 == NULL, "pwfx2 is non-null\n");
CoTaskMemFree(pwfx2); } hr = IAudioClient_IsFormatSupported(ac, AUDCLNT_SHAREMODE_SHARED, pwfx, &pwfx2);
-- 2.34.0
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=104269
Your paranoid android.
=== w10pro64_ja (64 bit report) ===
xaudio2_7: xaudio2.c:69: Test failed: Callbacks called out of order: 3
=== debian11 (32 bit French report) ===
xaudio2_7: xaudio2.c:69: Test failed: Callbacks called out of order: 1
Signed-off-by: Andrew Eikum aeikum@codeweavers.com
On Mon, Dec 20, 2021 at 05:16:35PM +0100, Rémi Bernon wrote:
Far Cry 4 expects IXAudio27_GetDeviceDetails to return a PCM format GUID and refuses to create a source voice if the format is IEEE_FLOAT.
Signed-off-by: Rémi Bernon rbernon@codeweavers.com
dlls/xaudio2_7/tests/xaudio2.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/dlls/xaudio2_7/tests/xaudio2.c b/dlls/xaudio2_7/tests/xaudio2.c index 502b513fb6b..ea7e2ec121a 100644 --- a/dlls/xaudio2_7/tests/xaudio2.c +++ b/dlls/xaudio2_7/tests/xaudio2.c @@ -27,6 +27,8 @@ #include "xapo.h" #include "xapofx.h" #include "mmsystem.h" +#include "ks.h" +#include "ksmedia.h"
static BOOL xaudio27;
@@ -937,6 +939,10 @@ static UINT32 test_DeviceDetails(IXAudio27 *xa) ok(dd.Role == GlobalDefaultDevice, "Got wrong role for index 0: 0x%x\n", dd.Role); else ok(dd.Role == NotDefaultDevice, "Got wrong role for index %u: 0x%x\n", i, dd.Role);
todo_wine
ok(IsEqualGUID(&dd.OutputFormat.SubFormat, &KSDATAFORMAT_SUBTYPE_PCM),
"got format %s\n", debugstr_guid(&dd.OutputFormat.SubFormat));
}
return count;
-- 2.34.0