From 12fba3bfb1e20397e6f703586a739f9cad41835c Mon Sep 17 00:00:00 2001 From: Yoann Lopes Date: Sat, 31 Oct 2015 21:47:27 +0100 Subject: DirectShow: fix custom renderer reference counting. Change-Id: Iadefd4d72bdafb982a79b99ee5880dba32f3e920 Reviewed-by: Christian Stromme --- src/plugins/directshow/player/videosurfacefilter.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/plugins/directshow/player/videosurfacefilter.cpp') diff --git a/src/plugins/directshow/player/videosurfacefilter.cpp b/src/plugins/directshow/player/videosurfacefilter.cpp index 901d2e908..1fa7329cc 100644 --- a/src/plugins/directshow/player/videosurfacefilter.cpp +++ b/src/plugins/directshow/player/videosurfacefilter.cpp @@ -69,7 +69,7 @@ VideoSurfaceFilter::VideoSurfaceFilter( VideoSurfaceFilter::~VideoSurfaceFilter() { - Q_ASSERT(m_ref == 1); + Q_ASSERT(m_ref == 0); } HRESULT VideoSurfaceFilter::QueryInterface(REFIID riid, void **ppvObject) @@ -110,8 +110,8 @@ ULONG VideoSurfaceFilter::AddRef() ULONG VideoSurfaceFilter::Release() { ULONG ref = InterlockedDecrement(&m_ref); - - Q_ASSERT(ref != 0); + if (ref == 0) + delete this; return ref; } -- cgit v1.2.3