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,
             &timestamp, &sample);
     ok(hr == S_OK, "Failed to get a sample, hr %#x.\n", hr);




More information about the wine-cvs mailing list