summaryrefslogtreecommitdiffstats
path: root/media/libmedia/Visualizer.cpp
diff options
context:
space:
mode:
authorRicardo Garcia <rago@google.com>2015-06-18 21:01:53 -0700
committerEric Laurent <elaurent@google.com>2015-06-19 17:22:45 -0700
commit9b030df5ead9c039e4ebb16c745e2cc40e953d48 (patch)
treef57b2a1d364dbc21616a622e2b49af1af49ffd2b /media/libmedia/Visualizer.cpp
parent3fc792fe36b0b9100f74185665221b37f650ff65 (diff)
downloadframeworks_av-9b030df5ead9c039e4ebb16c745e2cc40e953d48.zip
frameworks_av-9b030df5ead9c039e4ebb16c745e2cc40e953d48.tar.gz
frameworks_av-9b030df5ead9c039e4ebb16c745e2cc40e953d48.tar.bz2
Fix for Visualizer release bug
Setting callback reference to NULL before requesting exit. bug: 21804802 Change-Id: I54323959686880f4e7a10b766850f8c86c06edb6
Diffstat (limited to 'media/libmedia/Visualizer.cpp')
-rw-r--r--media/libmedia/Visualizer.cpp12
1 files changed, 4 insertions, 8 deletions
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;
}