From: Brendan McGrath <bmcgrath(a)codeweavers.com> If we don't use stream_index, then the first sample in the response queue is popped and delivered. However, this sample may not be from the stream that is making the sample request. --- dlls/mfreadwrite/reader.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/mfreadwrite/reader.c b/dlls/mfreadwrite/reader.c index 4d223f1de6e..139b8991da2 100644 --- a/dlls/mfreadwrite/reader.c +++ b/dlls/mfreadwrite/reader.c @@ -1571,7 +1571,8 @@ static HRESULT WINAPI source_reader_async_commands_callback_Invoke(IMFAsyncCallb case SOURCE_READER_ASYNC_SAMPLE_READY: EnterCriticalSection(&reader->cs); - response = media_stream_pop_response(reader, NULL); + stream = &reader->streams[command->u.sample.stream_index]; + response = media_stream_pop_response(reader, stream); LeaveCriticalSection(&reader->cs); if (response) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/7987