summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author James Dong <jdong@google.com> 2011-02-09 12:42:11 -0800
committer James Dong <jdong@google.com> 2011-02-09 12:49:31 -0800
commit10a5e2794d9d1b0172a9fd344eed106f5823f025 (patch)
tree670c57df65b6efe53066225f2d1d66d182cf6e22
parentcb1d66559038637181241ff68eea539c09e1cacb (diff)
Catch read error from AudioRecord and do not assert
bug - 3439313 Change-Id: Ie29d6e4945978ef27fc3e5849e467d895c7736d3
-rw-r--r--media/libstagefright/AudioSource.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/media/libstagefright/AudioSource.cpp b/media/libstagefright/AudioSource.cpp
index f96df180e179..7a1d73b46c03 100644
--- a/media/libstagefright/AudioSource.cpp
+++ b/media/libstagefright/AudioSource.cpp
@@ -235,7 +235,6 @@ status_t AudioSource::read(
timestampUs += ((1000000LL * (numLostBytes >> 1)) +
(sampleRate >> 1)) / sampleRate;
- CHECK(timestampUs > mPrevSampleTimeUs);
if (mCollectStats) {
mTotalLostFrames += (numLostBytes >> 1);
}
@@ -252,9 +251,10 @@ status_t AudioSource::read(
}
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 @@ status_t AudioSource::read(
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);