From f14d50977874e1a048119cc9d5513cb557a0952e Mon Sep 17 00:00:00 2001 From: ChenHengming Date: Wed, 2 Dec 2015 23:06:03 +0000 Subject: [PATCH] [mpp]: detach listener on mpp deinit git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@496 6e48237b-75ef-9749-8fc9-41990f28c85a --- mpp/mpp.cpp | 4 ++++ mpp/mpp_buffer_impl.cpp | 1 + 2 files changed, 5 insertions(+) diff --git a/mpp/mpp.cpp b/mpp/mpp.cpp index cd1d264a..cd94e0c2 100644 --- a/mpp/mpp.cpp +++ b/mpp/mpp.cpp @@ -110,6 +110,10 @@ Mpp::~Mpp () void Mpp::clear() { + // MUST: release listener here + if (mFrameGroup) + mpp_buffer_group_set_listener((MppBufferGroupImpl *)mFrameGroup, NULL); + if (mThreadCodec) mThreadCodec->stop(); if (mThreadHal) diff --git a/mpp/mpp_buffer_impl.cpp b/mpp/mpp_buffer_impl.cpp index 2f28a0dc..1a91a296 100644 --- a/mpp/mpp_buffer_impl.cpp +++ b/mpp/mpp_buffer_impl.cpp @@ -433,6 +433,7 @@ MPP_RET mpp_buffer_group_set_listener(MppBufferGroupImpl *p, void *listener) return MPP_ERR_NULL_PTR; } + Mutex::Autolock auto_lock(&service.mLock); p->listener = listener; return MPP_OK;