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

Commit 928a4535 authored by Changyeon Jo's avatar Changyeon Jo
Browse files

Increase frame counters in the same critical section

Bug: 275049370
Test: atest VtsHalEvsV1_0TargetTest
Change-Id: I814aac4edec142027d3802f5ee0d7a444ae2ee86
parent 45a15ed8
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();