From: Giovanni Mascellani <gmascellani(a)codeweavers.com> --- dlls/mmdevapi/tests/capture.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/dlls/mmdevapi/tests/capture.c b/dlls/mmdevapi/tests/capture.c index 460d9cfd910..ea72efd9105 100644 --- a/dlls/mmdevapi/tests/capture.c +++ b/dlls/mmdevapi/tests/capture.c @@ -110,6 +110,8 @@ static void test_uninitialized(IAudioClient *ac) struct read_packets_data { UINT64 expected_dev_pos; + BOOL discontinuity_at_0; + BOOL discontinuity_at_later; }; static void read_packets(IAudioClient *ac, IAudioCaptureClient *acc, HANDLE handle, @@ -118,6 +120,9 @@ static void read_packets(IAudioClient *ac, IAudioCaptureClient *acc, HANDLE hand unsigned int idx = 0; HRESULT hr; + data->discontinuity_at_0 = FALSE; + data->discontinuity_at_later = FALSE; + while (idx < packet_count) { UINT32 next_packet_size, frames, frames2, padding; @@ -168,6 +173,14 @@ static void read_packets(IAudioClient *ac, IAudioCaptureClient *acc, HANDLE hand ok(padding >= frames, "GetCurrentPadding returns %u, GetBuffer returns %u frames\n", padding, frames); + if (flags & AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY) + { + if (idx == 0) + data->discontinuity_at_0 = TRUE; + else + data->discontinuity_at_later = TRUE; + } + if (data->expected_dev_pos != UINT64_MAX) { /* Win <= 8 and some older Win 10 builds sometimes handle discontinuities incorrectly. */ @@ -298,6 +311,10 @@ static void test_capture(IAudioClient *ac, HANDLE handle, WAVEFORMATEX *wfx) read_packets(ac, acc, handle, 10, &packets_data); + todo_wine + ok(packets_data.discontinuity_at_0, "No discontinuity at first packet\n"); + ok(!packets_data.discontinuity_at_later, "Discontinuity at later packet\n"); + winetest_pop_context(); sum = packets_data.expected_dev_pos; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9008