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,
ACMWrapper_ProcessSampleData,
NULL,
NULL,
ACMWrapper_ConnectInput,
ACMWrapper_Cleanup
};

View File

@ -261,6 +261,7 @@ static const TransformFuncsTable AVIDec_FuncsTable = {
AVIDec_ProcessBegin,
AVIDec_ProcessSampleData,
AVIDec_ProcessEnd,
NULL,
AVIDec_ConnectInput,
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)
{
/* 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;
}

View File

@ -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;