Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aac745f2 authored by Glenn Kasten's avatar Glenn Kasten Committed by Android (Google) Code Review
Browse files

Merge "libmedia: ensure mCaptureThread exit within Visualizer destructor" into lmp-mr1-dev

parents b80a2a88 63f6ffb9
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -52,6 +52,13 @@ Visualizer::Visualizer (int32_t priority,

Visualizer::~Visualizer()
{
    ALOGV("Visualizer::~Visualizer()");
    if (mCaptureThread != NULL) {
        mCaptureThread->requestExitAndWait();
        mCaptureThread.clear();
    }
    mCaptureCallBack = NULL;
    mCaptureFlags = 0;
}

status_t Visualizer::setEnabled(bool enabled)
@@ -102,20 +109,18 @@ status_t Visualizer::setCaptureCallBack(capture_cbk_t cbk, void* user, uint32_t
        return INVALID_OPERATION;
    }

    sp<CaptureThread> t = mCaptureThread;
    if (t != 0) {
        t->mLock.lock();
    if (mCaptureThread != 0) {
        mCaptureLock.unlock();
        mCaptureThread->requestExitAndWait();
        mCaptureLock.lock();
    }

    mCaptureThread.clear();
    mCaptureCallBack = cbk;
    mCaptureCbkUser = user;
    mCaptureFlags = flags;
    mCaptureRate = rate;

    if (t != 0) {
        t->mLock.unlock();
    }

    if (cbk != NULL) {
        mCaptureThread = new CaptureThread(*this, rate, ((flags & CAPTURE_CALL_JAVA) != 0));
    }