[PATCH v2 0/2] MR8662: Revert "mmdevapi: Error out if the channel count or sampling rate doesn't match the mix format."
This reverts commit 00211db0d08d60ee9a0e40206bf7cf9b5b88987b, which introduced a lot of test failures and is taking some time to be reworked properly. -- v2: mmdevapi/tests: Mark a wrong error code by IsFormatSupported() as todo. https://gitlab.winehq.org/wine/wine/-/merge_requests/8662
From: Giovanni Mascellani <gmascellani(a)codeweavers.com> This reverts commit 00211db0d08d60ee9a0e40206bf7cf9b5b88987b, which introduced a lot of test failures and is taking some time to be reworked properly. --- dlls/mmdevapi/client.c | 34 +--------------------------------- dlls/mmdevapi/tests/capture.c | 1 + dlls/mmdevapi/tests/render.c | 1 + 3 files changed, 3 insertions(+), 33 deletions(-) diff --git a/dlls/mmdevapi/client.c b/dlls/mmdevapi/client.c index 61b9167f3c6..39cbae27b34 100644 --- a/dlls/mmdevapi/client.c +++ b/dlls/mmdevapi/client.c @@ -398,22 +398,6 @@ static HRESULT stream_init(struct audio_client *client, const BOOLEAN force_def_ return E_INVALIDARG; } - if (mode == AUDCLNT_SHAREMODE_SHARED) { - WAVEFORMATEX *mix_fmt; - HRESULT hr; - - if (FAILED(hr = IAudioClient3_GetMixFormat(&client->IAudioClient3_iface, &mix_fmt))) - return hr; - - if (fmt->nChannels != mix_fmt->nChannels || fmt->nSamplesPerSec != mix_fmt->nSamplesPerSec) - { - CoTaskMemFree(mix_fmt); - return AUDCLNT_E_UNSUPPORTED_FORMAT; - } - - CoTaskMemFree(mix_fmt); - } - sessions_lock(); if (client->stream) { @@ -776,25 +760,9 @@ static HRESULT WINAPI client_IsFormatSupported(IAudioClient3 *iface, AUDCLNT_SHA TRACE("(%p)->(%x, %p, %p)\n", This, mode, fmt, out); - if (fmt) { + if (fmt) dump_fmt(fmt); - if (mode == AUDCLNT_SHAREMODE_SHARED) { - WAVEFORMATEX *mix_fmt; - HRESULT hr; - - if (FAILED(hr = IAudioClient3_GetMixFormat(iface, &mix_fmt))) - return hr; - - if (fmt->nChannels != mix_fmt->nChannels || fmt->nSamplesPerSec != mix_fmt->nSamplesPerSec) { - *out = mix_fmt; - return S_FALSE; - } - - CoTaskMemFree(mix_fmt); - } - } - params.device = This->device_name; params.flow = This->dataflow; params.share = mode; diff --git a/dlls/mmdevapi/tests/capture.c b/dlls/mmdevapi/tests/capture.c index 678fda5baca..17281bf3108 100644 --- a/dlls/mmdevapi/tests/capture.c +++ b/dlls/mmdevapi/tests/capture.c @@ -629,6 +629,7 @@ static void test_formats(AUDCLNT_SHAREMODE mode) { BOOL compatible = fmt.nSamplesPerSec == pwfx->nSamplesPerSec && fmt.nChannels == pwfx->nChannels; HRESULT expected = compatible ? S_OK : S_FALSE; + todo_wine_if(expected == S_FALSE) ok(hr == expected, "Got %lx expected %lx\n", hr, expected); } diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c index f674935de00..8772d6e3828 100644 --- a/dlls/mmdevapi/tests/render.c +++ b/dlls/mmdevapi/tests/render.c @@ -576,6 +576,7 @@ static void test_formats(AUDCLNT_SHAREMODE mode) { BOOL compatible = fmt.nSamplesPerSec == pwfx->nSamplesPerSec && fmt.nChannels == pwfx->nChannels; HRESULT expected = compatible ? S_OK : S_FALSE; + todo_wine_if(expected == S_FALSE) ok(hr == expected, "Got %lx expected %lx\n", hr, expected); } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8662
From: Giovanni Mascellani <gmascellani(a)codeweavers.com> --- dlls/mmdevapi/tests/capture.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/mmdevapi/tests/capture.c b/dlls/mmdevapi/tests/capture.c index 17281bf3108..f5c16dc838d 100644 --- a/dlls/mmdevapi/tests/capture.c +++ b/dlls/mmdevapi/tests/capture.c @@ -658,6 +658,7 @@ static void test_formats(AUDCLNT_SHAREMODE mode) "Initialize(noexcl., %c%lux%2ux%u) returns %08lx(%08lx)\n", format_chr, fmt.nSamplesPerSec, fmt.wBitsPerSample, fmt.nChannels, hr, hrs); else + todo_wine_if(hr == AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED) ok(hrs == S_OK ? hr == S_OK : hr == AUDCLNT_E_ENDPOINT_CREATE_FAILED || hr == AUDCLNT_E_UNSUPPORTED_FORMAT, "Initialize(exclus., %c%lux%2ux%u) returns %08lx\n", -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8662
This merge request was approved by Huw Davies. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8662
participants (3)
-
Giovanni Mascellani -
Giovanni Mascellani (@giomasce) -
Huw Davies (@huw)