Piotr Caban : qcap: Warn if additional filters should be used in ICaptureGraphBuilder2:: RenderStream.
Alexandre Julliard
julliard at winehq.org
Wed Nov 20 13:38:56 CST 2013
Module: wine
Branch: master
Commit: f810d14149c7ca83fecb587e405e4ca5fd8defe7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f810d14149c7ca83fecb587e405e4ca5fd8defe7
Author: Piotr Caban <piotr at codeweavers.com>
Date: Wed Nov 20 12:01:59 2013 +0100
qcap: Warn if additional filters should be used in ICaptureGraphBuilder2::RenderStream.
---
dlls/qcap/capturegraph.c | 24 ++++++++++++++++++++----
1 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/dlls/qcap/capturegraph.c b/dlls/qcap/capturegraph.c
index 5af4f3b..f5973c8 100644
--- a/dlls/qcap/capturegraph.c
+++ b/dlls/qcap/capturegraph.c
@@ -42,6 +42,7 @@
*#include "dshow.h"
*#include "ddraw.h"
*/
+#include "uuids.h"
#include "qcap_main.h"
#include "wine/unicode.h"
@@ -259,8 +260,7 @@ fnCaptureGraphBuilder2_RenderStream(ICaptureGraphBuilder2 * iface,
IBaseFilter *pfRenderer)
{
CaptureGraphImpl *This = impl_from_ICaptureGraphBuilder2(iface);
- IPin *source_out;
- IPin *renderer_in;
+ IPin *source_out, *renderer_in, *capture, *preview;
HRESULT hr;
FIXME("(%p/%p)->(%s, %s, %p, %p, %p) semi-stub!\n", This, iface,
@@ -281,14 +281,30 @@ fnCaptureGraphBuilder2_RenderStream(ICaptureGraphBuilder2 * iface,
hr = ICaptureGraphBuilder2_FindPin(iface, pSource, PINDIR_OUTPUT, pCategory, pType, TRUE, 0, &source_out);
if (FAILED(hr))
return E_INVALIDARG;
- hr = ICaptureGraphBuilder2_FindPin(iface, (IUnknown*)pfRenderer, PINDIR_INPUT, pCategory, pType, TRUE, 0, &renderer_in);
+
+ if (pCategory && IsEqualIID(pCategory, &PIN_CATEGORY_VBI)) {
+ FIXME("Tee/Sink-to-Sink filter not supported\n");
+ IPin_Release(source_out);
+ return E_NOTIMPL;
+ }
+
+ hr = ICaptureGraphBuilder2_FindPin(iface, pSource, PINDIR_OUTPUT, &PIN_CATEGORY_CAPTURE, NULL, TRUE, 0, &capture);
+ if (SUCCEEDED(hr)) {
+ hr = ICaptureGraphBuilder2_FindPin(iface, pSource, PINDIR_OUTPUT, &PIN_CATEGORY_PREVIEW, NULL, TRUE, 0, &preview);
+ if (FAILED(hr))
+ FIXME("Smart Tee filter not supported - not creating preview pin\n");
+ else
+ IPin_Release(preview);
+ IPin_Release(capture);
+ }
+
+ hr = ICaptureGraphBuilder2_FindPin(iface, (IUnknown*)pfRenderer, PINDIR_INPUT, NULL, NULL, TRUE, 0, &renderer_in);
if (FAILED(hr))
{
IPin_Release(source_out);
return hr;
}
- /* Uses 'Intelligent Connect', so Connect, not ConnectDirect here */
if (!pfCompressor)
hr = IGraphBuilder_Connect(This->mygraph, source_out, renderer_in);
else
More information about the wine-cvs
mailing list