diff options
author | Glenn Kasten <gkasten@google.com> | 2015-03-20 11:30:28 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2015-04-13 18:02:09 -0700 |
commit | 551b5355d34aa42890811fc3606d3b63429296cd (patch) | |
tree | a55a6f457f11025f653241a58d475fe6a8269be5 /media/libmedia/AudioRecord.cpp | |
parent | 7d669b3551c20109f5544455ca1555499693e1e1 (diff) | |
download | frameworks_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.cpp | 10 |
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, |