History log of /frameworks/av/media/libeffects/lvm/wrapper/Reverb/EffectReverb.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ad1bd92a49d78df6bc6e75bee68c517c1326f3cf 08-Jan-2016 Eric Laurent <elaurent@google.com> fix possible overflow in effect wrappers.

Add checks on parameter size field in effect command handlers
to avoid overflow leading to invalid comparison with min allowed
size for command and reply buffers.

Bug: 26347509.
Change-Id: I20e6a9b6de8e5172b957caa1ac9410b9752efa4d
0f714a464d2425afe00d6450535e763131b40844 20-Jun-2015 Eric Laurent <elaurent@google.com> audio effects: fix heap overflow

Check consistency of effect command reply sizes before
copying to reply address.

Also add null pointer check on reply size.
Also remove unused parameter warning.

Bug: 21953516.
Change-Id: I4cf00c12eaed696af28f3b7613f7e36f47a160c4
7b6c7b89241397261d52602cbeaa559962efbfec 20-Jun-2014 Mark Salyzyn <salyzyn@google.com> libeffects: 64-bit compile warnings

Change-Id: I210129f5742b046f7ceef48194f039352eff596d
b302bd5d288be2d3363b80053ca2392560b00b25 18-Feb-2014 Ashok Bhat <ashok.bhat@arm.com> LP64 fixes for media/libeffects

Changes include:

[x] In get parameter series of functions, replaced size_t*
formal parameter type with uint32_t* where actual parameter
passed was uint32_t*.

[x] In set parameter series of functions, changed size_t
formal parameter to uint32_t where actual parameter was

[x] Changed the definition of LVM_UINT32 from unsigned
long to uint32_t as unsigned long is 64-bit in LP64.

[x] Used other stdint.h types for other LVM_types for

[x] Use of uintptr_t for the pNextMember of the INST_ALLOC
structure, rather than LVM_UINT32, for portablility.

[x] Use of uintptr_t where pointers are used in arithmetic.

[x] Replaced the use of 0xFFFFFFFC with ~3 in places where
it was used to clear last two bits.

[x] Removed int casts where cmdSize and *replySize, both
uint32_t, were being compared with sizeof().

Change-Id: Ibec0b4d8e9b855f44b1cd853be6df84d13cf4186
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
c9d8ea7f8f9a1ca8ecd266695e3cac423790b2f9 20-Oct-2013 synergydev <synergye@codefi.re> libeffects: do not use GNU old-style field designators

Not using a GNU extension improves portability

Change-Id: I4e8a0376c089828ca4fc7f1aaf3914bfd917d4c5
5875516ea11f77438f2ed23334fc490a706edd56 02-May-2013 Eric Laurent <elaurent@google.com> Fix reverb at 48kHz

The LVM reverb wrapper had a test to only accept input
sampling rate of 44.1 kHz. As the LVM reberb engine
supports multiple sampling rate we can remove this test.

The fix for issue 8512027 (commit 2a9c5cd4) caused a regression
because the framework now checks the return code of the effect
configure command and ignores subsequent commands in case of error.

Bug: 8630044
Change-Id: I3146871f1ad8f7945a2e63ea763dd7b87368337d
480421bb48af5df4f15498845447f3fde20a4069 26-Oct-2012 Glenn Kasten <gkasten@google.com> Turn off executable bit on ordinary files

Change-Id: I0abea25b58fb1d03975bed9cca40f826fcd4c5e4
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
6035cb5a61a7606cc8e4ecddec32b2eb37a9fd56 25-Oct-2012 Marco Nelissen <marcone@google.com> Switch to new fx library API

Change-Id: I6603aef5e3821a8f911e3f33ef8565d04bd1e2e5
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
b4d307481960b6b348fae4b4e8edefd003c3d36c 13-Mar-2012 Glenn Kasten <gkasten@google.com> Use correct syntax for #include <> ""

Change-Id: I943137108668ae66f8eba18dafe069a7951bcd8f
5e92a7861196ddae14638d4b7a63fc4892b7ef59 30-Jan-2012 Glenn Kasten <gkasten@google.com> Effect UUID inputs passed by pointer are const

Change-Id: I1f5c338bcb7368e3dd8cd5f804b2e6d9fbe087f8
3d5188bd6abe55898f10a0edf3c05aff8aa2ef67 17-Dec-2011 Eric Laurent <elaurent@google.com> audio effects: rename configure command

Renamed audio effect library interface command for audio format
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

Implemented EFFECT_CMD_GET_CONFIG in exisitng effect libraries.

Change-Id: Ia7b1c620f13797fe5aceb3b0b4acbacce09fb067
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
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
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
df489b929115ea93a0cf689830fe44400ce3c00f 25-Jan-2011 Glenn Kasten <gkasten@google.com> Bug 3117154

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
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

Change-Id: Id1ff51327263364bf71d3f2668fa5cde4311d84f
5185b0138aaeffeecc93b958cb9cd9821f260faf 09-Sep-2010 Eric Laurent <elaurent@google.com> LVM release 1.09 delivery

- 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
54c38fdcff502ab3502c55dd314a954dd60c0183 09-Sep-2010 Eric Laurent <elaurent@google.com> 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
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
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
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
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