Merge "Catch read error from AudioRecord and do not assert"
diff --git a/media/libstagefright/AudioSource.cpp b/media/libstagefright/AudioSource.cpp
index f96df18..7a1d73b 100644
--- a/media/libstagefright/AudioSource.cpp
+++ b/media/libstagefright/AudioSource.cpp
@@ -235,7 +235,6 @@
timestampUs += ((1000000LL * (numLostBytes >> 1)) +
(sampleRate >> 1)) / sampleRate;
- CHECK(timestampUs > mPrevSampleTimeUs);
if (mCollectStats) {
mTotalLostFrames += (numLostBytes >> 1);
}
@@ -252,9 +251,10 @@
}
ssize_t n = mRecord->read(buffer->data(), buffer->size());
- if (n < 0) {
+ if (n <= 0) {
buffer->release();
- return (status_t)n;
+ LOGE("Read from AudioRecord returns %d", n);
+ return UNKNOWN_ERROR;
}
int64_t recordDurationUs = (1000000LL * n >> 1) / sampleRate;
@@ -283,7 +283,6 @@
buffer->meta_data()->setInt64(kKeyTime, mStartTimeUs + mPrevSampleTimeUs);
buffer->meta_data()->setInt64(kKeyDriftTime, readTimeUs - mInitialReadTimeUs);
- CHECK(timestampUs > mPrevSampleTimeUs);
mPrevSampleTimeUs = timestampUs;
LOGV("initial delay: %lld, sample rate: %d, timestamp: %lld",
mStartTimeUs, sampleRate, timestampUs);