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

Commit 1648c8d1 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Merge cherrypicks of [3196053, 3195996, 3195997, 3195998, 3196073, 3196093,...

Merge cherrypicks of [3196053, 3195996, 3195997, 3195998, 3196073, 3196093, 3196113, 3195934, 3195999, 3196074, 3196133, 3196134, 3195914, 3195915, 3195916] into oc-mr1-release

Change-Id: I95acbaa82a1bc595d122bab54fb7a4e25e37d4ff
parents 18d2294a 3ad3aeca
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -941,7 +941,6 @@ void CameraDevice::CallbackHandler::onMessageReceived(
                    ACaptureRequest* request = allocateACaptureRequest(requestSp);
                    (*onFail)(context, session.get(), request, failure);
                    freeACaptureRequest(request);
                    delete failure;
                    break;
                }
                case kWhatCaptureSeqEnd:
+2 −2
Original line number Diff line number Diff line
@@ -53,7 +53,6 @@ AImage::isClosed() const {

void
AImage::close(int releaseFenceFd) {
    lockReader();
    Mutex::Autolock _l(mLock);
    if (mIsClosed) {
        return;
@@ -71,7 +70,6 @@ AImage::close(int releaseFenceFd) {
    mBuffer = nullptr;
    mLockedBuffer = nullptr;
    mIsClosed = true;
    unlockReader();
}

void
@@ -622,7 +620,9 @@ EXPORT
void AImage_deleteAsync(AImage* image, int releaseFenceFd) {
    ALOGV("%s", __FUNCTION__);
    if (image != nullptr) {
        image->lockReader();
        image->close(releaseFenceFd);
        image->unlockReader();
        if (!image->isClosed()) {
            LOG_ALWAYS_FATAL("Image close failed!");
        }
+3 −1
Original line number Diff line number Diff line
@@ -349,8 +349,8 @@ AImageReader::~AImageReader() {
    for (auto it = mAcquiredImages.begin();
              it != mAcquiredImages.end(); it++) {
        AImage* image = *it;
        Mutex::Autolock _l(image->mLock);
        releaseImageLocked(image, /*releaseFenceFd*/-1);
        image->close();
    }

    // Delete Buffer Items
@@ -502,6 +502,8 @@ AImageReader::releaseImageLocked(AImage* image, int releaseFenceFd) {
    mBufferItemConsumer->releaseBuffer(*buffer, bufferFence);
    returnBufferItemLocked(buffer);
    image->mBuffer = nullptr;
    image->mLockedBuffer = nullptr;
    image->mIsClosed = true;

    bool found = false;
    // cleanup acquired image list
+1 −1
Original line number Diff line number Diff line
@@ -85,7 +85,7 @@ struct AImageReader : public RefBase {
    // Called by AImageReader_acquireXXX to acquire a Buffer and setup AImage.
    media_status_t acquireImageLocked(/*out*/AImage** image, /*out*/int* fenceFd);

    // Called by AImage to close image
    // Called by AImage/~AImageReader to close image. Caller is responsible to grab AImage::mLock
    void releaseImageLocked(AImage* image, int releaseFenceFd);

    static int getBufferWidth(BufferItem* buffer);