Derek Lesho : mfreadwrite: Fix flushing on MF_SOURCE_READER_ALL_STREAMS.
Alexandre Julliard
julliard at winehq.org
Wed Apr 1 15:51:00 CDT 2020
Module: wine
Branch: master
Commit: 8e1761adc0a813b0806bc60b4a47a66563dd2aac
URL: https://source.winehq.org/git/wine.git/?a=commit;h=8e1761adc0a813b0806bc60b4a47a66563dd2aac
Author: Derek Lesho <dlesho at codeweavers.com>
Date: Wed Apr 1 13:25:54 2020 -0500
mfreadwrite: Fix flushing on MF_SOURCE_READER_ALL_STREAMS.
Signed-off-by: Derek Lesho <dlesho at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/mfreadwrite/reader.c | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/dlls/mfreadwrite/reader.c b/dlls/mfreadwrite/reader.c
index e14538c313..19885ef61e 100644
--- a/dlls/mfreadwrite/reader.c
+++ b/dlls/mfreadwrite/reader.c
@@ -1001,11 +1001,26 @@ static void source_reader_release_responses(struct source_reader *reader, struct
static void source_reader_flush_stream(struct source_reader *reader, DWORD stream_index)
{
struct media_stream *stream = stream_index == MF_SOURCE_READER_ALL_STREAMS ? NULL : &reader->streams[stream_index];
+ unsigned int i;
source_reader_release_responses(reader, stream);
- if (stream->decoder)
- IMFTransform_ProcessMessage(stream->decoder, MFT_MESSAGE_COMMAND_FLUSH, 0);
- stream->requests = 0;
+ if (stream)
+ {
+ if (stream->decoder)
+ IMFTransform_ProcessMessage(stream->decoder, MFT_MESSAGE_COMMAND_FLUSH, 0);
+
+ stream->requests = 0;
+ }
+ else
+ {
+ for (i = 0; i < reader->stream_count; i++)
+ {
+ if (reader->streams[i].decoder)
+ IMFTransform_ProcessMessage(reader->streams[i].decoder, MFT_MESSAGE_COMMAND_FLUSH, 0);
+
+ reader->streams[i].requests = 0;
+ }
+ }
}
static HRESULT source_reader_flush(struct source_reader *reader, unsigned int index)
More information about the wine-cvs
mailing list