Nikolay Sivov : mf: Forward grabber clock state change calls to user callback.

Alexandre Julliard julliard at winehq.org
Tue Jun 11 16:54:07 CDT 2019


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Tue Jun 11 15:40:05 2019 +0300

mf: Forward grabber clock state change calls to user callback.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 7bc566f..af9666c 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)




More information about the wine-cvs mailing list