Giovanni Mascellani : mfreadwrite: Unset seeking flag also on SourceStarted and SourceStopped.
Alexandre Julliard
julliard at winehq.org
Mon Mar 22 17:15:52 CDT 2021
Module: wine
Branch: master
Commit: 1a7be75656003f2fe0dfdde609a6ebf7c8bc07cc
URL: https://source.winehq.org/git/wine.git/?a=commit;h=1a7be75656003f2fe0dfdde609a6ebf7c8bc07cc
Author: Giovanni Mascellani <gmascellani at codeweavers.com>
Date: Mon Mar 22 15:59:49 2021 +0100
mfreadwrite: Unset seeking flag also on SourceStarted and SourceStopped.
Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/mfreadwrite/reader.c | 2 ++
dlls/mfreadwrite/tests/mfplat.c | 6 ++++++
2 files changed, 8 insertions(+)
diff --git a/dlls/mfreadwrite/reader.c b/dlls/mfreadwrite/reader.c
index cb4166265a0..7ce4674f940 100644
--- a/dlls/mfreadwrite/reader.c
+++ b/dlls/mfreadwrite/reader.c
@@ -550,9 +550,11 @@ static HRESULT source_reader_source_state_handler(struct source_reader *reader,
{
case MESourceStarted:
reader->source_state = SOURCE_STATE_STARTED;
+ reader->flags &= ~SOURCE_READER_SEEKING;
break;
case MESourceStopped:
reader->source_state = SOURCE_STATE_STOPPED;
+ reader->flags &= ~SOURCE_READER_SEEKING;
break;
case MESourceSeeked:
reader->flags &= ~SOURCE_READER_SEEKING;
diff --git a/dlls/mfreadwrite/tests/mfplat.c b/dlls/mfreadwrite/tests/mfplat.c
index c6191767164..25aa29ac272 100644
--- a/dlls/mfreadwrite/tests/mfplat.c
+++ b/dlls/mfreadwrite/tests/mfplat.c
@@ -902,6 +902,7 @@ static void test_source_reader_from_media_source(void)
IMFAttributes *attributes;
ULONG refcount;
int i;
+ PROPVARIANT pos;
source = create_test_source();
ok(!!source, "Failed to create test source.\n");
@@ -916,6 +917,11 @@ static void test_source_reader_from_media_source(void)
hr = IMFSourceReader_SetStreamSelection(reader, 1, TRUE);
ok(hr == S_OK, "Failed to select a stream, hr %#x.\n", hr);
+ pos.vt = VT_I8;
+ pos.hVal.QuadPart = 0;
+ hr = IMFSourceReader_SetCurrentPosition(reader, &GUID_NULL, &pos);
+ ok(hr == S_OK, "Failed to seek to beginning of stream, hr %#x.\n", hr);
+
hr = IMFSourceReader_ReadSample(reader, MF_SOURCE_READER_ANY_STREAM, 0, &actual_index, &stream_flags,
×tamp, &sample);
ok(hr == S_OK, "Failed to get a sample, hr %#x.\n", hr);
More information about the wine-cvs
mailing list