[PATCH 6/7] quartz: Add IQualityControl to video renderer
Maarten Lankhorst
m.b.lankhorst at gmail.com
Fri Nov 5 17:19:13 CDT 2010
---
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)
{
--
1.7.1
More information about the wine-patches
mailing list