Maarten Lankhorst : quartz: Add IQualityControl to video renderer.

Alexandre Julliard julliard at winehq.org
Mon Nov 8 11:46:23 CST 2010


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

Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date:   Fri Nov  5 23:19:13 2010 +0100

quartz: Add IQualityControl to video renderer.

---

 dlls/quartz/tests/videorenderer.c |    4 ++--
 dlls/quartz/videorenderer.c       |   13 +++++++++++++
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/dlls/quartz/tests/videorenderer.c b/dlls/quartz/tests/videorenderer.c
index 967abd4..860b30d 100644
--- a/dlls/quartz/tests/videorenderer.c
+++ b/dlls/quartz/tests/videorenderer.c
@@ -70,6 +70,8 @@ static void test_query_interface(void)
     RELEASE_EXPECT(pBasicVideo, 1);
     QI_SUCCEED(pVideoRenderer, IID_IMediaSeeking, pMediaSeeking);
     RELEASE_EXPECT(pMediaSeeking, 1);
+    QI_SUCCEED(pVideoRenderer, IID_IQualityControl, pQualityControl);
+    RELEASE_EXPECT(pQualityControl, 1);
     todo_wine {
     QI_SUCCEED(pVideoRenderer, IID_IDirectDrawVideo, pDirectDrawVideo);
     RELEASE_EXPECT(pDirectDrawVideo, 1);
@@ -77,8 +79,6 @@ static void test_query_interface(void)
     RELEASE_EXPECT(pKsPropertySet, 1);
     QI_SUCCEED(pVideoRenderer, IID_IMediaPosition, pMediaPosition);
     RELEASE_EXPECT(pMediaPosition, 1);
-    QI_SUCCEED(pVideoRenderer, IID_IQualityControl, pQualityControl);
-    RELEASE_EXPECT(pQualityControl, 1);
     QI_SUCCEED(pVideoRenderer, IID_IQualProp, pQualProp);
     RELEASE_EXPECT(pQualProp, 1);
     }
diff --git a/dlls/quartz/videorenderer.c b/dlls/quartz/videorenderer.c
index 3a35f38..e135fb9 100644
--- a/dlls/quartz/videorenderer.c
+++ b/dlls/quartz/videorenderer.c
@@ -53,6 +53,13 @@ static const IBasicVideoVtbl IBasicVideo_VTable;
 static const IVideoWindowVtbl IVideoWindow_VTable;
 static const IPinVtbl VideoRenderer_InputPin_Vtbl;
 static const IAMFilterMiscFlagsVtbl IAMFilterMiscFlags_Vtbl;
+static const IQualityControlVtbl VideoRenderer_QualityControl_Vtbl = {
+    QualityControlImpl_QueryInterface,
+    QualityControlImpl_AddRef,
+    QualityControlImpl_Release,
+    QualityControlImpl_Notify,
+    QualityControlImpl_SetSink
+};
 
 typedef struct VideoRendererImpl
 {
@@ -62,6 +69,7 @@ typedef struct VideoRendererImpl
     const IUnknownVtbl * IInner_vtbl;
     const IAMFilterMiscFlagsVtbl *IAMFilterMiscFlags_vtbl;
     IUnknown *seekthru_unk;
+    QualityControlImpl qcimpl;
 
     BaseInputPin *pInputPin;
 
@@ -622,6 +630,9 @@ HRESULT VideoRenderer_create(IUnknown * pUnkOuter, LPVOID * ppv)
     if (FAILED(hr))
         goto fail;
 
+    QualityControlImpl_init(&pVideoRenderer->qcimpl, (IPin*)pVideoRenderer->pInputPin, (IBaseFilter*)pVideoRenderer);
+    pVideoRenderer->qcimpl.lpVtbl = &VideoRenderer_QualityControl_Vtbl;
+
     if (!CreateRenderingSubsystem(pVideoRenderer))
         return E_FAIL;
 
@@ -671,6 +682,8 @@ static HRESULT WINAPI VideoRendererInner_QueryInterface(IUnknown * iface, REFIID
         return IUnknown_QueryInterface(This->seekthru_unk, riid, ppv);
     else if (IsEqualIID(riid, &IID_IAMFilterMiscFlags))
         *ppv = &This->IAMFilterMiscFlags_vtbl;
+    else if (IsEqualIID(riid, &IID_IQualityControl))
+        *ppv = &This->qcimpl;
 
     if (*ppv)
     {




More information about the wine-cvs mailing list