History log of /frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
209bbbcf4190231f9dede758cbe77d109919f9f1 21-Jun-2013 Jean-Michel Trivi <jmtrivi@google.com> Apply EQ and bass boost first in effect chain

EQ and bass boost can improperly interact with other effects
(e.g. virtualizer) outside of the bundle. Apply them first
in an effect chain, which is equivalent to using them to affect
the content of a track, rather than how a track is presented,
when additional effects are cascaded behind EQ and BB.

Bug 8589316

Change-Id: Ifb34e46bc1969f613cdc90ee2a79af677e2fad92
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
6a5c6ed13e3ea1b19835e08624125c9b1505b32c 19-Mar-2013 Marco Nelissen <marcone@google.com> Fix valgrind error

The volume member of the BundledEffectContext class was not being
initialized, resulting in uninitialized data being used for calculations
and control flow.

Change-Id: I84bf9fd478e5d0479e781323b21c7c03dea958c5
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
7f16b197c76fbae9399242f055a7ee16dcd0fd6d 26-Oct-2012 Marco Nelissen <marcone@google.com> Only export the symbols that need to be

The effects libraries were exporting many more symbols than needed.
This reduces the exported symbols to just the needed ones (basically
just "AELI"), which happens to also save about 28KB.

Change-Id: I115077e52e8dc845282e6f62a522908d26dd72d6
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
6035cb5a61a7606cc8e4ecddec32b2eb37a9fd56 25-Oct-2012 Marco Nelissen <marcone@google.com> Switch to new fx library API

Change-Id: I6603aef5e3821a8f911e3f33ef8565d04bd1e2e5
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
97bb6e89845cb6d85f4d34a4efcc1de2ce585336 17-Oct-2012 Marco Nelissen <marcone@google.com> Fix valgrind issues

We were reading some uninitialized memory when creating bass boost and EQ
effects, and using memcpy() with identical source and destination.

Change-Id: I15ea1b2c52ae05cbf54aef04351e89805e0ebf8e
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
0ee916f1f69c2d69e02a8de1e5cd5a2e9d0a0782 17-Sep-2012 Eric Laurent <elaurent@google.com> Fix THD with max user EQ preset volume again

There was a problem with previous fix in 1b6c677c where
the THD was good for max volume but bad for intermediate
high volume values.

This fix does not limit the band gains but apply a correction
to the effect bundle volume to take into account not only the
maximum band gain but also the average band gains weighted
by the proximity of each band to the max gain band.

Change-Id: Ibedd8da7fce1e163117f29b3da332da0e4fe8889
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
9b3c701bbdbf3e4655758e995d467b325f8f366d 11-Sep-2012 Eric Laurent <elaurent@google.com> Limit maximum equalizer gain.

Limit maximum gain in all EQ bands according to current volume so that
total gain (current volume + band gain) does not exceed a certain limit.
The gain difference between bands is preserved.

Change-Id: Ice5a9705a0b3353e8778b4c539a29ca9cdf60390
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
9f6f0a7eb1d7f2c35f3547779364a1a8d6d4a24c 30-Aug-2012 Eric Laurent <elaurent@google.com> audio effects: fix bug in sample rate control.

Fix a bug in LVM bundle wrapper preventing audio framework sample rate
from being sent to the effect bundle instance.

Change-Id: I912027f866d3beac91b977bba869ff96a92d2a62
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
e44615ff6022239850a3ea459ad6e07b44c37544 24-Aug-2012 Eric Laurent <elaurent@google.com> Reduce THD when equalizer is ON.

Increase headroom in LVM bundle to reduce THD when equalizer is ON
with high band gains.

Also add a workaround for a bug in headroom parameter control.

Change-Id: I1d67c9ae475f6cf852c2e0e49bacfc82a5e484fd
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
a189a6883ee55cf62da1d7bf5bf5a8ab501938a4 20-Feb-2012 Glenn Kasten <gkasten@google.com> Use struct assignment instead of explicit memcpy

for POD structs effect_descriptor_t and effect_config_t

Change-Id: Ib2fc47f85fb65ed91b0abb1f87217c49b5eb571d
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
17a736c3e1d062d7fc916329eb32aef8935614af 14-Feb-2012 Glenn Kasten <gkasten@google.com> Update comments

Change-Id: I327663a020670d0a72ff57bd0b682e2ce0528650
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
b4d307481960b6b348fae4b4e8edefd003c3d36c 13-Mar-2012 Glenn Kasten <gkasten@google.com> Use correct syntax for #include <> ""

Change-Id: I943137108668ae66f8eba18dafe069a7951bcd8f
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
5e92a7861196ddae14638d4b7a63fc4892b7ef59 30-Jan-2012 Glenn Kasten <gkasten@google.com> Effect UUID inputs passed by pointer are const

Change-Id: I1f5c338bcb7368e3dd8cd5f804b2e6d9fbe087f8
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
3d5188bd6abe55898f10a0edf3c05aff8aa2ef67 17-Dec-2011 Eric Laurent <elaurent@google.com> audio effects: rename configure command

Renamed audio effect library interface command for audio format
configuration from EFFECT_CMD_CONFIGURE to EFFECT_CMD_SET_CONFIG.
This makes the naming more consistent with other exixsting commands
and allow adding a new command to get the configuration (EFFECT_CMD_GET_CONFIG).
Same change for reverse channel configuration renamed from
EFFECT_CMD_CONFIGURE_REVERSE to EFFECT_CMD_SET_CONFIG_REVERSE.

Implemented EFFECT_CMD_GET_CONFIG in exisitng effect libraries.

Change-Id: Ia7b1c620f13797fe5aceb3b0b4acbacce09fb067
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
45b92707d851458c73e320d2450cfc246b1167db 05-Nov-2011 Eric Laurent <elaurent@google.com> resolved conflicts for merge of 914972be to master

Change-Id: I15adb9040eaa206c31bb5a08ed5ee5b32967ba0a
f5a486a54d85ee59f4e9afa18b05c1946d749050 05-Nov-2011 Eric Laurent <elaurent@google.com> resolved conflicts for merge of 79178b8b to master

Change-Id: Ia597549a6d159b86063eb3afec5ce7fe98434a65
4d954c4ff6ab7110df23f1f3ebfe296beb97f3de 04-Nov-2011 Eric Laurent <elaurent@google.com> Merge "Fix device management in lvm effect bundle wrapper." into ics-mr1
5dc65e2ce92c7364da60bdff5f345daf145c2c0f 01-Nov-2011 Eric Laurent <elaurent@google.com> Fix problem in lvm effect bundle wrapper.

When an effect is disabled, the process function should either
copy or accumulate the content of the input buffer to the output buffer
depending on the behavior requested by the framework.
Current implementation is copying the input buffer unconditionally.

Related to issue 5433942.

Change-Id: Ic488ca97eadcc4c763de570d7e6c6f5b7a979415
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
b6431802fc6cff501a4311de288ba469839fbf86 01-Nov-2011 Eric Laurent <elaurent@google.com> Fix device management in lvm effect bundle wrapper.

The virtualizer and bass boost effects should be disabled when
not playing throught headsets or headphones.

There is a bug in current wrapper implementation that makes that those
effects are not disabled if the effect is enabled by the user after
the headset has been removed (current logic only works if the device selection
occurs while the effect is enabled).

Change-Id: I7c66b15a0339d95fb9ed13c8320d66379725d3b6
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
3856b090cd04ba5dd4a59a12430ed724d5995909 20-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
ba7b8f881a9b6b21803752326d2932a3bd42d7cf 18-Jun-2011 Eric Laurent <elaurent@google.com> Audio Effect API: process reverse stream function

Added function to audio effect interface for processing of
a reverse stream.
This is necessary for audio pre processes like echo cancellation.

Change-Id: I6e12d79dbbed6376acdfc79304b8c0ab3f705eae
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
e1315cf0b63b4c14a77046519e6b01f6f60d74b0 18-May-2011 Eric Laurent <elaurent@google.com> New effect library API

Moved and renamed media/EffectApi.h to hardware/audio_effect.h
Modified the effect library API to expose a library info structure
containing an interface functions table.
Also removed enums for audio channels, audio format and devices
from effect API and use values from system/audio.h instead.

Modified effects factory to support new library interface format and
load libraries and efffects listed in audio_effects.conf file.
The file audio_effects.conf is first loaded from /vendor/etc and
then from /system/etc/audio_effects.conf if not found.

Modified existing effect libraries to implement the new library interface.

Change-Id: Ie52351e071b6d352fa2fbc06c3846686f8c45df9
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
d71a0e1ac517cf312b9a96fe5ba9de04f2b9ffd4 01-Mar-2011 Eric Laurent <elaurent@google.com> Fix issue 3499926.

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
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
dac69110ed1073bf0a9827a3f78698896dd05d97 28-Sep-2010 Eric Laurent <elaurent@google.com> Fix several audio effects problems.

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
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
29cc743e57f2a1701a0a0d3a0e5406ed0f2e8a89 16-Sep-2010 Eric Laurent <elaurent@google.com> Fix problem in lvm effect bundle wrapper

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
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
e0aed6ddcb4e3c301b80aa26706b6052dab42c41 11-Sep-2010 Eric Laurent <elaurent@google.com> Fix volume problems with insert revert

- 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
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
2d3bf535004f7310fe04a4b5f46b6747cdb3c93f 03-Sep-2010 Eric Laurent <elaurent@google.com> LVM release 1.08 delivery.

- Changed bundle SamplesToExit to 0.1 secs
- Added SamplesToExit to Revreb
- Removed mixer from Core reverb

Change-Id: I675ec22889f20ef35a0ac427600c2654111c397e
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
8f45bd725549436eeacd12ee69349e2332ed8da5 31-Aug-2010 Eric Laurent <elaurent@google.com> Audio Effects: fix problems in volume control.

- 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
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
d918324d44aa48b3b064ea9b87d0c520c38f15a9 27-Aug-2010 Eric Laurent <elaurent@google.com> LVM release 1.07 delivery.

- 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
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
97344f1d8e8e95fd07d5deee2ae2492a7e4c24b0 24-Aug-2010 Eric Laurent <elaurent@google.com> Added preset reverb.

Modified lvm reverb wrapper code to expose a preset reverb interface.
Also removed debug log from bundle and reverb wrapper.

Change-Id: If9b95d91e25a6ff834decdfdda34b17df9b46967
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
c59c6fd7f859b4010d788db89b8d4d76bbb70e57 04-Aug-2010 Eric Laurent <elaurent@google.com> LVM release 1.05 delivery

- 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
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
7fa8a0ec14781a50695cf8c9dd2a85a5e8a3c3f0 18-Aug-2010 Eric Laurent <elaurent@google.com> Audio Effects: fixed "strength supported" parameter size.

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
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
3be9523784cc4038f601e510faee595117cdacb3 30-Jul-2010 Eric Laurent <elaurent@google.com> Audio effects: aligned Equalizer API argument types on OpenSL ES SLEqualizerItf.

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
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
25f4395b932fa9859a6e91ba77c5d20d009da64a 28-Jul-2010 Eric Laurent <elaurent@google.com> Audio effects: modified command() parameter types.

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
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
23e1de74359f4bb1763aef0adfebe073122b032c 23-Jul-2010 Eric Laurent <elaurent@google.com> Audio Effects: added methods to effects java classes to store and load 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
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
010ae0dd9eab40a49a840388230d8bb2f97c530e 26-Jul-2010 Eric Laurent <elaurent@google.com> Fixed bug in vlm effect bunde wrapper effect init function.

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
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
163fbcf84010b98e0374110454d85b804bc8d13b 23-Jul-2010 Eric Laurent <elaurent@google.com> Audio effects: lvm bundle wrapper update after first integration tests.

Change-Id: I20cb55282833bd6e3a160e0dae1cc1fcb6b1ca30
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
de070137f11d346fba77605bd76a44c040a618fc 13-Jul-2010 Eric Laurent <elaurent@google.com> Audio policy manager changes for audio effects

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
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp
2c8e5cab3faa6d360e222b7a6c40a80083d021ac 09-Jul-2010 Eric Laurent <elaurent@google.com> First submission of audio effect library from NXP software.

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
/frameworks/av/media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp