Chris Robinson : quartz: Add a QueryConnect method for transform
filters.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Apr 4 12:32:26 CDT 2007
Module: wine
Branch: master
Commit: 243351d223e3171769576980540349daa611a5c6
URL: http://source.winehq.org/git/wine.git/?a=commit;h=243351d223e3171769576980540349daa611a5c6
Author: Chris Robinson <chris.kcat at gmail.com>
Date: Tue Apr 3 00:06:16 2007 -0700
quartz: Add a QueryConnect method for transform filters.
---
dlls/quartz/acmwrapper.c | 1 +
dlls/quartz/avidec.c | 1 +
dlls/quartz/transform.c | 8 +++++---
dlls/quartz/transform.h | 1 +
4 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/dlls/quartz/acmwrapper.c b/dlls/quartz/acmwrapper.c
index 344779c..b5a3f6c 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 a878500..aa80800 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 5a1b502..2c2c0bf 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 65adad0..c967dd4 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;
More information about the wine-cvs
mailing list