quartz: Add IAMFilterMiscFlags to VMR9 implementation.
This commit is contained in:
parent
76a42b9b9e
commit
8e79273b0e
|
@ -52,6 +52,7 @@ typedef struct
|
|||
BaseControlVideo baseControlVideo;
|
||||
|
||||
IUnknown IUnknown_inner;
|
||||
IAMFilterMiscFlags IAMFilterMiscFlags_iface;
|
||||
|
||||
BITMAPINFOHEADER bmiheader;
|
||||
IUnknown * outer_unk;
|
||||
|
@ -89,6 +90,11 @@ static inline VMR9Impl *impl_from_IBasicVideo( IBasicVideo *iface)
|
|||
return CONTAINING_RECORD(iface, VMR9Impl, baseControlVideo.IBasicVideo_iface);
|
||||
}
|
||||
|
||||
static inline VMR9Impl *impl_from_IAMFilterMiscFlags( IAMFilterMiscFlags *iface)
|
||||
{
|
||||
return CONTAINING_RECORD(iface, VMR9Impl, IAMFilterMiscFlags_iface);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI VMR9_DoRenderSample(BaseRenderer *iface, IMediaSample * pSample)
|
||||
{
|
||||
VMR9Impl *This = (VMR9Impl *)iface;
|
||||
|
@ -425,6 +431,8 @@ static HRESULT WINAPI VMR9Inner_QueryInterface(IUnknown * iface, REFIID riid, LP
|
|||
*ppv = &This->baseControlWindow.IVideoWindow_iface;
|
||||
else if (IsEqualIID(riid, &IID_IBasicVideo))
|
||||
*ppv = &This->baseControlVideo.IBasicVideo_iface;
|
||||
else if (IsEqualIID(riid, &IID_IAMFilterMiscFlags))
|
||||
*ppv = &This->IAMFilterMiscFlags_iface;
|
||||
else
|
||||
{
|
||||
HRESULT hr;
|
||||
|
@ -445,8 +453,6 @@ static HRESULT WINAPI VMR9Inner_QueryInterface(IUnknown * iface, REFIID riid, LP
|
|||
;
|
||||
else if (IsEqualIID(riid, &IID_IVMRSurfaceAllocatorNotify9))
|
||||
;
|
||||
else if (IsEqualIID(riid, &IID_IAMFilterMiscFlags))
|
||||
FIXME("No interface for IID_IAMFilterMiscFlags\n");
|
||||
else if (IsEqualIID(riid, &IID_IMediaPosition))
|
||||
FIXME("No interface for IID_IMediaPosition\n");
|
||||
else if (IsEqualIID(riid, &IID_IQualProp))
|
||||
|
@ -730,6 +736,32 @@ static const IBasicVideoVtbl IBasicVideo_VTable =
|
|||
BaseControlVideoImpl_IsUsingDefaultDestination
|
||||
};
|
||||
|
||||
static HRESULT WINAPI AMFilterMiscFlags_QueryInterface(IAMFilterMiscFlags *iface, REFIID riid, void **ppv) {
|
||||
VMR9Impl *This = impl_from_IAMFilterMiscFlags(iface);
|
||||
return VMR9_QueryInterface(&This->renderer.filter.IBaseFilter_iface, riid, ppv);
|
||||
}
|
||||
|
||||
static ULONG WINAPI AMFilterMiscFlags_AddRef(IAMFilterMiscFlags *iface) {
|
||||
VMR9Impl *This = impl_from_IAMFilterMiscFlags(iface);
|
||||
return VMR9_AddRef(&This->renderer.filter.IBaseFilter_iface);
|
||||
}
|
||||
|
||||
static ULONG WINAPI AMFilterMiscFlags_Release(IAMFilterMiscFlags *iface) {
|
||||
VMR9Impl *This = impl_from_IAMFilterMiscFlags(iface);
|
||||
return VMR9_Release(&This->renderer.filter.IBaseFilter_iface);
|
||||
}
|
||||
|
||||
static ULONG WINAPI AMFilterMiscFlags_GetMiscFlags(IAMFilterMiscFlags *iface) {
|
||||
return AM_FILTER_MISC_FLAGS_IS_RENDERER;
|
||||
}
|
||||
|
||||
static const IAMFilterMiscFlagsVtbl IAMFilterMiscFlags_Vtbl = {
|
||||
AMFilterMiscFlags_QueryInterface,
|
||||
AMFilterMiscFlags_AddRef,
|
||||
AMFilterMiscFlags_Release,
|
||||
AMFilterMiscFlags_GetMiscFlags
|
||||
};
|
||||
|
||||
HRESULT VMR9Impl_create(IUnknown * outer_unk, LPVOID * ppv)
|
||||
{
|
||||
HRESULT hr;
|
||||
|
@ -745,6 +777,7 @@ HRESULT VMR9Impl_create(IUnknown * outer_unk, LPVOID * ppv)
|
|||
pVMR9->bUnkOuterValid = FALSE;
|
||||
pVMR9->bAggregatable = FALSE;
|
||||
pVMR9->IUnknown_inner.lpVtbl = &IInner_VTable;
|
||||
pVMR9->IAMFilterMiscFlags_iface.lpVtbl = &IAMFilterMiscFlags_Vtbl;
|
||||
|
||||
hr = BaseRenderer_Init(&pVMR9->renderer, &VMR9_Vtbl, outer_unk, &CLSID_VideoMixingRenderer9, (DWORD_PTR)(__FILE__ ": VMR9Impl.csFilter"), &BaseFuncTable);
|
||||
if (FAILED(hr))
|
||||
|
|
Loading…
Reference in New Issue