Maarten Lankhorst : quartz: Set a default sync source on the filtergraph.

Alexandre Julliard julliard at winehq.org
Sat Mar 15 05:53:50 CDT 2008


Module: wine
Branch: master
Commit: b1f9acc68862d28a934f5fa5a6e2ec2635af9df6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b1f9acc68862d28a934f5fa5a6e2ec2635af9df6

Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date:   Fri Mar 14 11:02:01 2008 -0700

quartz: Set a default sync source on the filtergraph.

Use the fallback system IReferenceClock, unless the app comes up with
its own clock.

---

 dlls/quartz/filtergraph.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/dlls/quartz/filtergraph.c b/dlls/quartz/filtergraph.c
index 762e3e2..f056421 100644
--- a/dlls/quartz/filtergraph.c
+++ b/dlls/quartz/filtergraph.c
@@ -620,10 +620,20 @@ static HRESULT WINAPI FilterGraph2_Disconnect(IFilterGraph2 *iface,
 
 static HRESULT WINAPI FilterGraph2_SetDefaultSyncSource(IFilterGraph2 *iface) {
     ICOM_THIS_MULTI(IFilterGraphImpl, IFilterGraph2_vtbl, iface);
+    IReferenceClock *pClock = NULL;
+    HRESULT hr;
 
-    TRACE("(%p/%p)->(): stub !!!\n", iface, This);
+    TRACE("(%p/%p)->() semi-stub\n", iface, This);
 
-    return S_OK;
+    hr = CoCreateInstance(&CLSID_SystemClock, NULL, CLSCTX_INPROC_SERVER, &IID_IReferenceClock, (LPVOID*)&pClock);
+
+    if (SUCCEEDED(hr))
+    {
+        hr = IMediaFilter_SetSyncSource((IMediaFilter*)&(This->IMediaFilter_vtbl), pClock);
+        IReferenceClock_Release(pClock);
+    }
+
+    return hr;
 }
 
 static HRESULT GetFilterInfo(IMoniker* pMoniker, GUID* pclsid, VARIANT* pvar)
@@ -4755,6 +4765,7 @@ HRESULT FilterGraph_create(IUnknown *pUnkOuter, LPVOID *ppObj)
         ERR("Unable to create filter mapper (%x)\n", hr);
 	return hr;
     }
+    IFilterGraph2_SetDefaultSyncSource((IFilterGraph2*)fimpl);
 
     *ppObj = fimpl;
     return S_OK;




More information about the wine-cvs mailing list