AAudio: add setBufferCapacity()
This is needed so that an app can request a larger buffer.
Also fix a bug related to passing configuration data to the service.
Test: test_aaudio.cpp
Change-Id: Idd3066c84f6bac76a5d545b12081bc311025a6c3
Signed-off-by: Phil Burk <philburk@google.com>
diff --git a/media/liboboe/src/binding/AAudioStreamConfiguration.cpp b/media/liboboe/src/binding/AAudioStreamConfiguration.cpp
index 1cb2bfa..fe3a59f 100644
--- a/media/liboboe/src/binding/AAudioStreamConfiguration.cpp
+++ b/media/liboboe/src/binding/AAudioStreamConfiguration.cpp
@@ -39,6 +39,7 @@
parcel->writeInt32(mSampleRate);
parcel->writeInt32(mSamplesPerFrame);
parcel->writeInt32((int32_t) mAudioFormat);
+ parcel->writeInt32(mBufferCapacity);
return NO_ERROR; // TODO check for errors above
}
@@ -49,6 +50,7 @@
parcel->readInt32(&mSamplesPerFrame);
parcel->readInt32(&temp);
mAudioFormat = (aaudio_audio_format_t) temp;
+ parcel->readInt32(&mBufferCapacity);
return NO_ERROR; // TODO check for errors above
}
@@ -74,11 +76,17 @@
ALOGE("AAudioStreamConfiguration.validate() invalid audioFormat = %d", mAudioFormat);
return AAUDIO_ERROR_INTERNAL;
}
+
+ if (mBufferCapacity < 0) {
+ ALOGE("AAudioStreamConfiguration.validate() invalid mBufferCapacity = %d", mBufferCapacity);
+ return AAUDIO_ERROR_INTERNAL;
+ }
return AAUDIO_OK;
}
void AAudioStreamConfiguration::dump() {
- ALOGD("AAudioStreamConfiguration mSampleRate = %d -----", mSampleRate);
+ ALOGD("AAudioStreamConfiguration mSampleRate = %d -----", mSampleRate);
ALOGD("AAudioStreamConfiguration mSamplesPerFrame = %d", mSamplesPerFrame);
- ALOGD("AAudioStreamConfiguration mAudioFormat = %d", (int)mAudioFormat);
+ ALOGD("AAudioStreamConfiguration mAudioFormat = %d", (int)mAudioFormat);
+ ALOGD("AAudioStreamConfiguration mBufferCapacity = %d", mBufferCapacity);
}