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

Commit e814934d authored by Changyeon Jo's avatar Changyeon Jo Committed by Automerger Merge Worker
Browse files

Increase frame counters in the same critical section am: 928a4535 am:...

Increase frame counters in the same critical section am: 928a4535 am: a343d0cf am: c070b5a1 am: 55baee93 am: e0868c44 am: 62ad051d

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2594993



Change-Id: Ief10fc725f67bb05fbcd1b3073ae06562c36349d
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 16fcf446 62ad051d
Loading
Loading
Loading
Loading
+8 −4
Original line number Original line Diff line number Diff line
@@ -133,6 +133,9 @@ Return<void> FrameHandler::deliverFrame(const BufferDesc& bufferArg) {
    // Local flag we use to keep track of when the stream is stopping
    // Local flag we use to keep track of when the stream is stopping
    bool timeToStop = false;
    bool timeToStop = false;


    // Another local flag telling whether or not current frame is displayed.
    bool frameDisplayed = false;

    if (bufferArg.memHandle.getNativeHandle() == nullptr) {
    if (bufferArg.memHandle.getNativeHandle() == nullptr) {
        // Signal that the last frame has been received and the stream is stopped
        // Signal that the last frame has been received and the stream is stopped
        timeToStop = true;
        timeToStop = true;
@@ -172,9 +175,7 @@ Return<void> FrameHandler::deliverFrame(const BufferDesc& bufferArg) {
                } else {
                } else {
                    // Everything looks good!
                    // Everything looks good!
                    // Keep track so tests or watch dogs can monitor progress
                    // Keep track so tests or watch dogs can monitor progress
                    mLock.lock();
                    frameDisplayed = true;
                    mFramesDisplayed++;
                    mLock.unlock();
                }
                }
            }
            }
        }
        }
@@ -197,12 +198,15 @@ Return<void> FrameHandler::deliverFrame(const BufferDesc& bufferArg) {
    }
    }




    // Update our received frame count and notify anybody who cares that things have changed
    // Update frame counters and notify anybody who cares that things have changed.
    mLock.lock();
    mLock.lock();
    if (timeToStop) {
    if (timeToStop) {
        mRunning = false;
        mRunning = false;
    } else {
    } else {
        mFramesReceived++;
        mFramesReceived++;
        if (frameDisplayed) {
            mFramesDisplayed++;
        }
    }
    }
    mLock.unlock();
    mLock.unlock();
    mSignal.notify_all();
    mSignal.notify_all();