[PATCH v2] mfreadwrite: Unset seeking flag also on SourceStarted and SourceStopped.

Giovanni Mascellani gmascellani at codeweavers.com
Mon Mar 22 09:59:49 CDT 2021


Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
---
 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 ab959c26165..a41de5fb453 100644
--- a/dlls/mfreadwrite/reader.c
+++ b/dlls/mfreadwrite/reader.c
@@ -544,9 +544,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,
             &timestamp, &sample);
     ok(hr == S_OK, "Failed to get a sample, hr %#x.\n", hr);
-- 
2.31.0




More information about the wine-devel mailing list