Zebediah Figura : winegstreamer: Return the seeking start time from IMediaSeeking::GetCurrentPosition().

Alexandre Julliard julliard at winehq.org
Mon Nov 23 15:43:23 CST 2020


Module: wine
Branch: master
Commit: 1bb7ef1c1a47ec18b1d4b4124667f6ca93388274
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=1bb7ef1c1a47ec18b1d4b4124667f6ca93388274

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Sat Nov 21 15:24:59 2020 -0600

winegstreamer: Return the seeking start time from IMediaSeeking::GetCurrentPosition().

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/quartz/tests/avisplit.c  |  7 +++----
 dlls/quartz/tests/mpegsplit.c |  7 +++----
 dlls/winegstreamer/gstdemux.c | 29 +----------------------------
 3 files changed, 7 insertions(+), 36 deletions(-)

diff --git a/dlls/quartz/tests/avisplit.c b/dlls/quartz/tests/avisplit.c
index 4ebc3d5df9a..7ded1773637 100644
--- a/dlls/quartz/tests/avisplit.c
+++ b/dlls/quartz/tests/avisplit.c
@@ -931,8 +931,7 @@ static HRESULT WINAPI testsink_Receive(struct strmbase_sink *iface, IMediaSample
     IPin_QueryInterface(iface->pin.peer, &IID_IMediaSeeking, (void **)&seeking);
     hr = IMediaSeeking_GetPositions(seeking, &start, &end);
     ok(hr == S_OK, "Got hr %#x.\n", hr);
-    todo_wine_if (start != filter->seek_start)
-        ok(start == filter->seek_start, "Expected start position %I64u, got %I64u.\n", filter->seek_start, start);
+    ok(start == filter->seek_start, "Expected start position %I64u, got %I64u.\n", filter->seek_start, start);
     ok(end == filter->seek_end, "Expected end position %I64u, got %I64u.\n", filter->seek_end, end);
     IMediaSeeking_Release(seeking);
 
@@ -1696,7 +1695,7 @@ static void test_streaming(void)
     start = end = 0xdeadbeef;
     hr = IMediaSeeking_GetPositions(seeking, &start, &end);
     ok(hr == S_OK, "Got hr %#x.\n", hr);
-    todo_wine ok(start == testsink.seek_start, "Expected start position %I64u, got %I64u.\n", testsink.seek_start, start);
+    ok(start == testsink.seek_start, "Expected start position %I64u, got %I64u.\n", testsink.seek_start, start);
     ok(end == testsink.seek_end, "Expected end position %I64u, got %I64u.\n", testsink.seek_end, end);
 
     testsink.sample_count = testsink.eos_count = 0;
@@ -1712,7 +1711,7 @@ static void test_streaming(void)
     start = end = 0xdeadbeef;
     hr = IMediaSeeking_GetPositions(seeking, &start, &end);
     ok(hr == S_OK, "Got hr %#x.\n", hr);
-    todo_wine ok(start == testsink.seek_start, "Expected start position %I64u, got %I64u.\n", testsink.seek_start, start);
+    ok(start == testsink.seek_start, "Expected start position %I64u, got %I64u.\n", testsink.seek_start, start);
     ok(end == testsink.seek_end, "Expected end position %I64u, got %I64u.\n", testsink.seek_end, end);
 
     IMediaSeeking_Release(seeking);
diff --git a/dlls/quartz/tests/mpegsplit.c b/dlls/quartz/tests/mpegsplit.c
index a334467ad70..be971897f99 100644
--- a/dlls/quartz/tests/mpegsplit.c
+++ b/dlls/quartz/tests/mpegsplit.c
@@ -1220,8 +1220,7 @@ static HRESULT WINAPI testsink_Receive(struct strmbase_sink *iface, IMediaSample
     IPin_QueryInterface(iface->pin.peer, &IID_IMediaSeeking, (void **)&seeking);
     hr = IMediaSeeking_GetPositions(seeking, &start, &end);
     ok(hr == S_OK, "Got hr %#x.\n", hr);
-    todo_wine_if (start != filter->seek_start)
-        ok(start == filter->seek_start, "Expected start position %I64u, got %I64u.\n", filter->seek_start, start);
+    ok(start == filter->seek_start, "Expected start position %I64u, got %I64u.\n", filter->seek_start, start);
     ok(end == filter->seek_end, "Expected end position %I64u, got %I64u.\n", filter->seek_end, end);
     IMediaSeeking_Release(seeking);
 
@@ -1863,7 +1862,7 @@ static void test_streaming(void)
     start = end = 0xdeadbeef;
     hr = IMediaSeeking_GetPositions(seeking, &start, &end);
     ok(hr == S_OK, "Got hr %#x.\n", hr);
-    todo_wine ok(start == testsink.seek_start, "Expected start position %I64u, got %I64u.\n", testsink.seek_start, start);
+    ok(start == testsink.seek_start, "Expected start position %I64u, got %I64u.\n", testsink.seek_start, start);
     ok(end == testsink.seek_end, "Expected end position %I64u, got %I64u.\n", testsink.seek_end, end);
 
     testsink.sample_count = testsink.eos_count = 0;
@@ -1879,7 +1878,7 @@ static void test_streaming(void)
     start = end = 0xdeadbeef;
     hr = IMediaSeeking_GetPositions(seeking, &start, &end);
     ok(hr == S_OK, "Got hr %#x.\n", hr);
-    todo_wine ok(start == testsink.seek_start, "Expected start position %I64u, got %I64u.\n", testsink.seek_start, start);
+    ok(start == testsink.seek_start, "Expected start position %I64u, got %I64u.\n", testsink.seek_start, start);
     ok(end == testsink.seek_end, "Expected end position %I64u, got %I64u.\n", testsink.seek_end, end);
 
     IMediaSeeking_Release(seeking);
diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
index 215e2704a27..6d66ddcb167 100644
--- a/dlls/winegstreamer/gstdemux.c
+++ b/dlls/winegstreamer/gstdemux.c
@@ -1897,33 +1897,6 @@ static ULONG WINAPI GST_Seeking_Release(IMediaSeeking *iface)
     return IPin_Release(&This->pin.pin.IPin_iface);
 }
 
-static HRESULT WINAPI GST_Seeking_GetCurrentPosition(IMediaSeeking *iface, REFERENCE_TIME *pos)
-{
-    struct gstdemux_source *This = impl_from_IMediaSeeking(iface);
-
-    TRACE("(%p)->(%p)\n", This, pos);
-
-    if (!pos)
-        return E_POINTER;
-
-    mark_wine_thread();
-
-    if (This->pin.pin.filter->state == State_Stopped)
-    {
-        *pos = This->seek.llCurrent;
-        TRACE("Cached value\n");
-        return S_OK;
-    }
-
-    if (!gst_pad_query_position(This->their_src, GST_FORMAT_TIME, pos)) {
-        WARN("Could not query position\n");
-        return E_NOTIMPL;
-    }
-    *pos /= 100;
-    This->seek.llCurrent = *pos;
-    return S_OK;
-}
-
 static GstSeekType type_from_flags(DWORD flags)
 {
     switch (flags & AM_SEEKING_PositioningBitsMask) {
@@ -1997,7 +1970,7 @@ static const IMediaSeekingVtbl GST_Seeking_Vtbl =
     SourceSeekingImpl_SetTimeFormat,
     SourceSeekingImpl_GetDuration,
     SourceSeekingImpl_GetStopPosition,
-    GST_Seeking_GetCurrentPosition,
+    SourceSeekingImpl_GetCurrentPosition,
     SourceSeekingImpl_ConvertTimeFormat,
     GST_Seeking_SetPositions,
     SourceSeekingImpl_GetPositions,




More information about the wine-cvs mailing list