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

Commit 4362f530 authored by Jean-Michel Trivi's avatar Jean-Michel Trivi
Browse files

Handle audio HAL returning 0 bytes in record thread

Enter standby when HAL returns an error, but also consider 0 bytes
  returned as NOT_ENOUGH_DATA.

Change-Id: Ica83142310e9c176f936e0440571a6034cbc575f
parent 66466087
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -5984,7 +5984,7 @@ bool AudioFlinger::RecordThread::threadLoop()
    inputStandBy();
    acquireWakeLock();

    // used to verify we've read at least one before evaluating how many bytes were read
    // used to verify we've read at least once before evaluating how many bytes were read
    bool readOnce = false;

    // start recording
@@ -6499,9 +6499,9 @@ status_t AudioFlinger::RecordThread::getNextBuffer(AudioBufferProvider::Buffer*

    if (framesReady == 0) {
        mBytesRead = mInput->stream->read(mInput->stream, mRsmpInBuffer, mInputBytes);
        if (mBytesRead < 0) {
        if (mBytesRead <= 0) {
            if ((mBytesRead < 0) && (mActiveTrack->mState == TrackBase::ACTIVE)) {
                ALOGE("RecordThread::getNextBuffer() Error reading audio input");
            if (mActiveTrack->mState == TrackBase::ACTIVE) {
                // Force input into standby so that it tries to
                // recover at next read attempt
                inputStandBy();