Remove force argument to ensure mCaptureThread exit within Visualizer destructor
Updated logic for exit request when effect is disabled.
This CL includes some original changes suggested by:
ganxiaolin <ganxiaolin@xiaomi.com>
Bug: 30684284
Change-Id: I77768e8204e712f3fd9d0a9bf768de3cb578d6ce
diff --git a/media/libmedia/Visualizer.cpp b/media/libmedia/Visualizer.cpp
index 31e310b..37bf0bd 100644
--- a/media/libmedia/Visualizer.cpp
+++ b/media/libmedia/Visualizer.cpp
@@ -55,7 +55,7 @@
{
ALOGV("Visualizer::~Visualizer()");
setEnabled(false);
- setCaptureCallBack(NULL, NULL, 0, 0, true);
+ setCaptureCallBack(NULL, NULL, 0, 0);
}
status_t Visualizer::setEnabled(bool enabled)
@@ -77,13 +77,11 @@
status_t status = AudioEffect::setEnabled(enabled);
- if (status == NO_ERROR) {
- if (t != 0) {
- if (enabled) {
- t->run("Visualizer");
- } else {
- t->requestExit();
- }
+ if (t != 0) {
+ if (enabled && status == NO_ERROR) {
+ t->run("Visualizer");
+ } else {
+ t->requestExit();
}
}
@@ -95,14 +93,14 @@
}
status_t Visualizer::setCaptureCallBack(capture_cbk_t cbk, void* user, uint32_t flags,
- uint32_t rate, bool force)
+ uint32_t rate)
{
if (rate > CAPTURE_RATE_MAX) {
return BAD_VALUE;
}
Mutex::Autolock _l(mCaptureLock);
- if (force || mEnabled) {
+ if (mEnabled) {
return INVALID_OPERATION;
}