aaudio examples: allow -n0 for minimum buffer size
Default buffer size will be 2.
Bug: 129545119
Test: should see requested BufferSize = 0
Test: adb shell write_sine_callback -pl -n0
Change-Id: I85d2792537aebec17d96dc7df6f79e34b9f8fddd
diff --git a/media/libaaudio/examples/utils/AAudioArgsParser.h b/media/libaaudio/examples/utils/AAudioArgsParser.h
index f5ed7aa..8bb2e86 100644
--- a/media/libaaudio/examples/utils/AAudioArgsParser.h
+++ b/media/libaaudio/examples/utils/AAudioArgsParser.h
@@ -225,6 +225,8 @@
}
}
+ static constexpr int32_t kDefaultNumberOfBursts = 2;
+
private:
int32_t mChannelCount = AAUDIO_UNSPECIFIED;
aaudio_format_t mFormat = AAUDIO_FORMAT_UNSPECIFIED;
@@ -239,7 +241,7 @@
aaudio_content_type_t mContentType = AAUDIO_UNSPECIFIED;
aaudio_input_preset_t mInputPreset = AAUDIO_UNSPECIFIED;
- int32_t mNumberOfBursts = AAUDIO_UNSPECIFIED;
+ int32_t mNumberOfBursts = kDefaultNumberOfBursts;
int32_t mFramesPerCallback = AAUDIO_UNSPECIFIED;
};
@@ -352,7 +354,7 @@
printf(" 1 = _NEVER, never use MMAP\n");
printf(" 2 = _AUTO, use MMAP if available, default for -m with no number\n");
printf(" 3 = _ALWAYS, use MMAP or fail\n");
- printf(" -n{numberOfBursts} for setBufferSize\n");
+ printf(" -n{numberOfBursts} for setBufferSize, default %d\n", kDefaultNumberOfBursts);
printf(" -p{performanceMode} set output AAUDIO_PERFORMANCE_MODE*, default NONE\n");
printf(" n for _NONE\n");
printf(" l for _LATENCY\n");
@@ -407,17 +409,28 @@
getFormat(), AAudioStream_getFormat(stream));
int32_t framesPerBurst = AAudioStream_getFramesPerBurst(stream);
- int32_t sizeFrames = AAudioStream_getBufferSizeInFrames(stream);
printf(" Buffer: burst = %d\n", framesPerBurst);
+
+ int32_t sizeFrames = AAudioStream_getBufferSizeInFrames(stream);
if (framesPerBurst > 0) {
- printf(" Buffer: size = %d = (%d * %d) + %d\n",
+ int32_t requestedSize = getNumberOfBursts() * framesPerBurst;
+ printf(" BufferSize: requested = %4d, actual = %4d = (%d * %d) + %d\n",
+ requestedSize,
sizeFrames,
(sizeFrames / framesPerBurst),
framesPerBurst,
(sizeFrames % framesPerBurst));
+ } else {
+ printf(" BufferSize: %d\n", sizeFrames);
}
- printf(" Capacity: requested = %d, actual = %d\n", getBufferCapacity(),
- AAudioStream_getBufferCapacityInFrames(stream));
+
+ int32_t capacityFrames = AAudioStream_getBufferCapacityInFrames(stream);
+ printf(" Capacity: requested = %4d, actual = %4d = (%d * %d) + %d\n",
+ getBufferCapacity(),
+ capacityFrames,
+ (capacityFrames / framesPerBurst),
+ framesPerBurst,
+ (capacityFrames % framesPerBurst));
printf(" CallbackSize: requested = %d, actual = %d\n", getFramesPerCallback(),
AAudioStream_getFramesPerDataCallback(stream));
diff --git a/media/libaaudio/examples/utils/AAudioSimplePlayer.h b/media/libaaudio/examples/utils/AAudioSimplePlayer.h
index 4373fa9..fd1fc45 100644
--- a/media/libaaudio/examples/utils/AAudioSimplePlayer.h
+++ b/media/libaaudio/examples/utils/AAudioSimplePlayer.h
@@ -120,10 +120,9 @@
if (result == AAUDIO_OK) {
int32_t sizeInBursts = parameters.getNumberOfBursts();
- if (sizeInBursts > 0) {
- int32_t framesPerBurst = AAudioStream_getFramesPerBurst(mStream);
- AAudioStream_setBufferSizeInFrames(mStream, sizeInBursts * framesPerBurst);
- }
+ int32_t framesPerBurst = AAudioStream_getFramesPerBurst(mStream);
+ int32_t bufferSizeFrames = sizeInBursts * framesPerBurst;
+ AAudioStream_setBufferSizeInFrames(mStream, bufferSizeFrames);
}
AAudioStreamBuilder_delete(builder);