[PATCH] quartz: Allow the arguments to IMediaSeeking::GetPositions() to be NULL.
Zebediah Figura
z.figura12 at gmail.com
Wed Jul 22 18:29:21 CDT 2020
This allows "UNDER NIGHT IN-BIRTH Exe:Late" to render video.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/quartz/filtergraph.c | 18 ++++++++++--------
dlls/quartz/tests/filtergraph.c | 6 +++---
2 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/dlls/quartz/filtergraph.c b/dlls/quartz/filtergraph.c
index e135f4b6cc7..3b06d32c20a 100644
--- a/dlls/quartz/filtergraph.c
+++ b/dlls/quartz/filtergraph.c
@@ -2441,16 +2441,18 @@ static HRESULT WINAPI MediaSeeking_SetPositions(IMediaSeeking *iface, LONGLONG *
return hr;
}
-static HRESULT WINAPI MediaSeeking_GetPositions(IMediaSeeking *iface, LONGLONG *pCurrent,
- LONGLONG *pStop)
+static HRESULT WINAPI MediaSeeking_GetPositions(IMediaSeeking *iface,
+ LONGLONG *current, LONGLONG *stop)
{
- struct filter_graph *This = impl_from_IMediaSeeking(iface);
- HRESULT hr;
+ struct filter_graph *graph = impl_from_IMediaSeeking(iface);
+ HRESULT hr = S_OK;
- TRACE("(%p/%p)->(%p, %p)\n", This, iface, pCurrent, pStop);
- hr = IMediaSeeking_GetCurrentPosition(iface, pCurrent);
- if (SUCCEEDED(hr))
- hr = IMediaSeeking_GetStopPosition(iface, pStop);
+ TRACE("graph %p, current %p, stop %p.\n", graph, current, stop);
+
+ if (current)
+ hr = IMediaSeeking_GetCurrentPosition(iface, current);
+ if (SUCCEEDED(hr) && stop)
+ hr = IMediaSeeking_GetStopPosition(iface, stop);
return hr;
}
diff --git a/dlls/quartz/tests/filtergraph.c b/dlls/quartz/tests/filtergraph.c
index 9219b30cec7..4fcd27b2918 100644
--- a/dlls/quartz/tests/filtergraph.c
+++ b/dlls/quartz/tests/filtergraph.c
@@ -4098,14 +4098,14 @@ static void test_graph_seeking(void)
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
hr = IMediaSeeking_GetPositions(seeking, NULL, NULL);
- todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
+ ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IMediaSeeking_GetPositions(seeking, NULL, &stop);
- todo_wine ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
+ ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
hr = IMediaSeeking_GetPositions(seeking, ¤t, &stop);
ok(hr == E_NOTIMPL, "Got hr %#x.\n", hr);
current = 0xdeadbeef;
hr = IMediaSeeking_GetPositions(seeking, ¤t, NULL);
- todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
+ ok(hr == S_OK, "Got hr %#x.\n", hr);
ok(!current, "Got time %s.\n", wine_dbgstr_longlong(time));
hr = IMediaSeeking_GetCurrentPosition(seeking, NULL);
--
2.27.0
More information about the wine-devel
mailing list