quartz: Add IQualityControl to video renderer.
This commit is contained in:
parent
3329873b81
commit
b6fd7bc133
|
@ -70,6 +70,8 @@ static void test_query_interface(void)
|
||||||
RELEASE_EXPECT(pBasicVideo, 1);
|
RELEASE_EXPECT(pBasicVideo, 1);
|
||||||
QI_SUCCEED(pVideoRenderer, IID_IMediaSeeking, pMediaSeeking);
|
QI_SUCCEED(pVideoRenderer, IID_IMediaSeeking, pMediaSeeking);
|
||||||
RELEASE_EXPECT(pMediaSeeking, 1);
|
RELEASE_EXPECT(pMediaSeeking, 1);
|
||||||
|
QI_SUCCEED(pVideoRenderer, IID_IQualityControl, pQualityControl);
|
||||||
|
RELEASE_EXPECT(pQualityControl, 1);
|
||||||
todo_wine {
|
todo_wine {
|
||||||
QI_SUCCEED(pVideoRenderer, IID_IDirectDrawVideo, pDirectDrawVideo);
|
QI_SUCCEED(pVideoRenderer, IID_IDirectDrawVideo, pDirectDrawVideo);
|
||||||
RELEASE_EXPECT(pDirectDrawVideo, 1);
|
RELEASE_EXPECT(pDirectDrawVideo, 1);
|
||||||
|
@ -77,8 +79,6 @@ static void test_query_interface(void)
|
||||||
RELEASE_EXPECT(pKsPropertySet, 1);
|
RELEASE_EXPECT(pKsPropertySet, 1);
|
||||||
QI_SUCCEED(pVideoRenderer, IID_IMediaPosition, pMediaPosition);
|
QI_SUCCEED(pVideoRenderer, IID_IMediaPosition, pMediaPosition);
|
||||||
RELEASE_EXPECT(pMediaPosition, 1);
|
RELEASE_EXPECT(pMediaPosition, 1);
|
||||||
QI_SUCCEED(pVideoRenderer, IID_IQualityControl, pQualityControl);
|
|
||||||
RELEASE_EXPECT(pQualityControl, 1);
|
|
||||||
QI_SUCCEED(pVideoRenderer, IID_IQualProp, pQualProp);
|
QI_SUCCEED(pVideoRenderer, IID_IQualProp, pQualProp);
|
||||||
RELEASE_EXPECT(pQualProp, 1);
|
RELEASE_EXPECT(pQualProp, 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,6 +53,13 @@ static const IBasicVideoVtbl IBasicVideo_VTable;
|
||||||
static const IVideoWindowVtbl IVideoWindow_VTable;
|
static const IVideoWindowVtbl IVideoWindow_VTable;
|
||||||
static const IPinVtbl VideoRenderer_InputPin_Vtbl;
|
static const IPinVtbl VideoRenderer_InputPin_Vtbl;
|
||||||
static const IAMFilterMiscFlagsVtbl IAMFilterMiscFlags_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
|
typedef struct VideoRendererImpl
|
||||||
{
|
{
|
||||||
|
@ -62,6 +69,7 @@ typedef struct VideoRendererImpl
|
||||||
const IUnknownVtbl * IInner_vtbl;
|
const IUnknownVtbl * IInner_vtbl;
|
||||||
const IAMFilterMiscFlagsVtbl *IAMFilterMiscFlags_vtbl;
|
const IAMFilterMiscFlagsVtbl *IAMFilterMiscFlags_vtbl;
|
||||||
IUnknown *seekthru_unk;
|
IUnknown *seekthru_unk;
|
||||||
|
QualityControlImpl qcimpl;
|
||||||
|
|
||||||
BaseInputPin *pInputPin;
|
BaseInputPin *pInputPin;
|
||||||
|
|
||||||
|
@ -622,6 +630,9 @@ HRESULT VideoRenderer_create(IUnknown * pUnkOuter, LPVOID * ppv)
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
QualityControlImpl_init(&pVideoRenderer->qcimpl, (IPin*)pVideoRenderer->pInputPin, (IBaseFilter*)pVideoRenderer);
|
||||||
|
pVideoRenderer->qcimpl.lpVtbl = &VideoRenderer_QualityControl_Vtbl;
|
||||||
|
|
||||||
if (!CreateRenderingSubsystem(pVideoRenderer))
|
if (!CreateRenderingSubsystem(pVideoRenderer))
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
|
||||||
|
@ -671,6 +682,8 @@ static HRESULT WINAPI VideoRendererInner_QueryInterface(IUnknown * iface, REFIID
|
||||||
return IUnknown_QueryInterface(This->seekthru_unk, riid, ppv);
|
return IUnknown_QueryInterface(This->seekthru_unk, riid, ppv);
|
||||||
else if (IsEqualIID(riid, &IID_IAMFilterMiscFlags))
|
else if (IsEqualIID(riid, &IID_IAMFilterMiscFlags))
|
||||||
*ppv = &This->IAMFilterMiscFlags_vtbl;
|
*ppv = &This->IAMFilterMiscFlags_vtbl;
|
||||||
|
else if (IsEqualIID(riid, &IID_IQualityControl))
|
||||||
|
*ppv = &This->qcimpl;
|
||||||
|
|
||||||
if (*ppv)
|
if (*ppv)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue