Enable passthrough mode by default for audio, soundtrigger, and radio
Remove ENABLE_TREBLE flag usage for legacy hal fallback.
Introduce new build flag USE_LEGACY_LOCAL_AUDIO_HAL for fallback.
Bug: 32978887
Test: checked "OK Google" (from standby), Hangouts, YouTube,
Play Music, fake radio hal + test app
KI: issues when using equializer and virtualuzer in Play Music
Change-Id: I1c279e622c885f799481f1287e0660ca576fcea0
diff --git a/media/libaudiohal/Android.mk b/media/libaudiohal/Android.mk
index deb26b5..58b38a6 100644
--- a/media/libaudiohal/Android.mk
+++ b/media/libaudiohal/Android.mk
@@ -9,9 +9,20 @@
liblog \
libutils
-ifeq ($(ENABLE_TREBLE), true)
+ifeq ($(USE_LEGACY_LOCAL_AUDIO_HAL), true)
-LOCAL_CFLAGS += -DENABLE_TREBLE
+# Use audiohal directly w/o hwbinder middleware.
+# This is for performance comparison and debugging only.
+
+LOCAL_SRC_FILES := \
+ DeviceHalLocal.cpp \
+ DevicesFactoryHalLocal.cpp \
+ EffectBufferHalLocal.cpp \
+ EffectHalLocal.cpp \
+ EffectsFactoryHalLocal.cpp \
+ StreamHalLocal.cpp
+
+else # if !USE_LEGACY_LOCAL_AUDIO_HAL
LOCAL_SRC_FILES := \
ConversionHelperHidl.cpp \
@@ -36,16 +47,7 @@
android.hidl.memory@1.0 \
libmedia_helper
-else # if !ENABLE_TREBLE
-
-LOCAL_SRC_FILES := \
- DeviceHalLocal.cpp \
- DevicesFactoryHalLocal.cpp \
- EffectBufferHalLocal.cpp \
- EffectHalLocal.cpp \
- EffectsFactoryHalLocal.cpp \
- StreamHalLocal.cpp
-endif # ENABLE_TREBLE
+endif # USE_LEGACY_LOCAL_AUDIO_HAL
LOCAL_MODULE := libaudiohal
diff --git a/media/libaudiohal/EffectHalHidl.cpp b/media/libaudiohal/EffectHalHidl.cpp
index f1f3f2a..3fb2f43 100644
--- a/media/libaudiohal/EffectHalHidl.cpp
+++ b/media/libaudiohal/EffectHalHidl.cpp
@@ -167,14 +167,16 @@
uint32_t *replySize, void *pReplyData) {
if (mEffect == 0) return NO_INIT;
hidl_vec<uint8_t> hidlData;
- hidlData.setToExternal(reinterpret_cast<uint8_t*>(pCmdData), cmdSize);
+ if (pCmdData != nullptr && cmdSize > 0) {
+ hidlData.setToExternal(reinterpret_cast<uint8_t*>(pCmdData), cmdSize);
+ }
status_t status;
Return<void> ret = mEffect->command(cmdCode, hidlData, *replySize,
[&](int32_t s, const hidl_vec<uint8_t>& result) {
status = s;
if (status == 0) {
if (*replySize > result.size()) *replySize = result.size();
- if (pReplyData && *replySize > 0) {
+ if (pReplyData != nullptr && *replySize > 0) {
memcpy(pReplyData, &result[0], *replySize);
}
}