반응형

Android 에 언제부터인지 Audio effect 기능들이 들어가있더라.

여기에 추가로 기능을 넣을 수 있다.


그런데 이 effect 들은 

/frameworks/av/media/libeffects/data/audio_effects.conf 에 등록되어 있다.

이것은 

system/media/audio_effects/include/audio_effects/audio_effects_conf.h 여기에서 


26#define AUDIO_EFFECT_DEFAULT_CONFIG_FILE "/system/etc/audio_effects.conf"

27#define AUDIO_EFFECT_VENDOR_CONFIG_FILE "/vendor/etc/audio_effects.conf"

요렇게 지정되어있고 이것을 불러다 쓴다.


여기에서 지정된 위치로부터 so를 로드하여 사용한다.


Android 32bit-64bit 문제 (is 64-bit instead of 32-bit)  이런 메세지가 나오면 현재 32bit 으로 프로그램이 돌아가고 있는 것이다.


그런데 audioserver 가 32bit 이면 연결된 모든것이 32bit 으로 돌아간다.

64로 돌리고 싶으면 여기다가

frameworks/av/media/audioserver/Android.mk 

 ifeq ($(strip $(AUDIOSERVER_MULTILIB)),)

-LOCAL_MULTILIB := 32

+LOCAL_MULTILIB := 64 #64

 else

 LOCAL_MULTILIB := $(AUDIOSERVER_MULTILIB)

 endif


이렇게 해준다.


아니면 보드의 BoardConfig.mk 에다가 


AUDIOSERVER_MULTILIB := 64

라고 넣으면 전체적으로 연결된 놈들이 64bit build가 된다.


여기도 관련이 있는 경우가 있는데 

frameworks/av/services/audioflinger/Android.mk

--- a/alps/frameworks/av/services/audioflinger/Android.mk

+++ b/alps/frameworks/av/services/audioflinger/Android.mk

@@ -211,8 +211,10 @@ ifeq ($(strip $(MTK_CROSSMOUNT_SUPPORT)),yes)

         LOCAL_CFLAGS += -DCROSSMOUNT_LATENCY_ENHANCE

 endif

 

+LOCAL_CFLAGS += -Werror -Wformat #64bit

+

 LOCAL_MODULE:= libaudioflinger

-LOCAL_32_BIT_ONLY := true

+#LOCAL_32_BIT_ONLY := true

 

 LOCAL_SRC_FILES += \

     AudioWatchdog.cpp        \

@@ -328,7 +330,7 @@ LOCAL_SHARED_LIBRARIES += \

     liblog

 

 LOCAL_MODULE := libaudioresampler

-LOCAL_32_BIT_ONLY := true

+#LOCAL_32_BIT_ONLY := true

 

 LOCAL_CFLAGS := -Werror -Wall


이렇게 해준다.



OREO 부터는 Project Treble 한다고 HIDL 떄문에 이상한게 또 생김.


HIDL 관련 내용은 

hardware/interfaces/audio/effect/2.0

이쪽에 있음




현재 등록되어 있는 Effect 들은 다음과 같다.


03-05 09:53:27.253   244   292 W AudioFlinger: GHZHO numEffects :11

03-05 09:53:27.253   244   292 W AudioFlinger: GHZHO desc name:0:Loudness Enhancer

03-05 09:53:27.253   244   292 W AudioFlinger: GHZHO desc name:1:Multichannel Downmix To Stereo

03-05 09:53:27.254   244   292 W AudioFlinger: GHZHO desc name:2:Visualizer

03-05 09:53:27.254   244   292 W AudioFlinger: GHZHO desc name:3:Insert Preset Reverb

03-05 09:53:27.254   244   292 W AudioFlinger: GHZHO desc name:4:Auxiliary Preset Reverb

03-05 09:53:27.254   244   292 W AudioFlinger: GHZHO desc name:5:Insert Environmental Reverb

03-05 09:53:27.254   244   292 W AudioFlinger: GHZHO desc name:6:Auxiliary Environmental Reverb

03-05 09:53:27.254   244   292 W AudioFlinger: GHZHO desc name:7:Volume

03-05 09:53:27.254   244   292 W AudioFlinger: GHZHO desc name:8:Equalizer

03-05 09:53:27.254   244   292 W AudioFlinger: GHZHO desc name:9:Virtualizer

03-05 09:53:27.254   244   292 W AudioFlinger: GHZHO desc name:10:Dynamic Bass Boost

03-05 09:53:27.273   217   217 E EffectLE: LE_init(195): GHZHO LE_init(0x72a58308c0)

03-05 09:53:27.273   217   217 E EffectLE: LELib_Create(264): GHZHO ***LELib_Create context is 0x72a58308c0

03-05 09:53:27.273   217   217 E EffectLE: LELib_Create(266): GHZHO 64 64 64 64 64

03-05 09:53:27.291   217   217 E EffectLE: LELib_Create(281): GHZHO ldopen from lib64 okok

03-05 09:53:27.291   217   217 E EffectLE: LELib_Create(288): GHZHO ldsym createDSP okok

03-05 09:53:27.291   217   217 E EffectLE: LELib_Create(295): GHZHO ldsym destroyDSP okok

03-05 09:53:27.445   217   217 E EffectLE: LELib_Create(301): GHZHO GoodHz init done.

03-05 09:53:27.446   217   217 E EffectLE: LELib_Create(305): GHZHO GoodHz setManufacturer Hazen.

03-05 09:53:27.446   217   217 E EffectLE: LELib_Create(307): GHZHO GoodHz setVolume to 0.

03-05 09:53:27.446   217   217 E EffectLE: LELib_Create(310): GHZHO GoodHz setPreset to default.

03-05 09:53:27.446   217   217 E EffectLE: LELib_Create(313): GHZHO GoodHz ON.

03-05 09:53:27.446   217   217 E EffectLE: LELib_Create(314): GHZHO GoodHz State:2120

03-05 09:53:27.447   217   217 E EffectLE: LE_init(195): GHZHO LE_init(0x72a58308c0)


이렇게 하면 64bit code 분기를 탄다.

+#if defined(__LP64__)

+               ALOGW("GHZHO 64 64 64 64 64");

+#else

+               ALOGW("GHZHO 32 32 32 32 32");

+#endif

반응형
Posted by Real_G