[PATCH 3/6] strmbase: Add a callback to expose renderer pin interfaces.

Zebediah Figura z.figura12 at gmail.com
Mon Sep 30 21:19:07 CDT 2019


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/strmbase/renderer.c | 5 +++++
 include/wine/strmbase.h  | 1 +
 2 files changed, 6 insertions(+)

diff --git a/dlls/strmbase/renderer.c b/dlls/strmbase/renderer.c
index 1de974a9093..25534154e95 100644
--- a/dlls/strmbase/renderer.c
+++ b/dlls/strmbase/renderer.c
@@ -220,6 +220,11 @@ static HRESULT sink_query_accept(struct strmbase_pin *pin, const AM_MEDIA_TYPE *
 static HRESULT sink_query_interface(struct strmbase_pin *iface, REFIID iid, void **out)
 {
     BaseRenderer *filter = impl_from_IPin(&iface->IPin_iface);
+    HRESULT hr;
+
+    if (filter->pFuncsTable->renderer_pin_query_interface
+            && SUCCEEDED(hr = filter->pFuncsTable->renderer_pin_query_interface(filter, iid, out)))
+        return hr;
 
     if (IsEqualGUID(iid, &IID_IMemInputPin))
         *out = &filter->sink.IMemInputPin_iface;
diff --git a/include/wine/strmbase.h b/include/wine/strmbase.h
index 6a358decfc7..5eaf204f471 100644
--- a/include/wine/strmbase.h
+++ b/include/wine/strmbase.h
@@ -574,6 +574,7 @@ typedef struct BaseRendererFuncTable {
     BaseRenderer_EndFlush pfnEndFlush;
     void (*renderer_destroy)(BaseRenderer *iface);
     HRESULT (*renderer_query_interface)(BaseRenderer *iface, REFIID iid, void **out);
+    HRESULT (*renderer_pin_query_interface)(BaseRenderer *iface, REFIID iid, void **out);
 } BaseRendererFuncTable;
 
 HRESULT WINAPI BaseRendererImpl_Receive(BaseRenderer *This, IMediaSample * pSample);
-- 
2.23.0




More information about the wine-devel mailing list