aaudio test: check for uninitialized callback buffer

This can cause unexpected noise.

Bug: 154342174
Test: this is a test
Change-Id: I358dfa66ed5922eede38b902c36973740f6ab494
gugelfrei
Phil Burk 4 years ago
parent bf821e2c39
commit 9cf2382a91

@ -28,15 +28,20 @@
// Callback function that does nothing. // Callback function that does nothing.
aaudio_data_callback_result_t NoopDataCallbackProc( aaudio_data_callback_result_t NoopDataCallbackProc(
AAudioStream *stream, AAudioStream * stream,
void *userData, void * /* userData */,
void *audioData, void *audioData,
int32_t numFrames int32_t numFrames
) { ) {
(void) stream; int channels = AAudioStream_getChannelCount(stream);
(void) userData; int numSamples = channels * numFrames;
(void) audioData; bool allZeros = true;
(void) numFrames; float * const floatData = reinterpret_cast<float *>(audioData);
for (int i = 0; i < numSamples; i++) {
allZeros &= (floatData[i] == 0.0f);
floatData[i] = 0.0f;
}
EXPECT_TRUE(allZeros);
return AAUDIO_CALLBACK_RESULT_CONTINUE; return AAUDIO_CALLBACK_RESULT_CONTINUE;
} }
@ -56,6 +61,7 @@ void checkReleaseThenClose(aaudio_performance_mode_t perfMode,
nullptr); nullptr);
AAudioStreamBuilder_setPerformanceMode(aaudioBuilder, perfMode); AAudioStreamBuilder_setPerformanceMode(aaudioBuilder, perfMode);
AAudioStreamBuilder_setSharingMode(aaudioBuilder, sharingMode); AAudioStreamBuilder_setSharingMode(aaudioBuilder, sharingMode);
AAudioStreamBuilder_setFormat(aaudioBuilder, AAUDIO_FORMAT_PCM_FLOAT);
// Create an AAudioStream using the Builder. // Create an AAudioStream using the Builder.
ASSERT_EQ(AAUDIO_OK, ASSERT_EQ(AAUDIO_OK,
@ -114,6 +120,7 @@ void checkStateTransition(aaudio_performance_mode_t perfMode,
// Request stream properties. // Request stream properties.
AAudioStreamBuilder_setDataCallback(aaudioBuilder, NoopDataCallbackProc, nullptr); AAudioStreamBuilder_setDataCallback(aaudioBuilder, NoopDataCallbackProc, nullptr);
AAudioStreamBuilder_setPerformanceMode(aaudioBuilder, perfMode); AAudioStreamBuilder_setPerformanceMode(aaudioBuilder, perfMode);
AAudioStreamBuilder_setFormat(aaudioBuilder, AAUDIO_FORMAT_PCM_FLOAT);
// Create an AAudioStream using the Builder. // Create an AAudioStream using the Builder.
ASSERT_EQ(AAUDIO_OK, AAudioStreamBuilder_openStream(aaudioBuilder, &aaudioStream)); ASSERT_EQ(AAUDIO_OK, AAudioStreamBuilder_openStream(aaudioBuilder, &aaudioStream));

Loading…
Cancel
Save