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

Commit d1365d36 authored by Zhijun He's avatar Zhijun He Committed by Android (Google) Code Review
Browse files

Merge "Camera3: tear down Camera3 streams when they are deleted." into lmp-dev

parents 37b216c7 0a21051b
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -825,7 +825,6 @@ status_t Camera2Client::startPreviewL(Parameters &params, bool restart) {
        }
        outputStreams.push(getZslStreamId());
    } else {
        mZslProcessor->clearZslQueue();
        mZslProcessor->deleteStream();
    }

+3 −0
Original line number Diff line number Diff line
@@ -1497,6 +1497,9 @@ status_t Camera3Device::configureStreamsLocked() {

    ALOGV("%s: Camera %d: Stream configuration complete", __FUNCTION__, mId);

    // tear down the deleted streams after configure streams.
    mDeletedStreams.clear();

    return OK;
}

+2 −1
Original line number Diff line number Diff line
@@ -76,6 +76,8 @@ class Camera3OutputStream :
            /*out*/
            sp<Fence> *releaseFenceOut);

    virtual status_t disconnectLocked();

    sp<ANativeWindow> mConsumer;
  private:
    int               mTransform;
@@ -91,7 +93,6 @@ class Camera3OutputStream :
            nsecs_t timestamp);

    virtual status_t configureQueueLocked();
    virtual status_t disconnectLocked();

    virtual status_t getEndpointUsage(uint32_t *usage);

+10 −0
Original line number Diff line number Diff line
@@ -318,11 +318,21 @@ status_t Camera3ZslStream::enqueueInputBufferByTimestamp(
status_t Camera3ZslStream::clearInputRingBuffer() {
    Mutex::Autolock l(mLock);

    return clearInputRingBufferLocked();
}

status_t Camera3ZslStream::clearInputRingBufferLocked() {
    mInputBufferQueue.clear();

    return mProducer->clear();
}

status_t Camera3ZslStream::disconnectLocked() {
    clearInputRingBufferLocked();

    return Camera3OutputStream::disconnectLocked();
}

status_t Camera3ZslStream::setTransform(int /*transform*/) {
    ALOGV("%s: Not implemented", __FUNCTION__);
    return INVALID_OPERATION;
+6 −0
Original line number Diff line number Diff line
@@ -96,6 +96,12 @@ class Camera3ZslStream :
            bool output,
            /*out*/
            sp<Fence> *releaseFenceOut);

    // Disconnet the Camera3ZslStream specific bufferQueues.
    virtual status_t disconnectLocked();

    status_t clearInputRingBufferLocked();

}; // class Camera3ZslStream

}; // namespace camera3