diff --git a/dlls/quartz/acmwrapper.c b/dlls/quartz/acmwrapper.c index 344779ccae7..b5a3f6ccf65 100644 --- a/dlls/quartz/acmwrapper.c +++ b/dlls/quartz/acmwrapper.c @@ -240,6 +240,7 @@ static const TransformFuncsTable ACMWrapper_FuncsTable = { NULL, ACMWrapper_ProcessSampleData, NULL, + NULL, ACMWrapper_ConnectInput, ACMWrapper_Cleanup }; diff --git a/dlls/quartz/avidec.c b/dlls/quartz/avidec.c index a87850053ae..aa808008a9d 100644 --- a/dlls/quartz/avidec.c +++ b/dlls/quartz/avidec.c @@ -261,6 +261,7 @@ static const TransformFuncsTable AVIDec_FuncsTable = { AVIDec_ProcessBegin, AVIDec_ProcessSampleData, AVIDec_ProcessEnd, + NULL, AVIDec_ConnectInput, AVIDec_Cleanup }; diff --git a/dlls/quartz/transform.c b/dlls/quartz/transform.c index 5a1b502c2df..2c2c0bf37bd 100644 --- a/dlls/quartz/transform.c +++ b/dlls/quartz/transform.c @@ -97,12 +97,14 @@ static HRESULT TransformFilter_Sample(LPVOID iface, IMediaSample * pSample) static HRESULT TransformFilter_Input_QueryAccept(LPVOID iface, const AM_MEDIA_TYPE * pmt) { - /* TransformFilterImpl* This = (TransformFilterImpl*)iface; */ + TransformFilterImpl* This = (TransformFilterImpl*)iface; TRACE("%p\n", iface); dump_AM_MEDIA_TYPE(pmt); - /* FIXME: Add a function to verify media type with the actual filter */ - /* return This->pFuncsTable->pfnConnectInput(This, pmt); */ + if (This->pFuncsTable->pfnQueryConnect) + return This->pFuncsTable->pfnQueryConnect(This, pmt); + /* Assume OK if there's no query method (the connection will fail if + needed) */ return S_OK; } diff --git a/dlls/quartz/transform.h b/dlls/quartz/transform.h index 65adad0c139..c967dd41b6e 100644 --- a/dlls/quartz/transform.h +++ b/dlls/quartz/transform.h @@ -24,6 +24,7 @@ typedef struct TransformFuncsTable { HRESULT (*pfnProcessBegin) (TransformFilterImpl* This); HRESULT (*pfnProcessSampleData) (TransformFilterImpl* This, LPBYTE data, DWORD size); HRESULT (*pfnProcessEnd) (TransformFilterImpl* This); + HRESULT (*pfnQueryConnect) (TransformFilterImpl* This, const AM_MEDIA_TYPE * pmt); HRESULT (*pfnConnectInput) (TransformFilterImpl* This, const AM_MEDIA_TYPE * pmt); HRESULT (*pfnCleanup) (TransformFilterImpl* This); } TransformFuncsTable;