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
127 lines
3.8 KiB
Plaintext
127 lines
3.8 KiB
Plaintext
# List of effect libraries to load. Each library element must contain a "path" element
|
|
# giving the full path of the library .so file.
|
|
# libraries {
|
|
# <lib name> {
|
|
# path <lib path>
|
|
# }
|
|
# }
|
|
libraries {
|
|
bundle {
|
|
path /system/lib/soundfx/libbundlewrapper.so
|
|
}
|
|
reverb {
|
|
path /system/lib/soundfx/libreverbwrapper.so
|
|
}
|
|
visualizer {
|
|
path /system/lib/soundfx/libvisualizer.so
|
|
}
|
|
pre_processing {
|
|
path /system/lib/soundfx/libaudiopreprocessing.so
|
|
}
|
|
}
|
|
|
|
# list of effects to load. Each effect element must contain a "library" and a "uuid" element.
|
|
# The value of the "library" element must correspond to the name of one library element in the
|
|
# "libraries" element.
|
|
# The name of the effect element is indicative, only the value of the "uuid" element
|
|
# designates the effect.
|
|
# The uuid is the implementation specific UUID as specified by the effect vendor. This is not the
|
|
# generic effect type UUID.
|
|
# effects {
|
|
# <fx name> {
|
|
# library <lib name>
|
|
# uuid <effect uuid>
|
|
# }
|
|
# ...
|
|
# }
|
|
|
|
effects {
|
|
bassboost {
|
|
library bundle
|
|
uuid 8631f300-72e2-11df-b57e-0002a5d5c51b
|
|
}
|
|
virtualizer {
|
|
library bundle
|
|
uuid 1d4033c0-8557-11df-9f2d-0002a5d5c51b
|
|
}
|
|
equalizer {
|
|
library bundle
|
|
uuid ce772f20-847d-11df-bb17-0002a5d5c51b
|
|
}
|
|
volume {
|
|
library bundle
|
|
uuid 119341a0-8469-11df-81f9- 0002a5d5c51b
|
|
}
|
|
reverb_env_aux {
|
|
library reverb
|
|
uuid 4a387fc0-8ab3-11df-8bad- 0002a5d5c51b
|
|
}
|
|
reverb_env_ins {
|
|
library reverb
|
|
uuid c7a511a0-a3bb-11df-860e-0002a5d5c51b
|
|
}
|
|
reverb_pre_aux {
|
|
library reverb
|
|
uuid f29a1400-a3bb-11df-8ddc-0002a5d5c51b
|
|
}
|
|
reverb_pre_ins {
|
|
library reverb
|
|
uuid 172cdf00-a3bc-11df-a72f-0002a5d5c51b
|
|
}
|
|
visualizer {
|
|
library visualizer
|
|
uuid d069d9e0-8329-11df-9168-0002a5d5c51b
|
|
}
|
|
agc {
|
|
library pre_processing
|
|
uuid aa8130e0-66fc-11e0-bad0-0002a5d5c51b
|
|
}
|
|
aec {
|
|
library pre_processing
|
|
uuid bb392ec0-8d4d-11e0-a896-0002a5d5c51b
|
|
}
|
|
ns {
|
|
library pre_processing
|
|
uuid c06c8400-8e06-11e0-9cb6-0002a5d5c51b
|
|
}
|
|
}
|
|
# Audio preprocessor configurations.
|
|
# The pre processor configuration consists in a list of elements each describing
|
|
# pre processor settings for a given input source. Valid input source names are:
|
|
# "mic", "camcorder", "voice_recognition", "voice_communication"
|
|
# Each input source element contains a list of effects elements. The name of the effect
|
|
# element must be the name of one of the effects in the "effects" list of the file.
|
|
# Each effect element may optionally contain a list of parameters and their
|
|
# default value to apply when the pre processor effect is created.
|
|
# A parameter is defined by a "param" element and a "value" element. Each of these elements
|
|
# consists in one or more elements specifying a type followed by a value.
|
|
# The types defined are: "int", "short", "float", "bool" and "string"
|
|
# When both "param" and "value" are a single int, a simple form is allowed where just
|
|
# the param and value pair is present in the parameter description
|
|
# pre_processing {
|
|
# <input source name> {
|
|
# <fx name> {
|
|
# <param 1 name> {
|
|
# param {
|
|
# int|short|float|bool|string <value>
|
|
# [ int|short|float|bool|string <value> ]
|
|
# ...
|
|
# }
|
|
# value {
|
|
# int|short|float|bool|string <value>
|
|
# [ int|short|float|bool|string <value> ]
|
|
# ...
|
|
# }
|
|
# }
|
|
# <param 2 name > {<param> <value>}
|
|
# ...
|
|
# }
|
|
# ...
|
|
# }
|
|
# ...
|
|
# }
|
|
|
|
#
|
|
# TODO: add default audio pre processor configurations after debug and tuning phase
|
|
#
|