From 9b030df5ead9c039e4ebb16c745e2cc40e953d48 Mon Sep 17 00:00:00 2001 From: Ricardo Garcia Date: Thu, 18 Jun 2015 21:01:53 -0700 Subject: Fix for Visualizer release bug Setting callback reference to NULL before requesting exit. bug: 21804802 Change-Id: I54323959686880f4e7a10b766850f8c86c06edb6 --- media/libmedia/Visualizer.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'media') diff --git a/media/libmedia/Visualizer.cpp b/media/libmedia/Visualizer.cpp index dc46038..f5c1b1f 100644 --- a/media/libmedia/Visualizer.cpp +++ b/media/libmedia/Visualizer.cpp @@ -54,12 +54,8 @@ Visualizer::Visualizer (const String16& opPackageName, Visualizer::~Visualizer() { ALOGV("Visualizer::~Visualizer()"); - if (mCaptureThread != NULL) { - mCaptureThread->requestExitAndWait(); - mCaptureThread.clear(); - } - mCaptureCallBack = NULL; - mCaptureFlags = 0; + setEnabled(false); + setCaptureCallBack(NULL, NULL, 0, 0, true); } status_t Visualizer::setEnabled(bool enabled) @@ -99,14 +95,14 @@ status_t Visualizer::setEnabled(bool enabled) } status_t Visualizer::setCaptureCallBack(capture_cbk_t cbk, void* user, uint32_t flags, - uint32_t rate) + uint32_t rate, bool force) { if (rate > CAPTURE_RATE_MAX) { return BAD_VALUE; } Mutex::Autolock _l(mCaptureLock); - if (mEnabled) { + if (force || mEnabled) { return INVALID_OPERATION; } -- cgit v1.1