Make sure that NumberEffectsEnabled is decremented at the same time as
SamplesToExitCountBb reaches 0 in Effect_process(). Not doing so
causes NumberEffectsEnabled not being decremented if Effect_setEnabled()
is called after SamplesToExitCountBb reaches 0 and before next Effect_process() is called.
Change-Id: Id827a301f93a5a09ecd9995a0c7d731ef526711a
The previous default audible behavior was actually NONE (dry), despite
the default value of MEDIUMROOM. Corrected default value to match the
default behavior.
Change-Id: Iadb0d41629a383fd52f03e8a21ba4b74ea24401c
Fixed the following issues in LVM effect bundle wrapper:
- memory leaks in EffectCreate() in case effect creation fails at various stages
- Added saturation when accumulating to output buffer
- Fixed problems with enabled effects count when an effect is released while enabled
- Do not allocate temporary buffer for accumulation each time process() is called
Fixed the following issues in effects framework (AudioFlinger)
- Release effect synchronously in the library when deleted from effect chain
- Do not call the effect process function if no tracks are present in the same
audio session
Change-Id: Ifbd80a163415cfb3c0a337c12082853ea45d9c91
AudioEffect::command() should not interpret the status
returned in pReplyData unless the command is ENABLE or
DISABLE.
Also fixed:
- bug in Visualizer::getWAveForm() status reporting.
- wrong initialization value for capture buffer in visualizer engine.
Change-Id: I60fb0011f9dba96ee74661dec1e8ef441edcaf35
Scale audio signal during capture according to peak level so that
returned values on 8 bits contain enough information even for weak
signals.
Also do not reject requests to enable/disable the visualizer if we are
already in the requested state.
Change-Id: I07a705619764350834e61f82d161761eab688747
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
Merge commit 'e126119c3a406bc564f2549aeb1416aff112689d'
* commit 'e126119c3a406bc564f2549aeb1416aff112689d':
Modify type of some environmental reverb parameters
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
- 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
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
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
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
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
Different handling of libdl. Added sim handling in one place, corrected
typo in sim handling in another.
Change-Id: I24153ad5b8873083225390ba6a751941d231d092
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