| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
When an effect was deleted while enabled, the count of enabled effects
in the bundle was not decremented. Resulted a state where if another effect
was still enabled, its process function was called only every other time.
Change-Id: I59a0c5b7f50f416a9ecadae297b42912e56ddd51
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Use a constant input level to the reverb engine and implement volume control in the
insert reverb. This avoids the volume spikes when an effect that was inserted after
the reverb is disabled or removed.
- Fix clicks (one silent buffer) at the end of the reverb disable period.
- Modified volume management in audioflinger so that the volume ramp is also done by
the insert effect if present when the track is paused (avoids clicks).
- Increased room level for all presets.
Also fixed problems with output stage session (-1):
- effect bundle wrapper was not designed to support session -1
- the permission check in audioflinger for using session -1 failed due to a wrong usage of
getCallingPid()
Change-Id: Id1ff51327263364bf71d3f2668fa5cde4311d84f
|
|
|
|
|
|
|
|
|
|
|
| |
- Reverb:
- 1 channel mixed has gain zero
- core componenet now only outputs STEREO samples
- wrapper now handles only STEREO from the Reverb Core
- Bass Boost:
- increase scratch memory
Change-Id: I00ae31051cc40a7006fc993420facfeb4d30dc52
|
|
|
|
|
|
|
|
|
| |
Changed type of decay time, reverb delay and reflections delay parameters
from signed to unsigned int to match OpenSL ES interface definition.
Also fixed some type casts in lvm reverb wrapper.
Change-Id: I5ca5e76a87c2590f01f031f3168355586ef22556
|
|
|
|
|
|
|
|
| |
- Changed bundle SamplesToExit to 0.1 secs
- Added SamplesToExit to Revreb
- Removed mixer from Core reverb
Change-Id: I675ec22889f20ef35a0ac427600c2654111c397e
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Fixed click when re-enabling effect during the turn off phase:
make sure the effect states where effect is processed are the same
where volume control is delegated to effect.
- Fixed click when effect is deleted while still active: do not apply
volume ramp if an effect having volume control was just removed from the
effect chain.
Also fixed a crash when PCM dump is enabled in effect bundle wrapper.
Change-Id: Ib562f5cf75c69af75df0e862536262e2514493e4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Virtualizer now uses the correct control parameter, instead of reverberation
- Volume smoothing for first frame has been added
- Equalizer_setParameter now returns correct error code
- Correcting Non-Linear compressor gain step noise during transitions and effect level changes
- Removed SVN header blocks
- Memory and MIPS values have been added to the API
- Reverb uses a more efficient malloc for input PCM
- Reverb DecayHFRatio now ranges up to 2000
- Logging has been removed for most volume functions
Change-Id: Ib59e7e331263c3811559231b4ae90c82e34a8421
|
|
|
|
|
|
|
| |
Modified lvm reverb wrapper code to expose a preset reverb interface.
Also removed debug log from bundle and reverb wrapper.
Change-Id: If9b95d91e25a6ff834decdfdda34b17df9b46967
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Click have been removed from the HP filter activation in the BassBosst Effect.
- SessionId is now stored as a SessionNo
- Effects now stop being called after a delay
- Unix EOL fixed for .java and .xml
- Updated lines limited to 100 characters.
- Removed the remaining warnings from the wrapper code
- Added reverb
Change-Id: I03a2b3b5ee2286958f4901acc8d9b0daf9e2d7c6
|
|
|
|
|
|
|
|
| |
The "strength supported" parameter for bass boost and virtualizer effect was incorrectly using a
short value whereas it should be an int. This is to comply to the definition of boolean type in OpenSL ES
that is uint32.
Change-Id: I74ccb61dcc70fc9d390524a1ca5bbbd8b13ab1af
|
|
|
|
|
|
|
|
|
| |
Modified types of some arguments and returned values of the Equalizer class from int to short
to match those defined by OpenSL ES SLEqualizerItf interface.
Also fixed a problem with set properties in equalizer engine implementation.
Change-Id: I75894bad0cb67b01c18ca5e22f9687e75ee491b8
|
|
|
|
|
|
|
| |
The type of the cmd, cmdSize and *pReplySize parameters of the effect control interface command()
function have been modified from int to uint32_t. This is more consistent with their role.
Change-Id: I84d289fc262d6753747910f06f485597dfee6591
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
current effect settings in
a single call.
Addional changes:
- Fixed simulator build
- Use effect interface UUIDs from OpenSL ES includes when available
- Added cleanspec rules to remove now obsolete test effect libraries
- Fixed bug in AudioEffect JNI setParameter function.
Change-Id: Ic25ddb135e2cec5a68c181d727321f5ac7a1ab6b
|
|\
| |
| |
| | |
gingerbread
|
| |
| |
| |
| |
| |
| |
| | |
The status in the command reply field was not initialized by Effect_command() for
EFFECT_CMD_INIT causing unpredictable failures when initializing an effect.
Change-Id: I7dccb094c9244fad4ed9aea3062a395db295e082
|
|/
|
|
|
|
|
| |
Remaining warnings in the code have been removed
Core components support seamless insertion in the audio stream at playtime (Enabling / Disabling the effect).
Change-Id: Icae7085305fad663faeb5a94cb673b41cec5a9f1
|
|
|
|
| |
Change-Id: I20cb55282833bd6e3a160e0dae1cc1fcb6b1ca30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added methods for audio effects management by audio policy manager.
- control of total CPU load and memory used by effect engines
- selection of output stream for global effects
- added audio session id in parameter list for startOutput() and stopOutput().
this is not used in default audio policy manager implementation.
Modifications of audio effect framework in AudioFlinger to allow moving and reconfiguring
effect engines from one output mixer thread to another when audio tracks in the same session
are moved or when requested by audio policy manager.
Also fixed mutex deadlock problem with effect chains locks.
Change-Id: Ida43484b06e9b890d6b9e53c13958d042720ebdb
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
effect UUID instead of defining it locally.
Change-Id: Id6018fef20d286899cf7503fec3521dcd56db7e0
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
5fe37c6838de9fbd959ad19ba44aa3d00d1b4e6f
Change-Id: Ibf6aebfec60cd7f807c3e49f0dbb5ab8e86bcdc1
|
|
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
|