Zebediah Figura : strmbase/renderer: Add a destructor callback.

Alexandre Julliard julliard at winehq.org
Tue May 28 15:06:49 CDT 2019


Module: wine
Branch: master
Commit: 12965264503ad38ab9c8f5e32a43b9863b1c0549
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=12965264503ad38ab9c8f5e32a43b9863b1c0549

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Mon May 27 23:09:55 2019 -0500

strmbase/renderer: Add a destructor callback.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/strmbase/renderer.c | 16 ++++++++++++----
 include/wine/strmbase.h  |  1 +
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/dlls/strmbase/renderer.c b/dlls/strmbase/renderer.c
index ea1be8b..7a69d98 100644
--- a/dlls/strmbase/renderer.c
+++ b/dlls/strmbase/renderer.c
@@ -194,6 +194,18 @@ static IPin *renderer_get_pin(BaseFilter *iface, unsigned int index)
     return &This->pInputPin->pin.IPin_iface;
 }
 
+static void renderer_destroy(BaseFilter *iface)
+{
+    BaseRenderer *filter = impl_from_BaseFilter(iface);
+    filter->pFuncsTable->renderer_destroy(filter);
+}
+
+static const BaseFilterFuncTable RendererBaseFilterFuncTable =
+{
+    .filter_get_pin = renderer_get_pin,
+    .filter_destroy = renderer_destroy,
+};
+
 static HRESULT WINAPI BaseRenderer_Input_CheckMediaType(BasePin *pin, const AM_MEDIA_TYPE * pmt)
 {
     BaseRenderer *This = impl_from_IBaseFilter(pin->pinInfo.pFilter);
@@ -206,10 +218,6 @@ static HRESULT WINAPI BaseRenderer_Receive(BaseInputPin *pin, IMediaSample * pSa
     return BaseRendererImpl_Receive(This, pSample);
 }
 
-static const BaseFilterFuncTable RendererBaseFilterFuncTable = {
-    .filter_get_pin = renderer_get_pin,
-};
-
 static const BaseInputPinFuncTable input_BaseInputFuncTable = {
     {
         BaseRenderer_Input_CheckMediaType,
diff --git a/include/wine/strmbase.h b/include/wine/strmbase.h
index 307204e..9bc13de 100644
--- a/include/wine/strmbase.h
+++ b/include/wine/strmbase.h
@@ -604,6 +604,7 @@ typedef struct BaseRendererFuncTable {
 	BaseRenderer_EndOfStream pfnEndOfStream;
 	BaseRenderer_BeginFlush pfnBeginFlush;
 	BaseRenderer_EndFlush pfnEndFlush;
+        void (*renderer_destroy)(BaseRenderer *iface);
 } BaseRendererFuncTable;
 
 HRESULT WINAPI BaseRendererImpl_QueryInterface(IBaseFilter * iface, REFIID riid, LPVOID * ppv);




More information about the wine-cvs mailing list