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

Commit 89b629b3 authored by Glenn Kasten's avatar Glenn Kasten
Browse files

Fix bug with discarded AudioRecord::read count

Formerly, if an AudioRecord::read() got a timeout on obtainBuffer()
after already successfully transferring some data, then it returned zero.
This had the effect of discarding a partial transfer, which resulted in
a gap in the audio data delivered to the app.  Now if a timeout occurs
after a partial transfer, it returns that partial transfer count so that
no data is lost.

Change-Id: I0d9c2f4e495a400b56ef916a06613ba26537ca97
parent 66c8dd24
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -644,7 +644,8 @@ ssize_t AudioRecord::read(void* buffer, size_t userSize)
                break;
            }
            if (err == status_t(TIMED_OUT)) {
                err = 0;
                // return partial transfer count
                return read;
            }
            return ssize_t(err);
        }