summaryrefslogtreecommitdiffstats
path: root/media/libmedia/AudioRecord.cpp
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2015-03-20 11:30:28 -0700
committerGlenn Kasten <gkasten@google.com>2015-04-13 18:02:09 -0700
commit551b5355d34aa42890811fc3606d3b63429296cd (patch)
treea55a6f457f11025f653241a58d475fe6a8269be5 /media/libmedia/AudioRecord.cpp
parent7d669b3551c20109f5544455ca1555499693e1e1 (diff)
downloadframeworks_av-551b5355d34aa42890811fc3606d3b63429296cd.zip
frameworks_av-551b5355d34aa42890811fc3606d3b63429296cd.tar.gz
frameworks_av-551b5355d34aa42890811fc3606d3b63429296cd.tar.bz2
AudioRecord::obtainBuffer() can return nonContig like AudioTrack
And fix error handling in both AudioRecord and AudioTrack. Change-Id: I4853d736cc6d2c05de5b18b0eac62716edfa62ec
Diffstat (limited to 'media/libmedia/AudioRecord.cpp')
-rw-r--r--media/libmedia/AudioRecord.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/media/libmedia/AudioRecord.cpp b/media/libmedia/AudioRecord.cpp
index 100a914..7fc1a78 100644
--- a/media/libmedia/AudioRecord.cpp
+++ b/media/libmedia/AudioRecord.cpp
@@ -600,15 +600,21 @@ release:
return status;
}
-status_t AudioRecord::obtainBuffer(Buffer* audioBuffer, int32_t waitCount)
+status_t AudioRecord::obtainBuffer(Buffer* audioBuffer, int32_t waitCount, size_t *nonContig)
{
if (audioBuffer == NULL) {
+ if (nonContig != NULL) {
+ *nonContig = 0;
+ }
return BAD_VALUE;
}
if (mTransfer != TRANSFER_OBTAIN) {
audioBuffer->frameCount = 0;
audioBuffer->size = 0;
audioBuffer->raw = NULL;
+ if (nonContig != NULL) {
+ *nonContig = 0;
+ }
return INVALID_OPERATION;
}
@@ -627,7 +633,7 @@ status_t AudioRecord::obtainBuffer(Buffer* audioBuffer, int32_t waitCount)
ALOGE("%s invalid waitCount %d", __func__, waitCount);
requested = NULL;
}
- return obtainBuffer(audioBuffer, requested);
+ return obtainBuffer(audioBuffer, requested, NULL /*elapsed*/, nonContig);
}
status_t AudioRecord::obtainBuffer(Buffer* audioBuffer, const struct timespec *requested,