AAudio: Sample rate converter flag
Add a flag for sample rate converter in AAudio.
Bug: 219533889
Test: atest AAudioTests
Test: OboeTester test output for various sample rates
Change-Id: I735639e915d573605863c0e404d85724105004dc
diff --git a/media/libaaudio/src/client/AudioStreamInternal.cpp b/media/libaaudio/src/client/AudioStreamInternal.cpp
index 8d9bf20..ca0db0d 100644
--- a/media/libaaudio/src/client/AudioStreamInternal.cpp
+++ b/media/libaaudio/src/client/AudioStreamInternal.cpp
@@ -42,6 +42,7 @@
#include "fifo/FifoBuffer.h"
#include "utility/AudioClock.h"
#include <media/AidlConversion.h>
+#include <com_android_media_aaudio.h>
#include "AudioStreamInternal.h"
@@ -63,8 +64,6 @@
#define LOG_TIMESTAMPS 0
-#define ENABLE_SAMPLE_RATE_CONVERTER 1
-
AudioStreamInternal::AudioStreamInternal(AAudioServiceInterface &serviceInterface, bool inService)
: AudioStream()
, mClockModel()
@@ -193,11 +192,13 @@
setSampleRate(configurationOutput.getSampleRate());
}
-#if !ENABLE_SAMPLE_RATE_CONVERTER
- if (getSampleRate() != getDeviceSampleRate()) {
- goto error;
+ if (!com::android::media::aaudio::sample_rate_conversion()) {
+ if (getSampleRate() != getDeviceSampleRate()) {
+ ALOGD("%s - skipping sample rate converter. SR = %d, Device SR = %d", __func__,
+ getSampleRate(), getDeviceSampleRate());
+ goto error;
+ }
}
-#endif
// Save device format so we can do format conversion and volume scaling together.
setDeviceFormat(configurationOutput.getFormat());