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

Commit f66cc52c authored by Igor Murashkin's avatar Igor Murashkin Committed by Android (Google) Code Review
Browse files

Merge "Camera2: Fix deadlock while zooming during record" into jb-mr1-dev

parents d69fd4d2 04273cb1
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -422,6 +422,9 @@ void StreamingProcessor::onFrameAvailable() {
    if (client == 0) return;

    {
        /* acquire SharedParameters before mMutex so we don't dead lock
            with Camera2Client code calling into StreamingProcessor */
        SharedParameters::Lock l(client->getParameters());
        Mutex::Autolock m(mMutex);
        BufferItemConsumer::BufferItem imgBuffer;
        res = mRecordingConsumer->acquireBuffer(&imgBuffer);
@@ -435,8 +438,6 @@ void StreamingProcessor::onFrameAvailable() {
        mRecordingFrameCount++;
        ALOGV("OnRecordingFrame: Frame %d", mRecordingFrameCount);

        {
            SharedParameters::Lock l(client->getParameters());
        // TODO: Signal errors here upstream
        if (l.mParameters.state != Parameters::RECORD &&
                l.mParameters.state != Parameters::VIDEO_SNAPSHOT) {
@@ -446,7 +447,6 @@ void StreamingProcessor::onFrameAvailable() {
            mRecordingConsumer->releaseBuffer(imgBuffer);
            return;
        }
        }

        if (mRecordingHeap == 0) {
            const size_t bufferSize = 4 + sizeof(buffer_handle_t);