diff options
author | Ricardo Garcia <rago@google.com> | 2015-06-22 17:56:31 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-22 17:56:32 +0000 |
commit | 99b38856e91a55bb67085dbabffac9739998fe8b (patch) | |
tree | a73f9173187000611521af0bb7eb53ba207d41d5 | |
parent | 42193b96b22782fce14c55314dfc269fb4a4ed22 (diff) | |
parent | 9b030df5ead9c039e4ebb16c745e2cc40e953d48 (diff) | |
download | frameworks_av-99b38856e91a55bb67085dbabffac9739998fe8b.zip frameworks_av-99b38856e91a55bb67085dbabffac9739998fe8b.tar.gz frameworks_av-99b38856e91a55bb67085dbabffac9739998fe8b.tar.bz2 |
Merge "Fix for Visualizer release bug" into mnc-dev
-rw-r--r-- | include/media/Visualizer.h | 3 | ||||
-rw-r--r-- | media/libmedia/Visualizer.cpp | 12 |
2 files changed, 6 insertions, 9 deletions
diff --git a/include/media/Visualizer.h b/include/media/Visualizer.h index b92f816..186e018 100644 --- a/include/media/Visualizer.h +++ b/include/media/Visualizer.h @@ -95,7 +95,8 @@ public: // install a callback to receive periodic captures. The capture rate is specified in milliHertz // and the capture format is according to flags (see callback_flags). - status_t setCaptureCallBack(capture_cbk_t cbk, void* user, uint32_t flags, uint32_t rate); + status_t setCaptureCallBack(capture_cbk_t cbk, void* user, uint32_t flags, uint32_t rate, + bool force = false); // set the capture size capture size must be a power of two in the range // [VISUALIZER_CAPTURE_SIZE_MAX. VISUALIZER_CAPTURE_SIZE_MIN] 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; } |