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/fuzzer/Android.bp b/media/libaaudio/fuzzer/Android.bp
index ee53717..46c4148 100644
--- a/media/libaaudio/fuzzer/Android.bp
+++ b/media/libaaudio/fuzzer/Android.bp
@@ -41,6 +41,7 @@
"libaudioclient_aidl_conversion",
"libaudio_aidl_conversion_common_cpp",
"libutils",
+ "com.android.media.aaudio-aconfig-cc",
],
static_libs: [
"liblog",
diff --git a/media/libaaudio/src/Android.bp b/media/libaaudio/src/Android.bp
index 7882951..886603d 100644
--- a/media/libaaudio/src/Android.bp
+++ b/media/libaaudio/src/Android.bp
@@ -173,6 +173,7 @@
"aaudio-aidl-cpp",
"audioclient-types-aidl-cpp",
"libaudioclient_aidl_conversion",
+ "com.android.media.aaudio-aconfig-cc",
],
cflags: [
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());