summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Garcia <rago@google.com>2015-06-22 17:56:31 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-22 17:56:32 +0000
commit99b38856e91a55bb67085dbabffac9739998fe8b (patch)
treea73f9173187000611521af0bb7eb53ba207d41d5
parent42193b96b22782fce14c55314dfc269fb4a4ed22 (diff)
parent9b030df5ead9c039e4ebb16c745e2cc40e953d48 (diff)
downloadframeworks_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.h3
-rw-r--r--media/libmedia/Visualizer.cpp12
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;
}