Zebediah Figura : strmbase/renderer: Add a destructor callback.
Module: wine Branch: master Commit: 12965264503ad38ab9c8f5e32a43b9863b1c0549 URL: https://source.winehq.org/git/wine.git/?a=commit;h=12965264503ad38ab9c8f5e32... Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Mon May 27 23:09:55 2019 -0500 strmbase/renderer: Add a destructor callback. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)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);
participants (1)
-
Alexandre Julliard