[PATCH 5/5] mf: Forward grabber clock state change calls to user callback.

Nikolay Sivov nsivov at codeweavers.com
Tue Jun 11 07:40:05 CDT 2019


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/mf/samplegrabber.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/dlls/mf/samplegrabber.c b/dlls/mf/samplegrabber.c
index 7bc566f542..af9666c86c 100644
--- a/dlls/mf/samplegrabber.c
+++ b/dlls/mf/samplegrabber.c
@@ -1127,7 +1127,7 @@ static HRESULT WINAPI sample_grabber_clock_sink_OnClockStart(IMFClockStateSink *
 
     sample_grabber_set_state(grabber, SINK_STATE_RUNNING);
 
-    return S_OK;
+    return IMFSampleGrabberSinkCallback_OnClockStart(sample_grabber_get_callback(grabber), systime, offset);
 }
 
 static HRESULT WINAPI sample_grabber_clock_sink_OnClockStop(IMFClockStateSink *iface, MFTIME systime)
@@ -1138,14 +1138,16 @@ static HRESULT WINAPI sample_grabber_clock_sink_OnClockStop(IMFClockStateSink *i
 
     sample_grabber_set_state(grabber, SINK_STATE_STOPPED);
 
-    return S_OK;
+    return IMFSampleGrabberSinkCallback_OnClockStop(sample_grabber_get_callback(grabber), systime);
 }
 
 static HRESULT WINAPI sample_grabber_clock_sink_OnClockPause(IMFClockStateSink *iface, MFTIME systime)
 {
+    struct sample_grabber *grabber = impl_from_IMFClockStateSink(iface);
+
     TRACE("%p, %s.\n", iface, wine_dbgstr_longlong(systime));
 
-    return S_OK;
+    return IMFSampleGrabberSinkCallback_OnClockPause(sample_grabber_get_callback(grabber), systime);
 }
 
 static HRESULT WINAPI sample_grabber_clock_sink_OnClockRestart(IMFClockStateSink *iface, MFTIME systime)
@@ -1156,14 +1158,16 @@ static HRESULT WINAPI sample_grabber_clock_sink_OnClockRestart(IMFClockStateSink
 
     sample_grabber_set_state(grabber, SINK_STATE_RUNNING);
 
-    return S_OK;
+    return IMFSampleGrabberSinkCallback_OnClockRestart(sample_grabber_get_callback(grabber), systime);
 }
 
 static HRESULT WINAPI sample_grabber_clock_sink_OnClockSetRate(IMFClockStateSink *iface, MFTIME systime, float rate)
 {
-    FIXME("%p, %s, %f.\n", iface, wine_dbgstr_longlong(systime), rate);
+    struct sample_grabber *grabber = impl_from_IMFClockStateSink(iface);
 
-    return E_NOTIMPL;
+    TRACE("%p, %s, %f.\n", iface, wine_dbgstr_longlong(systime), rate);
+
+    return IMFSampleGrabberSinkCallback_OnClockSetRate(sample_grabber_get_callback(grabber), systime, rate);
 }
 
 static HRESULT WINAPI sample_grabber_events_QueryInterface(IMFMediaEventGenerator *iface, REFIID riid, void **obj)
-- 
2.20.1




More information about the wine-devel mailing list