From: Brendan McGrath bmcgrath@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)