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