summaryrefslogtreecommitdiffstats
path: root/media/libeffects
Commit message (Collapse)AuthorAgeFilesLines
...
| * Fix sim-eng build.Andy McFadden2010-07-192-4/+9
| | | | | | | | | | | | | | Different handling of libdl. Added sim handling in one place, corrected typo in sim handling in another. Change-Id: I24153ad5b8873083225390ba6a751941d231d092
* | Fixed problems in audio effect volume control.Eric Laurent2010-07-191-3/+3
|/ | | | | | | | | | Fixed the following problems in audio effect volume control in AudioFlinger: - Make sure that the volumes returned by EffectChain::setVolume_l() are correct even is no change is detected since last call - Do not use isEnabled() to validate volume control but mState >= ACTIVE instead as the volume control must be also active in STOPPING and STOPPED states. Change-Id: Id62da3164fad500ee8a5efd6cd78c77e8fdcb541
* First submission of audio effect library from NXP software.Eric Laurent2010-07-17203-65/+29801
| | | | | | | | | | | | | | | | | | | This CL contains the first open sourceable version of the audio effect library from NXP software. The effects implemented are: - Bass boost - Virtualizer (stereo widening) - Equalizer - Spectrum analyzer Source file for the effect engines are located under libeffects/lvm/lib The wrapper implementing the interface with the audio effect framework in under libeffects/lvm/wrapper The code of other effect libraries has also been reorganized fo clarity: - the effect factory is now under libeffects/factory - the test equalizer and reverb effects are under libeffect/testlibs - the visualizer is under libeffects/virtualizer Change-Id: I8d91e2181f81b89f8fc0c1e1e6bf552c5809b2eb
* Use the OpenSL ES definition of SL_IID_EQUALIZER for the EQJean-Michel Trivi2010-07-141-1/+2
| | | | | | effect UUID instead of defining it locally. Change-Id: Id6018fef20d286899cf7503fec3521dcd56db7e0
* Modifications in audio effect engine state management.Eric Laurent2010-07-134-5/+76
| | | | | | | | | | | - Separate the updating of effect engine state from the process call in EffectModule so that the state of all effects in the same effect chain is updated simultaneusly before all process functions are called. - Added a mechanism for the effect engine to continue being called for processing after receiving the disable commands untils it considers that the framework can stop calling the process function without causing a glitch or loosing some effect tail. - Updated test reverb and equalizer to support this new feature Change-Id: Icb56ae2c84c076d4dbad6cf733b1a62f823febe7
* Added JAVA classes to control bass boost, equalizer, reverberation and ↵Eric Laurent2010-07-082-567/+585
| | | | | | | | | | | | | | | | | | virtualizer Effects. Defined the following JAVA classes on top of AudioEffect class to facilitate control off built-in audio effects with APIs aligned with interfaces defined in OpenSL ES specification: - BastBoot.java - Equalizer.java - PresetReverb.java - EnvironmentalReverb.java - Virtualizer.java Split reverb API header file in two, one for preset reverb and one for environmental reverb. Some changes in test reverb to support preset reverb. Change-Id: Ie0a5ba06002e63dfd6da22cace5568c1e0b76ea1
* Added Visualizer effect.Eric Laurent2010-07-072-0/+431
| | | | | | | | | | | | | | The visualizer enables application to retrieve part of the currently playing audio for visualization purpose. It is not an audio recording interface and only returns partial and low quality audio content as a waveform or a frequency representation (FFT). Removed temporary hack made in MediaPlayer for animated wall papers based on audio visualization (snoop() method. This commit also includes a change in AudioEffect class: - the enable()/disable() methods have been replaced bya more standard setEnabled() method. - some fixes in javadoc Change-Id: Id092a1340e9e38dae68646ade7be054e3a36980e
* Various fixes and improvements in audio effects implementationEric Laurent2010-06-2510-76/+187
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Effect API: - Use different definitions for audio device, channels, formats... in AudioSystem and EffectApi: Removed media/AudioCommon.h file created for initial version of EffectApi - Indicate audio session and output ID to effect library when calling EffectCreate(). Session ID can be useful to optimize the implementation of effect chains in the same audio session. Output ID can be used for effects implemented in audio hardware. - Renamed EffectQueryNext() function to EffectQueryEffect() and changed operating mode: now an index is passed for the queried effect instead of implicitly querying the next one. - Added CPU load and memory usage indication in effects descriptor - Added flags and commands to indicate changes in audio mode (ring tone, in call...) to effect engine - Added flag to indicate hardware accelerated effect implementation. - Renamed EffectFactoryApi.h to EffectsFactoryApi.h for consistency with EffectsFactory.c/h Effect libraries: - Reflected changes in Effect API - Several fixes in reverb implementation - Added build option TEST_EFFECT_LIBRARIES in makefile to prepare integration of actual effect library. - Replaced pointer by integer identifier for library handle returned by effects factory Audio effect framework: - Added support for audio session -1 in preparation of output stage effects configuration. - Reflected changes in Effect API - Removed volume ramp up/down when effect is inserted/removed: this has to be taken care of by effect engines. - Added some overflow verification on indexes used for deferred parameter updates via shared memory - Added hardcoded CPU and memory limit check when creating a new effect instance Change-Id: I43fee5182ee201384ea3479af6d0acb95092901d
* Issue 2667801: [Audio Effect Framework] AudioFlinger, AudioMixer AudioTrack ↵Eric Laurent2010-06-034-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | modifications. First drop of audio framework modifications for audio effects support. - AudioTrack/AudioRecord: Added support for auxiliary effects in AudioTrack Added support for audio sessions Fixed left right channel inversion in setVolume() - IAudioFlinger: Added interface methods for effect enumeraiton and instantiation Added support for audio sessions. - IAudioTrack: Added method to attach auxiliary effect. - AudioFlinger Created new classes to control effect engines in effect library and manage effect connections to tracks or output mix: EffectModule: wrapper object controlling the effect engine implementation in the effect library. There is one EffectModule per instance of an effect in a given audio session EffectChain: group of effects associated to one audio session. There is one EffectChain per audio session. EffectChain for session 0 is for output mix effects, other chains are attached to audio tracks with same session ID. Each chain contains a variable number of EffectModules EffectHandle: implements the IEffect interface. There is one EffectHandle object for each application controlling (or using) an effect module. THe EffectModule maintians a list of EffectHandles. Added support for effect modules and effect chains creation in PlaybackThread. modified mixer thread loop to allow track volume control by effect modules and call effect processing. -AudioMixer Each track now specifies its output buffer used by mixer for accumulation Modified mixer process functions to process tracks by groups of tracks with same buffer Modified track process functions to support accumulation to auxiliary channel Change-Id: I26d5f7c9e070a89bdd383e1a659f8b7ca150379c
* Fix the simulator build broken by commit ↵Eric Laurent2010-05-252-1/+4
| | | | | | 5fe37c6838de9fbd959ad19ba44aa3d00d1b4e6f Change-Id: Ibf6aebfec60cd7f807c3e49f0dbb5ab8e86bcdc1
* Fix issue 2667796: [Audio Effect Framework] Effect factory and libraries.Eric Laurent2010-05-2123-0/+9668
First effect factory and effect library API implementation. Also added default effect libraries for reverb and equalizer effects. These libraries are for functional test only and are not fine tuned with regard to audio quality. They will probably be replaced by other implementations before the release. Change-Id: I6868f8612146ae282c64052765c61a52ec789ec8