From 7c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745 Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Fri, 17 Jun 2011 21:29:58 -0700 Subject: Audio framework: support for audio pre processing Audio effect framework is extended to suport effects on output and input audio path. AudioFlinger: Support for audio effects and effect chains is moved from PlaybackThread class to ThreadBase class so that RecordThread can manage effects. Effects of type pre processing are allowed on record thread only. When a pre processing is enabled, the effect interface handle is passed down to the input stream so that the audio HAL can call the process function. The record thread loop calls the effect chain process function that will only manage the effect state and commands and skip the process function. AudioRecord: The audio session is allocated before calling getInput() into audio policy serice so that the session is known before the input theead is created and pre processings can be created on the correct session. AudioPolicyService: default pre processing for a given input source are loaded from audio_effects.conf file. When an input is created, corresponding effects are created and enabled. Change-Id: Id17119e0979b4dcf189b5c7957fec30dc3478790 --- media/libeffects/factory/Android.mk | 3 +++ media/libeffects/factory/EffectsFactory.c | 1 + media/libeffects/factory/EffectsFactory.h | 7 ------- 3 files changed, 4 insertions(+), 7 deletions(-) (limited to 'media/libeffects/factory') diff --git a/media/libeffects/factory/Android.mk b/media/libeffects/factory/Android.mk index 26265ae..2f2b974 100644 --- a/media/libeffects/factory/Android.mk +++ b/media/libeffects/factory/Android.mk @@ -14,4 +14,7 @@ LOCAL_MODULE:= libeffects LOCAL_SHARED_LIBRARIES += libdl +LOCAL_C_INCLUDES := \ + system/media/audio_effects/include + include $(BUILD_SHARED_LIBRARY) diff --git a/media/libeffects/factory/EffectsFactory.c b/media/libeffects/factory/EffectsFactory.c index a9689bc..d333510 100644 --- a/media/libeffects/factory/EffectsFactory.c +++ b/media/libeffects/factory/EffectsFactory.c @@ -24,6 +24,7 @@ #include #include +#include static list_elem_t *gEffectList; // list of effect_entry_t: all currently created effects static list_elem_t *gLibraryList; // list of lib_entry_t: all currently loaded libraries diff --git a/media/libeffects/factory/EffectsFactory.h b/media/libeffects/factory/EffectsFactory.h index fcc0dba..c1d4319 100644 --- a/media/libeffects/factory/EffectsFactory.h +++ b/media/libeffects/factory/EffectsFactory.h @@ -26,13 +26,6 @@ extern "C" { #endif -#define AUDIO_EFFECT_DEFAULT_CONFIG_FILE "/system/etc/audio_effects.conf" -#define AUDIO_EFFECT_VENDOR_CONFIG_FILE "/vendor/etc/audio_effects.conf" -#define EFFECTS_TAG "effects" -#define LIBRARIES_TAG "libraries" -#define PATH_TAG "path" -#define LIBRARY_TAG "library" -#define UUID_TAG "uuid" typedef struct list_elem_s { void *object; -- cgit v1.1