quartz: Add a QueryConnect method for transform filters.

This commit is contained in:
Chris Robinson 2007-04-03 00:06:16 -07:00 committed by Alexandre Julliard
parent 71bcdc9044
commit 243351d223
4 changed files with 8 additions and 3 deletions

View File

@ -240,6 +240,7 @@ static const TransformFuncsTable ACMWrapper_FuncsTable = {
NULL, NULL,
ACMWrapper_ProcessSampleData, ACMWrapper_ProcessSampleData,
NULL, NULL,
NULL,
ACMWrapper_ConnectInput, ACMWrapper_ConnectInput,
ACMWrapper_Cleanup ACMWrapper_Cleanup
}; };

View File

@ -261,6 +261,7 @@ static const TransformFuncsTable AVIDec_FuncsTable = {
AVIDec_ProcessBegin, AVIDec_ProcessBegin,
AVIDec_ProcessSampleData, AVIDec_ProcessSampleData,
AVIDec_ProcessEnd, AVIDec_ProcessEnd,
NULL,
AVIDec_ConnectInput, AVIDec_ConnectInput,
AVIDec_Cleanup AVIDec_Cleanup
}; };

View File

@ -97,12 +97,14 @@ static HRESULT TransformFilter_Sample(LPVOID iface, IMediaSample * pSample)
static HRESULT TransformFilter_Input_QueryAccept(LPVOID iface, const AM_MEDIA_TYPE * pmt) static HRESULT TransformFilter_Input_QueryAccept(LPVOID iface, const AM_MEDIA_TYPE * pmt)
{ {
/* TransformFilterImpl* This = (TransformFilterImpl*)iface; */ TransformFilterImpl* This = (TransformFilterImpl*)iface;
TRACE("%p\n", iface); TRACE("%p\n", iface);
dump_AM_MEDIA_TYPE(pmt); dump_AM_MEDIA_TYPE(pmt);
/* FIXME: Add a function to verify media type with the actual filter */ if (This->pFuncsTable->pfnQueryConnect)
/* return This->pFuncsTable->pfnConnectInput(This, pmt); */ return This->pFuncsTable->pfnQueryConnect(This, pmt);
/* Assume OK if there's no query method (the connection will fail if
needed) */
return S_OK; return S_OK;
} }

View File

@ -24,6 +24,7 @@ typedef struct TransformFuncsTable {
HRESULT (*pfnProcessBegin) (TransformFilterImpl* This); HRESULT (*pfnProcessBegin) (TransformFilterImpl* This);
HRESULT (*pfnProcessSampleData) (TransformFilterImpl* This, LPBYTE data, DWORD size); HRESULT (*pfnProcessSampleData) (TransformFilterImpl* This, LPBYTE data, DWORD size);
HRESULT (*pfnProcessEnd) (TransformFilterImpl* This); HRESULT (*pfnProcessEnd) (TransformFilterImpl* This);
HRESULT (*pfnQueryConnect) (TransformFilterImpl* This, const AM_MEDIA_TYPE * pmt);
HRESULT (*pfnConnectInput) (TransformFilterImpl* This, const AM_MEDIA_TYPE * pmt); HRESULT (*pfnConnectInput) (TransformFilterImpl* This, const AM_MEDIA_TYPE * pmt);
HRESULT (*pfnCleanup) (TransformFilterImpl* This); HRESULT (*pfnCleanup) (TransformFilterImpl* This);
} TransformFuncsTable; } TransformFuncsTable;