• Home
  • History
  • Annotate
  • only in /frameworks/av/media/libeffects/
History log of /frameworks/av/media/libeffects/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ee507ef9e5115a923d20f5cf840d128dd49fb00f 15-Jul-2015 Haynes Mathew George <hgeorge@codeaurora.org> libeffects: validate channel mask in downmixer configure

Validate channel mask in downmixer configure, this returns
early warning to calling module which can fallback to another
downmixing module or return error instead of playing improper
data.

authored-by: Dhananjay Kumar <dhakumar@codeaurora.org>

CRs-Fixed: 862105
Change-Id: Ic19c4913608468d5c5197f65bb5d6a640c9d2d74
ownmix/EffectDownmix.c
e564c201c290c24f94e1478fea3fca2e7422980d 25-Jan-2016 Eric Laurent <elaurent@google.com> Merge "Add multi-mic support for the noise suppression pre-processing effect" am: 511555dd26
am: eb31ad3a23

* commit 'eb31ad3a2318683ea95ededaf36930a2fb186d33':
Add multi-mic support for the noise suppression pre-processing effect
eb31ad3a2318683ea95ededaf36930a2fb186d33 25-Jan-2016 Eric Laurent <elaurent@google.com> Merge "Add multi-mic support for the noise suppression pre-processing effect"
am: 511555dd26

* commit '511555dd26e8bcb5a7c9a7b49e0fe4f83a67328f':
Add multi-mic support for the noise suppression pre-processing effect
511555dd26e8bcb5a7c9a7b49e0fe4f83a67328f 25-Jan-2016 Eric Laurent <elaurent@google.com> Merge "Add multi-mic support for the noise suppression pre-processing effect"
766bf734984a0d5765980f8bd154d111de08ec19 15-Dec-2015 Alex Luebs <aluebs@google.com> Add multi-mic support for the noise suppression pre-processing effect

Change-Id: I7cf8d5657a25206e0a07e7e343635f7cf23e6f89
reprocessing/PreProcessing.cpp
70d20f98299e5ce8dbdf01ed6123a47fe7bc45b1 20-Jan-2016 Chih-hung Hsieh <chh@google.com> Merge "Update to new WebRTC version" am: 47dabd3825
am: b1f8616332

* commit 'b1f8616332371eebff84485b99545373592fb81e':
Update to new WebRTC version
b1f8616332371eebff84485b99545373592fb81e 20-Jan-2016 Chih-hung Hsieh <chh@google.com> Merge "Update to new WebRTC version"
am: 47dabd3825

* commit '47dabd38252860dd70b83380fc3df0f84a7ede49':
Update to new WebRTC version
3f11ef01574219f323a7f9ee4216d610733df50f 16-Jan-2016 Alex Luebs <aluebs@google.com> Update to new WebRTC version

* Update include/ path
* Remove unnecessary casts

Change-Id: Iac2cf15ee4fce32bcd7ad57b3e0f70976cf89880
reprocessing/Android.mk
reprocessing/PreProcessing.cpp
34314fae965f88e8a512be882afc3f42a2b2d34e 12-Jan-2016 Eric Laurent <elaurent@google.com> fix possible overflow in effect wrappers. am: 9e29523b95 am: baebc739b0 am: 3a9d4f4a83 am: 5b7c20dd1e am: df81fc3f3c am: 68e43cf141 am: b1338d3cfc am: 440c9e9b72 am: 9950df2504 am: de98d9b7c1
am: 0837e00683

* commit '0837e00683ccc8b2e30f6a2faf4a07142b63ffb3':
fix possible overflow in effect wrappers.
440c9e9b72277d6fc6cea630b9ab50f12687a9c0 12-Jan-2016 Eric Laurent <elaurent@google.com> fix possible overflow in effect wrappers. am: 9e29523b95 am: baebc739b0 am: 3a9d4f4a83 am: 5b7c20dd1e am: df81fc3f3c am: 68e43cf141
am: b1338d3cfc

* commit 'b1338d3cfcb47d0fc5f21e2b939d66316b307fe3':
fix possible overflow in effect wrappers.
b1338d3cfcb47d0fc5f21e2b939d66316b307fe3 12-Jan-2016 Eric Laurent <elaurent@google.com> fix possible overflow in effect wrappers. am: 9e29523b95 am: baebc739b0 am: 3a9d4f4a83 am: 5b7c20dd1e am: df81fc3f3c
am: 68e43cf141

* commit '68e43cf141a5851c242bce776dff93f7136cbea6':
fix possible overflow in effect wrappers.
df81fc3f3c56048a797232fa49185831f250e57c 12-Jan-2016 Eric Laurent <elaurent@google.com> fix possible overflow in effect wrappers. am: 9e29523b95 am: baebc739b0 am: 3a9d4f4a83
am: 5b7c20dd1e

* commit '5b7c20dd1ee9eff7f96676cec68d4b74e33440e7':
fix possible overflow in effect wrappers.
3a9d4f4a83341e4c083aa50a651fe5d765ef70ad 12-Jan-2016 Eric Laurent <elaurent@google.com> fix possible overflow in effect wrappers. am: 9e29523b95
am: baebc739b0

* commit 'baebc739b0fe7257b26bfe105b67409559171c82':
fix possible overflow in effect wrappers.
baebc739b0fe7257b26bfe105b67409559171c82 12-Jan-2016 Eric Laurent <elaurent@google.com> fix possible overflow in effect wrappers.
am: 9e29523b95

* commit '9e29523b9537983b4c4b205ff868d0b3bca0383b':
fix possible overflow in effect wrappers.
9e29523b9537983b4c4b205ff868d0b3bca0383b 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
(cherry picked from commit ad1bd92a49d78df6bc6e75bee68c517c1326f3cf)
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
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
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
30a5c3d97fc7c93ec878e513f466b2f21b6e0ddd 01-Dec-2015 Chih-hung Hsieh <chh@google.com> Merge "Port PreProcessing to the new WebRTC version" am: f0f6fdd4d1 am: 7ec102b586
am: bcd62e704d

* commit 'bcd62e704de35d0144c5f87b29c84742cb3d6c5d':
Port PreProcessing to the new WebRTC version
9718b7d9cba77c739269462ac57d43cc6ae69134 24-Nov-2015 Alex Luebs <aluebs@google.com> Port PreProcessing to the new WebRTC version

Change-Id: I7dcf4dba83ecbc45725d10045666699a9bc7e4a6
reprocessing/Android.mk
reprocessing/PreProcessing.cpp
7772e4d03632a5ced3d37749a7aa6d5c793713be 23-Oct-2015 Chih-hung Hsieh <chh@google.com> Merge "Change include path and names to compile with new webrtc." am: 2d772fd4af am: 84669feac3
am: f55e722949

* commit 'f55e722949d56f0a0a1b4285f9adb5df3ab05b71':
Change include path and names to compile with new webrtc.
de7fa31668bd90dba80ff2c0c462492fed873c3d 13-Oct-2015 Chih-Hung Hsieh <chh@google.com> Change include path and names to compile with new webrtc.

* external/webrtc is upgraded and some header files are
moved from interface to include directories.
* Some external/webrtc data member variables are renamed.

Change-Id: I2d6d4b62dd18f921b0360d524651ebdf7bd2fffc
reprocessing/Android.mk
reprocessing/PreProcessing.cpp
bb2f3ad2f4768fbb65f0457a4660f8aeab8a0cc9 21-Aug-2015 Eric Laurent <elaurent@google.com> Merge "pre processing: check malloc return"
679650f008a6dee59d89238fab17edd208a1878e 21-Aug-2015 Eric Laurent <elaurent@google.com> pre processing: check malloc return

Bug: 20677305.
Change-Id: Icd67f4b476b864dd325ece8e3f758605ba92f8d1
reprocessing/PreProcessing.cpp
2a5afed82fd4edd220551ce5565d89ac976f6720 21-Aug-2015 Eric Laurent <elaurent@google.com> LVM Effects: add malloc checks

Bug: 20674084.
Change-Id: I7ea2e3a53d020be11c3a7f15315be038bab4bb4d
vm/wrapper/Bundle/EffectBundle.cpp
ac85eb2ce87fd3a58931c119bd2209285b9a8c98 24-Jun-2015 Eric Laurent <elaurent@google.com> am 020c15b7: am 867e38cc: am ffdc54b6: am 3f0b4976: am 4c855d20: am 6368e6d2: audio effects: fix heap overflow

* commit '020c15b763345e237c0df79e638d94dc0b6f9de8':
audio effects: fix heap overflow
c655561b3580ae7ba3a721e69ac240606e11fab8 23-Jun-2015 Eric Laurent <elaurent@google.com> am 29b83cbb: DO NOT MERGE - audio effects: fix heap overflow

* commit '29b83cbb9018e53a18cf6e0fb34893f9774dcb96':
DO NOT MERGE - audio effects: fix heap overflow
3f0b4976ec8023c5cad92b21ac3064d63d1aa581 23-Jun-2015 Eric Laurent <elaurent@google.com> am 4c855d20: am 6368e6d2: audio effects: fix heap overflow

* commit '4c855d207edaaeb8c61109977a5297418295658c':
audio effects: fix heap overflow
29b83cbb9018e53a18cf6e0fb34893f9774dcb96 20-Jun-2015 Eric Laurent <elaurent@google.com> DO NOT MERGE - 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
ownmix/EffectDownmix.c
oudness/EffectLoudnessEnhancer.cpp
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
reprocessing/PreProcessing.cpp
isualizer/EffectVisualizer.cpp
2b343b1b2dd9e4885ef2b7ec2f798215d714ab3a 22-Jun-2015 Jean-Michel Trivi <jmtrivi@google.com> Merge "Add property to ignore audio effects on the platform" into mnc-dev
20569262fce8b047bfc253d91ccb0f455863fde1 19-Jun-2015 Jean-Michel Trivi <jmtrivi@google.com> Add property to ignore audio effects on the platform

Use boolean property ro.audio.ignore_effects to load or ignore the
audio effects.

Bug 21906334

Change-Id: I778f8b10a1caf25f7679705b1c83775223df011d
actory/EffectsFactory.c
actory/EffectsFactory.h
6368e6d23ca27cd59a9a1876d6b5a2301a8657ed 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
(cherry picked from commit 0f714a464d2425afe00d6450535e763131b40844)
ownmix/EffectDownmix.c
oudness/EffectLoudnessEnhancer.cpp
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
reprocessing/PreProcessing.cpp
isualizer/EffectVisualizer.cpp
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
ownmix/EffectDownmix.c
oudness/EffectLoudnessEnhancer.cpp
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
reprocessing/PreProcessing.cpp
isualizer/EffectVisualizer.cpp
7f0e16e391b0bd243005cc1049d3b6799f0692ec 22-May-2015 Ricardo Garcia <rago@google.com> Level adjustment for Bundled Effect Fix

Fixed automatic level compensation for bundled effects. Fixed algorithm
now works even in corner cases previously reported.
Cross band coefficients and cross interaction of BassBoost fixed.

bug: 18769691
Change-Id: I51570836bdbff37e7c4b26f2b4282e4ded7fa56d
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
2757127f55dc4928f0025f5d95c9fd5f165971ac 16-Dec-2014 Ricardo Garcia <rago@google.com> am d11d1be1: am 7ebc1670: am 8975220e: Merge "Fix for Bundled Effects level compensation" into lmp-mr1-dev

* commit 'd11d1be13a6391290fb1dbc572292973dae59909':
Fix for Bundled Effects level compensation
d11d1be13a6391290fb1dbc572292973dae59909 16-Dec-2014 Ricardo Garcia <rago@google.com> am 7ebc1670: am 8975220e: Merge "Fix for Bundled Effects level compensation" into lmp-mr1-dev

* commit '7ebc167072be27f42b7c58bd7f9378c8311533ab':
Fix for Bundled Effects level compensation
d3671c844e2592ce3a29d6d3c4fc344343783f46 12-Dec-2014 Elliott Hughes <enh@google.com> am e10615e7: am 6b3e1a6d: am ac90a24d: Merge "Remove obsolete TARGET_SIMULATOR checks"

* commit 'e10615e7f8749de887c8d25579398ad9e4094077':
Remove obsolete TARGET_SIMULATOR checks
e10615e7f8749de887c8d25579398ad9e4094077 12-Dec-2014 Elliott Hughes <enh@google.com> am 6b3e1a6d: am ac90a24d: Merge "Remove obsolete TARGET_SIMULATOR checks"

* commit '6b3e1a6d59b304a2dde7f03ba184feac0dec4ee7':
Remove obsolete TARGET_SIMULATOR checks
b092a173cf139c0f03bd2fcf3e6e78cce515211d 11-Dec-2014 Trevor Drake <trevordrake.gerrit@gmail.com> Remove obsolete TARGET_SIMULATOR checks

Change-Id: I9d499190e49fed16aac686ae5da79ab870605ff4
estlibs/Android.mk_
02521e37c0494b83947c35160f3669de8adc9e5b 20-Nov-2014 Ricardo Garcia <rago@google.com> Fix for Bundled Effects level compensation

From the bundled effects, only the EQ had some sort of level compensation
based on the settings of the effect. This patch takes into account all
the status and levels of EQ, BassBoost and Virtualizer bundled effects
and makes an informed decision on the overall level compensation.

bug: 18213779
Change-Id: I23c7b94fe7da5482f0bbef0cbe715ea464631420
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
4a2eedc149c5c423ac517a049f357347d9d5dbef 09-Dec-2014 Ricardo Garcia <rago@google.com> am 59ca7038: am 4df79c2c: am d6e7f1e1: Merge "Fix for AOSP force virtualization mode" into lmp-mr1-dev

* commit '59ca7038364cd6fa3e7e1b52e0e90fa0960af038':
Fix for AOSP force virtualization mode
59ca7038364cd6fa3e7e1b52e0e90fa0960af038 08-Dec-2014 Ricardo Garcia <rago@google.com> am 4df79c2c: am d6e7f1e1: Merge "Fix for AOSP force virtualization mode" into lmp-mr1-dev

* commit '4df79c2c13f6163f7d99360a7fb34bf3bd2a5115':
Fix for AOSP force virtualization mode
47d4c9a4d53ed014b520edbda2edc3e280efb8a5 05-Dec-2014 Ricardo Garcia <rago@google.com> Fix for AOSP force virtualization mode

Forcing virtualization mode with AOSP code might erroneously return
a failed code, whilst it was correct. Fixing the condition for
Automatic mode.

bug: 18538537
Change-Id: I5837ff40cfed04c99889813cd56ebe3d90793e74
vm/wrapper/Bundle/EffectBundle.cpp
75c537887ac6947d0bb54bd7e783ff62a3043dc1 16-Nov-2014 Dan Albert <danalbert@google.com> am 575174d6: am bb0cf4d0: am d0264109: Merge "Move libldnhncr to libc++."

* commit '575174d62b665900203d70a4d410329b8918c2af':
Move libldnhncr to libc++.
f38c754cb69d0675612418cfff7847967ec6b717 16-Nov-2014 Dan Albert <danalbert@google.com> Move libldnhncr to libc++.

Bug: 15193147
Change-Id: If59c4a53a497f501881d26d58b80b11371906527
oudness/Android.mk
d89eaddd1544dc9f6665e2578583e8083cac00da 07-Oct-2014 Marco Nelissen <marcone@google.com> Check for duplicate uuids when parsing audio_effects.conf

uuids need to be unique, and things don't work properly when they're
not.
Also fix/enhance/extend the dumpEffectDescriptor() method, and
include a list of effects in audioflinger dumpsys.

Change-Id: I3dfbc5ed0f7272c7809e337f2929212ece047ee4
actory/EffectsFactory.c
b55e1228f24dd707e120572e83bbdf1b691cd4b7 12-Sep-2014 Dan Albert <danalbert@google.com> am fed1594d: am 9916dcb6: am 0d64fcb4: Merge "Clean up some makefiles."

* commit 'fed1594d707b4623015e538b2f69faf76bc38d5b':
Clean up some makefiles.
fed1594d707b4623015e538b2f69faf76bc38d5b 12-Sep-2014 Dan Albert <danalbert@google.com> am 9916dcb6: am 0d64fcb4: Merge "Clean up some makefiles."

* commit '9916dcb6ef041752fda5f13192ee6a36e51e73a5':
Clean up some makefiles.
20adec0cea8b434e9f60888f49023b5a7dde98ec 12-Sep-2014 Dan Albert <danalbert@google.com> Clean up some makefiles.

The build system takes care of these things for you.

Change-Id: Ife9605f15786e11d6a3578f56ed83dd9ae7fd799
oudness/Android.mk
roxy/Android.mk
a5309e5c2a7a02852d2a0db7ada89a2eacb047d0 08-Aug-2014 Eric Laurent <elaurent@google.com> Enable loading of 64 bit effect libraries

Change-Id: I19252ea8d7dd8b9eee2532059c5a3a98d53c3b28
actory/EffectsFactory.c
333f66d4642ddd36b42668da2767551ba25f0248 09-Jul-2014 Jean-Michel Trivi <jmtrivi@google.com> DO NOT MERGE LVM virtualizer: add support for virtualizer capability query

Change-Id: I88106ba25f9b3f8fd7616307ab6b7fbe7afb6e91
(cherry picked from commit bfd3b9764841971be2d2f04a3fdbd41a2144beea)
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
bfd3b9764841971be2d2f04a3fdbd41a2144beea 09-Jul-2014 Jean-Michel Trivi <jmtrivi@google.com> LVM virtualizer: add support for virtualizer capability query

Change-Id: I88106ba25f9b3f8fd7616307ab6b7fbe7afb6e91
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
7618c5cb2fd60e944307e46afa051987d1e016c6 08-Jul-2014 Jean-Michel Trivi <jmtrivi@google.com> Cleanup unused parameters or variable in EffectBundle

No unused parameter warning in EffectBundle.
Remove unused variable declaration in Virtualizer_getParameter

Change-Id: Ibe1c051bc21ac53a6c770b4aa28e31ac5d559d9b
vm/wrapper/Bundle/EffectBundle.cpp
7b6c7b89241397261d52602cbeaa559962efbfec 20-Jun-2014 Mark Salyzyn <salyzyn@google.com> libeffects: 64-bit compile warnings

Change-Id: I210129f5742b046f7ceef48194f039352eff596d
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
e541269be94f3a1072932d51537905b120ef4733 16-May-2014 Andy Hung <hunga@google.com> Use new channel count functions for audio masks

Change-Id: Ia658ab4b6320d19fdb50f123c930918724ff0ef3
Signed-off-by: Andy Hung <hunga@google.com>
ownmix/EffectDownmix.c
reprocessing/PreProcessing.cpp
isualizer/EffectVisualizer.cpp
49f095546d047b52c5070229bbee0c3f27548256 08-May-2014 Ying Wang <wangying@google.com> resolved conflicts for merge of cf79c7a5 to master

Change-Id: Ic4e75541193f733f477cfa4a2a87cce4c9e64f45
029a64e0327ecc1215a3d17ce50f508edae1c4a6 15-Apr-2014 Glenn Kasten <gkasten@google.com> Define CHANNEL_MASK_* in terms of AUDIO_CHANNEL_OUT_*

and use same suffixes

Change-Id: I90b74ede171ba2550db4a220cfd1ad2e3caefe2d
ownmix/EffectDownmix.c
32fa3c6fab55b075c916f4dad38e42e239bb7813 29-Apr-2014 Glenn Kasten <gkasten@google.com> Remove AUDIO_CHANNEL_OUT_SURROUND

and corresponding downmix effect

Change-Id: I1576aa373ca7acbb84d7742bacbd9c2da04a7a4c
ownmix/EffectDownmix.c
ownmix/EffectDownmix.h
cb010a3fa85db1eb90346b35e484e21e7f1b1a4b 19-Apr-2014 Mark Salyzyn <salyzyn@google.com> am e1ff1051: am e0f20cea: Merge "libeffects: 64 bit compile issues"

* commit 'e1ff1051ffee8fb650741ad133f0f28b73eb7a73':
libeffects: 64 bit compile issues
7cb0e733210c2ce7dd2a7c9d32f6d83c4dab9656 18-Apr-2014 Mark Salyzyn <salyzyn@google.com> libeffects: 64 bit compile issues

Change-Id: I32dd13d307572fee91150f8e113df78924ca0067
ownmix/EffectDownmix.c
isualizer/EffectVisualizer.cpp
08d6608556b44f90f6e7fb7dc280f4509af79502 07-Mar-2014 Narayan Kamath <narayan@google.com> am 3a46b975: am a9b82160: Merge "LP64 fixes for media/libeffects"

* commit '3a46b975070b503bc71b53b70f9a8f5bd03bba1c':
LP64 fixes for media/libeffects
a9b82160a6682438d43709ba5e7a29022ad1af58 07-Mar-2014 Narayan Kamath <narayan@google.com> Merge "LP64 fixes for media/libeffects"
6b2604259c12ee28b49f26ab2adac96eefe30934 05-Mar-2014 jpadmana <jayashree.r.padmanaban@intel.com> am 85b3013e: fix deadlock issues that arise when there are simultaneous effect control interface calls to proxy and to non sub-effect wrappers(eg., bundlewrapper) from audioflinger Also, return NO_ERROR when CMD_OFFLOAD succeeds

* commit '85b3013e06e8fe7802fe6259ecac80261e834332':
fix deadlock issues that arise when there are simultaneous effect control interface calls to proxy and to non sub-effect wrappers(eg., bundlewrapper) from audioflinger Also, return NO_ERROR when CMD_OFFLOAD succeeds
85b3013e06e8fe7802fe6259ecac80261e834332 14-Nov-2013 jpadmana <jayashree.r.padmanaban@intel.com> fix deadlock issues that arise when there are simultaneous
effect control interface calls to proxy and to
non sub-effect wrappers(eg., bundlewrapper) from audioflinger
Also, return NO_ERROR when CMD_OFFLOAD succeeds

Whenever there are parallel calls to proxy and non sub-effects wrappers,
some of the calls are not completed. This is due to deadlock arsing out
of Proxy waiting for the subeffect call to return and subeffect waiting
for proxy to release lock.
The call flow is changed to a cleaner and simple one - Proxy gets the
aeli(effect library info) of subeffects during the EffectGetSubEffects()
call. Therby, proxy will manage the sub effects by itself rather than
going through effects factory.

Change-Id: If4b259da5776f151c1e81a78a0239d342046d923
Signed-off-by: jpadmana <jayashree.r.padmanaban@intel.com>
Bug: 12424044
actory/EffectsFactory.c
actory/EffectsFactory.h
roxy/Android.mk
roxy/EffectProxy.cpp
roxy/EffectProxy.h
9cf4f07c2dc5d4f14bfd1adee691667eb55882ec 28-Feb-2014 Glenn Kasten <gkasten@android.com> am e276aef8: am 0cf16339: Merge "Fix preventing from heap overwrite in capture command"

* commit 'e276aef8779a7763b318ebd3e8c09f35ff37a95c':
Fix preventing from heap overwrite in capture command
0cf1633922f970caee19e2cc2f5c042ca30b4aa6 28-Feb-2014 Glenn Kasten <gkasten@android.com> Merge "Fix preventing from heap overwrite in capture command"
e27e2d9bcabc1a367cb56b4599665c931a1d22ec 27-Feb-2014 Derek Sollenberger <djsollen@google.com> Fix includes to no longer pull in Skia includes directories.

bug:13225538
Change-Id: I4fccc414923f7e62cd46d691c67cb44b9692c225
isualizer/Android.mk
8fc4d57d41f532b90187b9404a8ac705770d75b4 25-Feb-2014 Glenn Kasten <gkasten@android.com> Merge "Avoid a building error"
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
uint32_t.

[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
consistency.

[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>
ownmix/EffectDownmix.c
ownmix/EffectDownmix.h
vm/lib/Bass/src/LVDBE_Init.c
vm/lib/Bundle/src/LVM_Process.c
vm/lib/Common/lib/InstAlloc.h
vm/lib/Common/lib/LVM_Types.h
vm/lib/Common/src/InstAlloc.c
vm/lib/Eq/src/LVEQNB_Process.c
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
reprocessing/PreProcessing.cpp
estlibs/EffectEqualizer.cpp
estlibs/EffectReverb.c
estlibs/EffectReverb.h
abb7b17613fff41433cda94207eb535c9fed8fba 17-Jan-2014 Ryszard Grzesica <ryszard.grzesica@sonymobile.com> Fix preventing from heap overwrite in capture command

There was heap usage error in case of stop of audio framework while
capturePoint was negative. Pointer to reply data was moved but
final silence write was done using original buffer size.
Now silence set is done at the beginning under the condition
that framework has stopped.

Change-Id: I7dab1e922f1813e5fbfd4a64c8b0d15d9465520c
isualizer/EffectVisualizer.cpp
6c44568b8f065ae06556ba6a9b3c725d9b416857 14-Feb-2014 Colin Cross <ccross@android.com> libeffects: don't set module path

Setting the module path breaks multilib builds where there may
be two different module paths for 32-bit and 64-bit, and there
is no need to set it to the default.

Change-Id: I95d62b5573a0bb0ab6c97649041dfc4309cbc8b9
actory/Android.mk
377b2ec9a2885f9b6405b07ba900a9e3f4349c38 03-Feb-2014 Kévin PETIT <kevin.petit@arm.com> Make frameworks/av 64-bit compatible

Contains the necessary changes to make frameworks/av build and work
on a 64-bit machine.

Signed-off-by: Craig Barber <craig.barber@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>

Change-Id: I725feaae50ed8eee25ca2c947cf15aee1f395c43
ownmix/EffectDownmix.c
vm/lib/Eq/src/LVEQNB_Init.c
vm/wrapper/Bundle/EffectBundle.cpp
reprocessing/PreProcessing.cpp
f90c7e0bb8d83d8b7f733bdf430d331ea3f221e8 14-Nov-2013 jpadmana <jayashree.r.padmanaban@intel.com> fix deadlock issues that arise when there are simultaneous
effect control interface calls to proxy and to
non sub-effect wrappers(eg., bundlewrapper) from audioflinger
Also, return NO_ERROR when CMD_OFFLOAD succeeds

Whenever there are parallel calls to proxy and non sub-effects wrappers,
some of the calls are not completed. This is due to deadlock arsing out
of Proxy waiting for the subeffect call to return and subeffect waiting
for proxy to release lock.
The call flow is changed to a cleaner and simple one - Proxy gets the
aeli(effect library info) of subeffects during the EffectGetSubEffects()
call. Therby, proxy will manage the sub effects by itself rather than
going through effects factory.

Signed-off-by: jpadmana <jayashree.r.padmanaban@intel.com>
Bug: 12424044
Change-Id: I16852222f1d0e94e433a19177729323a4bb1c090
actory/EffectsFactory.c
actory/EffectsFactory.h
roxy/Android.mk
roxy/EffectProxy.cpp
roxy/EffectProxy.h
7d6fc5ebc8718ebb5bf505d9bda83ab63741a545 25-Jan-2014 Colin Cross <ccross@android.com> frameworks/av: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH

LOCAL_MODULE_PATH doesn't work for multiarch builds, replace it
with LOCAL_MODULE_RELATIVE_PATH.

Change-Id: I4e4ceec61d026bbe74ba604554c06104bde42e5e
ownmix/Android.mk
oudness/Android.mk
vm/wrapper/Android.mk
reprocessing/Android.mk
roxy/Android.mk
estlibs/Android.mk_
isualizer/Android.mk
9803acb6b2c1b9c01444e0c8c0124adbe9a7157a 18-Dec-2013 synergy dev <synergye@codefi.re> libeffects: do not use GNU old-style field designators

Avoiding the use of GCC extensions improves code portability

Change-Id: I9edbedc5c8ad4aa46ca54bc2e28280441431a530
oudness/EffectLoudnessEnhancer.cpp
roxy/EffectProxy.cpp
5bf2560ce9b70bee077e0c264ac06648f0f63acc 22-Nov-2013 The Android Open Source Project <initial-contribution@android.com> Merge commit 'b2059ff384eee8ffb70a7ec8fc5570405201c734' into HEAD
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
ownmix/EffectDownmix.c
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
reprocessing/PreProcessing.cpp
isualizer/EffectVisualizer.cpp
385e7509eb563c983647e72b1232225c2200435f 04-Oct-2013 Eric Laurent <elaurent@google.com> fix offload audio effect proxy implementation uuid

The proxy implementation UUID should not be the NULL UUID as
AudioFlinger will reject effect creation if the AudioEffect
is constructed by passing the implementation UUID and not the
type UUID.

Bug: 11070481.

Change-Id: Ia9049d974e76303c5b63a607ee594b7dc1f182d4
roxy/EffectProxy.cpp
5d6d86a4d102704f49b9235eaf282c428d7100b6 20-Sep-2013 Eric Laurent <elaurent@google.com> fix oflload effect proxy commmand handling

Implement a more generic command handling in offload effect
proxy. All commands are sent to both sub effects but only the reply
from the active one is returned to the caller.

Bug: 8174034.
Change-Id: I28aa0f0d806e846332bc29801ee40d34e4ea0c43
roxy/EffectProxy.cpp
roxy/EffectProxy.h
eba9bf72fb5e036bb15ca4a1dc126883a2cb938d 28-Sep-2013 Eric Laurent <elaurent@google.com> fix command handling in effect offload proxy

Fix some issues in effect proxy related to handling of effect
commands to offloaded and non offloaded effects.

Also fixed a bug on capture index in software Visualizer effect.

Bug: 8174034.
Change-Id: I119458fea597cc3acbc0ef9ec315f67aa211cbd9
roxy/EffectProxy.cpp
faca05e96744dfaa2f352e3dbb29eead4e55cfa0 04-Jun-2013 jpadmana <jayashree.r.padmanaban@intel.com> Effect Offload Proxy for effects offload

Effect Proxy abstracts the sub effects to the upper layers.
It has the following functionalities:
- creation and release of sub effects
- routing the effect commands and process to the appropriate sub effect

Bug: 8174034.

Change-Id: Iec34b61104f0bbec4ef67c62f0710a5536dc325b
Signed-off-by: jpadmana <jayashree.r.padmanaban@intel.com>
ata/audio_effects.conf
roxy/Android.mk
roxy/EffectProxy.cpp
roxy/EffectProxy.h
2eab94f7dfd41a65e13aca379a1aed97447f8884 04-Jun-2013 jpadmana <jayashree.r.padmanaban@intel.com> Effects Factory changes for effects offload

audio_effects.conf - commented changes to illustrate the
addition of Proxy and sub effects to the conf file

Added an effectFactoryApi - EffectGetSubEffects for querying the
sub effect descriptors from the factory. This api is used by the Proxy
to get the sub effects

Added functions and data structures in factory code for
loading the sub effects

gSubEffectList - has the Proxies and their corresponding sub effects

- addSubEffect() - reads a sub effect node and adds to the gSubEffectList
- findSubEffect() - searches through the gSubEffectList to find a SubEffect

Bug: 8174034.

Change-Id: Id7f6aa67c41db370d32beaf43a979ba4ac925928
Signed-off-by: jpadmana <jayashree.r.padmanaban@intel.com>
ata/audio_effects.conf
actory/EffectsFactory.c
actory/EffectsFactory.h
83f400056ac913250f0926326ff78697c68d18a1 27-Sep-2013 Eric Laurent <elaurent@google.com> Revert "Effects Factory changes for effects offload"

This reverts commit 284c17e73bbff51cb5b1adcee98386d47733757a.

Change-Id: I31db21e1ad4758b21356bfe4c4c64f15b2da8737
ata/audio_effects.conf
actory/EffectsFactory.c
actory/EffectsFactory.h
5b8ce24b849f6cd5629b4ba508f7c78d6227d250 27-Sep-2013 Eric Laurent <elaurent@google.com> Revert "Effect Offload Proxy for effects offload"

This reverts commit 60c60df7db278d2fa5c90b0fa14f99a61d50272b.

Change-Id: Iafba9e02a9f3bfde6248d802e96c4e649686a87d
ata/audio_effects.conf
roxy/Android.mk
roxy/EffectProxy.cpp
roxy/EffectProxy.h
cd0c4683947231a7d3dc7811bedb75c5a965103c 26-Sep-2013 Jean-Michel Trivi <jmtrivi@google.com> LoudnessEnhancer compatible with stereo imaging

Use a single compressor for both channels.
Envelope of signal is determined by looking at both channels.

Bug 8413913

Change-Id: Ia9b6f34923d2977c60a3352500b858dfa1fab33c
oudness/EffectLoudnessEnhancer.cpp
oudness/dsp/core/dynamic_range_compression-inl.h
oudness/dsp/core/dynamic_range_compression.cpp
oudness/dsp/core/dynamic_range_compression.h
d2ac3144e201398340cc5b9bb36e5efe39edd9eb 25-Sep-2013 Jean-Michel Trivi <jmtrivi@google.com> Merge "Fix log typos in Visualizer effect" into klp-dev
6fbc9ef121b081f888163190bb13cbac31599900 25-Sep-2013 Jean-Michel Trivi <jmtrivi@google.com> Fix log typos in Visualizer effect

Fix errors in logs for Visualizer.
Set loop counters on 32 bits

Bug 8413913

Change-Id: Iad2140d003d15d45be46826a5e89baff14fe9e77
isualizer/EffectVisualizer.cpp
ddfbfaeb00295fff7351711f0f044f17d6c40f3c 20-Sep-2013 Eric Laurent <elaurent@google.com> fix oflload effect proxy commmand handling

Implement a more generic command handling in offload effect
proxy. All commands are sent to both sub effects but only the reply
from the active one is returned to the caller.

Bug: 8174034.
Change-Id: Ia45f9933b3bf338257ec70b37732fa1578d26b9f
roxy/EffectProxy.cpp
roxy/EffectProxy.h
09647d29eaf429ce88c9c9709ff63dee62f2147a 20-Sep-2013 Jean-Michel Trivi <jmtrivi@google.com> Add support for level measurements in Visualizer

New commands to set a measurement mode and perform peak + RMS
measurements.

Bug 8413913

Change-Id: Ib25254065c79d365ebb34f9dc9caa0490e2d300d
isualizer/EffectVisualizer.cpp
5baf2af52cd186633b7173196c1e4a4cd3435f22 13-Sep-2013 Eric Laurent <elaurent@google.com> more support for audio effect offload

Offloading of audio effects is now enabled for offloaded
output threads. If an effect not supporting offload is enabled,
the AudioTrack is invalidated so that it can be recreated in PCM
mode.

Fix some issues in effect proxy related to handling of effect
commands to offloaded and non offloaded effects.

Also fixed a bug on capture index in software Visualizer effect.

Bug: 8174034.

Change-Id: Ib23d3c2d5a652361b0aaec7faee09102f2b18fce
roxy/EffectProxy.cpp
isualizer/EffectVisualizer.cpp
6cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3c 10-Sep-2013 Jean-Michel Trivi <jmtrivi@google.com> LoudnessEnhancer audio effect implementation

Implementation based on DRC effect, controlled by a
target gain.
The target gain is used to amplify the signal at
the input of the DRC, and to compute the knee
of the DRC.

Bug 8413913

Change-Id: I386d64793a9fa3f7218e053d6f0a99f6836c02bd
ata/audio_effects.conf
oudness/Android.mk
oudness/EffectLoudnessEnhancer.cpp
oudness/MODULE_LICENSE_APACHE2
oudness/NOTICE
oudness/common/core/basic_types.h
oudness/common/core/byte_swapper.h
oudness/common/core/math.h
oudness/common/core/os.h
oudness/common/core/types.h
oudness/dsp/core/basic-inl.h
oudness/dsp/core/basic.h
oudness/dsp/core/dynamic_range_compression-inl.h
oudness/dsp/core/dynamic_range_compression.cpp
oudness/dsp/core/dynamic_range_compression.h
oudness/dsp/core/interpolation.h
oudness/dsp/core/interpolator_base-inl.h
oudness/dsp/core/interpolator_base.h
oudness/dsp/core/interpolator_linear.h
60c60df7db278d2fa5c90b0fa14f99a61d50272b 04-Jun-2013 jpadmana <rpadmanaban.jayashree@gmail.com> Effect Offload Proxy for effects offload

Effect Proxy abstracts the sub effects to the upper layers.
It has the following functionalities:
- creation and release of sub effects
- routing the effect commands and process to the appropriate sub effect

Bug: 8174034.

Change-Id: I22d8136636048e7fe8f8807cbc6e348ffa200a22
Signed-off-by: jpadmana <rpadmanaban.jayashree@gmail.com>
ata/audio_effects.conf
roxy/Android.mk
roxy/EffectProxy.cpp
roxy/EffectProxy.h
284c17e73bbff51cb5b1adcee98386d47733757a 04-Jun-2013 jpadmana <rpadmanaban.jayashree@gmail.com> Effects Factory changes for effects offload

audio_effects.conf - commented changes to illustrate the
addition of Proxy and sub effects to the conf file

Added an effectFactoryApi - EffectGetSubEffects for querying the
sub effect descriptors from the factory. This api is used by the Proxy
to get the sub effects

Added functions and data structures in factory code for
loading the sub effects

gSubEffectList - has the Proxies and their corresponding sub effects

- addSubEffect() - reads a sub effect node and adds to the gSubEffectList
- findSubEffect() - searches through the gSubEffectList to find a SubEffect

Bug: 8174034.

Change-Id: I25b0c62b2ad523a52337128b51469e628209ea3e
Signed-off-by: jpadmana <rpadmanaban.jayashree@gmail.com>
ata/audio_effects.conf
actory/EffectsFactory.c
actory/EffectsFactory.h
b7f08d386f2bddb8f3c87858f9204754b7fdb857 18-Jun-2013 Glenn Kasten <gkasten@google.com> Clean up references to AUDIO_FORMAT_PCM_8_24_BIT

Change-Id: I08771eb2664b7082561a40937218c7f4414e2cce
estlibs/AudioFormatAdapter.h
estlibs/EffectEqualizer.cpp
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
vm/wrapper/Bundle/EffectBundle.cpp
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
vm/wrapper/Reverb/EffectReverb.cpp
ecba7488c5cceaacef95836b1b476433451e7761 10-Apr-2013 Ying Wang <wangying@google.com> Add liblog

Bug: 8580410
Change-Id: If493d87d60d71be664ad75b140c62acadb75b0d0
ownmix/Android.mk
actory/Android.mk
reprocessing/Android.mk
isualizer/Android.mk
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
vm/wrapper/Bundle/EffectBundle.cpp
a93c8c9c89ba679cf312c7d082913121bb5543c2 10-Jan-2013 Chih-Wei Huang <cwhuang@linux.org.tw> Avoid a building error

&pDwmModule->config may equal to pConfig that triggers
a building error using gcc 4.7:

In file included from bionic/libc/include/signal.h:33:0,
from bionic/libc/include/sys/select.h:34,
from bionic/libc/include/unistd.h:34,
from system/core/include/cutils/log.h:34,
from frameworks/av/media/libeffects/downmix/EffectDownmix.c:19:
In function 'memcpy',
inlined from 'Downmix_Configure' at frameworks/av/media/libeffects/downmix/EffectDownmix.c:651:11,
inlined from 'Downmix_Init' at frameworks/av/media/libeffects/downmix/EffectDownmix.c:605:9,
inlined from 'DownmixLib_Create' at frameworks/av/media/libeffects/downmix/EffectDownmix.c:233:9:
bionic/libc/include/string.h:114:31: error: call to '__memcpy_overlap_error' declared with attribute error: memcpy called with overlapping regions

Change-Id: Ia6c4aab72e38d00d8d526f3b56fc03b6530b4e44
ownmix/EffectDownmix.c
480421bb48af5df4f15498845447f3fde20a4069 26-Oct-2012 Glenn Kasten <gkasten@google.com> Turn off executable bit on ordinary files

Change-Id: I0abea25b58fb1d03975bed9cca40f826fcd4c5e4
vm/wrapper/Reverb/EffectReverb.cpp
reprocessing/Android.mk
reprocessing/PreProcessing.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
ownmix/Android.mk
ownmix/EffectDownmix.c
vm/lib/Android.mk
vm/wrapper/Android.mk
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
reprocessing/Android.mk
reprocessing/PreProcessing.cpp
isualizer/Android.mk
isualizer/EffectVisualizer.cpp
6035cb5a61a7606cc8e4ecddec32b2eb37a9fd56 25-Oct-2012 Marco Nelissen <marcone@google.com> Switch to new fx library API

Change-Id: I6603aef5e3821a8f911e3f33ef8565d04bd1e2e5
ownmix/EffectDownmix.c
ownmix/EffectDownmix.h
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
reprocessing/PreProcessing.cpp
estlibs/EffectEqualizer.cpp
estlibs/EffectReverb.c
estlibs/EffectReverb.h
isualizer/EffectVisualizer.cpp
a4fe9a13c432afc5d1e94a4617b75e8f962540e9 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
vm/lib/Bass/src/LVDBE_Init.c
vm/lib/Eq/src/LVEQNB_Init.c
vm/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
vm/lib/Bass/src/LVDBE_Init.c
vm/lib/Eq/src/LVEQNB_Init.c
vm/wrapper/Bundle/EffectBundle.cpp
c5cd686a83c6ea65a68d98023d5527fe4373d4e4 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
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
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
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
8a9e791c0642084c1c6e758b7887b274392f5bb0 11-Sep-2012 Eric Laurent <elaurent@google.com> Merge "Limit maximum equalizer gain." into jb-mr1-dev
fa030e2bde158d357ea92eb10f2206ca76eb7e04 11-Sep-2012 Eric Laurent <elaurent@google.com> Merge "Limit maximum equalizer gain." into jb-mr1-dev
1b6c677c4bad5c1aea4f01277cf5aa234ad4cab4 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
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
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
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2 08-Sep-2012 Eric Laurent <elaurent@google.com> audio effects: no audio preprocessing by default

The audio preprocessings are not included in the default
audio_effect.conf file anymore as the audio HAL has to provide
support for them.

Each product implementing one or more audio pre processing must
provide a specific audio_effects.conf file.

Change-Id: I3b2f636f7a8748829798d4b9057d269db9424d62
ata/audio_effects.conf
c39b9c2305e4527d3caef4cfd3e8f3b574151597 08-Sep-2012 Eric Laurent <elaurent@google.com> audio effects: no audio preprocessing by default

The audio preprocessings are not included in the default
audio_effect.conf file anymore as the audio HAL has to provide
support for them.

Each product implementing one or more audio pre processing must
provide a specific audio_effects.conf file.

Change-Id: I3b2f636f7a8748829798d4b9057d269db9424d62
ata/audio_effects.conf
5e54e0898a0110642df126238227eca150f2654a 08-Sep-2012 Eric Laurent <elaurent@google.com> Merge "Fix headroom management in equalizer" into jb-mr1-dev
d280f6ff11e110b7435e6e6c7a4075285a76bab6 08-Sep-2012 Eric Laurent <elaurent@google.com> Merge "Fix headroom management in equalizer" into jb-mr1-dev
f6c7a40f8cbbd2fa1a4131ef91b30cf7c5c2d0d7 08-Sep-2012 Eric Laurent <elaurent@google.com> Fix headroom management in equalizer

Fix a bug resetting the headroom parameters when
calling the bundle process function for the first time.

Change-Id: Ie05f97606f415954340ff2a4e48cd7b0a97a063b
vm/lib/Bundle/src/LVM_Init.c
aa1c402d4ed471dfd0863f73f40a776be258419e 08-Sep-2012 Eric Laurent <elaurent@google.com> Fix headroom management in equalizer

Fix a bug resetting the headroom parameters when
calling the bundle process function for the first time.

Change-Id: Ie05f97606f415954340ff2a4e48cd7b0a97a063b
vm/lib/Bundle/src/LVM_Init.c
f1c04f952916cf70407051c9f824ab84fb2b6e09 28-Aug-2012 Eric Laurent <elaurent@google.com> audioflinger: changes for new audio devices enums

The ThreadBase class now has a separate member for input
and output devices (mInDevice, mOutDevice).

Only query get_supported_devices() from audio HAL if the function
is exposed and if the audio policy manager did not specify the
audio module to open.

Also fixed bug in AEC preprocessing that would reset
to default output device when an input device was given.

Change-Id: I19d4d06aeb920b068e3ef31e6e6be6345ce5d67a
reprocessing/PreProcessing.cpp
8895925e38d2521607fd2010f3f3b14ecd15962c 28-Aug-2012 Eric Laurent <elaurent@google.com> audioflinger: changes for new audio devices enums

The ThreadBase class now has a separate member for input
and output devices (mInDevice, mOutDevice).

Only query get_supported_devices() from audio HAL if the function
is exposed and if the audio policy manager did not specify the
audio module to open.

Also fixed bug in AEC preprocessing that would reset
to default output device when an input device was given.

Change-Id: I19d4d06aeb920b068e3ef31e6e6be6345ce5d67a
reprocessing/PreProcessing.cpp
cba53fbdaa723322f7157a4890feab776beae13e 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
vm/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
vm/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
vm/lib/Bundle/src/LVM_Init.c
vm/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
actory/EffectsFactory.c
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
reprocessing/PreProcessing.cpp
estlibs/EffectEqualizer.cpp
estlibs/EffectReverb.c
isualizer/EffectVisualizer.cpp
3d51d5cb53cc630709a0ba78d0e60501a675f2d5 13-Jun-2012 James Dong <jdong@google.com> Add NOTICE and MODULE_LICENSE_APACH2 to libs build under /frameworks/av/

Change-Id: I0a3af3e2abdedebd5934f3d941d01c32cfc75e26
related-to-bug: 6647465
ownmix/MODULE_LICENSE_APACHE2
ownmix/NOTICE
vm/lib/MODULE_LICENSE_APACHE2
vm/lib/NOTICE
vm/wrapper/MODULE_LICENSE_APACHE2
vm/wrapper/NOTICE
reprocessing/MODULE_LICENSE_APACHE2
reprocessing/NOTICE
estlibs/MODULE_LICENSE_APACHE2
estlibs/NOTICE
isualizer/MODULE_LICENSE_APACHE2
isualizer/NOTICE
f06c2ed50e1db871ae9eb2bd15a196064f8c278c 06-Jun-2012 Marco Nelissen <marcone@google.com> Take latency and current time into account for visualization

Buffer more data, and return the data that is currently being
output from the audio output, to ensure that visualizations are
smooth and responsive even when the audio output has a large
latency and/or large buffers.
b/6522728

Change-Id: I401637f01be7600b3c594a55c869036c13b206c0
isualizer/EffectVisualizer.cpp
aea2715e65994e665a3732551880419ba1cecc0d 24-May-2012 Jean-Michel Trivi <jmtrivi@google.com> Prevent occurences of clipping in loud downmixed scenes

The downmixer effect is a mixer, wich, like the platform mixer,
hard-clips. To prevent clipping during loud scenes across multiple
chanels, apply a fixed attenuation on the result of the downmix.
Note that this attenuation is lower the theoretical required
attenuation (except for quad and surround) but is adequate for
most content.

Bug 4280902
Change-Id: Iec520e9f1367284d6102633f532429361717692d
ownmix/EffectDownmix.c
6895deeecc8797e6f5b28e7d07ec6bc499355c0c 16-May-2012 Jean-Michel Trivi <jmtrivi@google.com> Stereo downmixer supports generic configurations. Fix 7.1 downmix

Added a generic downmixer to stereo function to handle the
multichannel configurations not supported by the dedicated
downmix functions.
It first verifies the mask is supported, and then derives
channel indices for the downmix.
Added support for forcing the generic downmixer to be always
used instead of the format-specific functions (define
DOWNMIX_ALWAYS_USE_GENERIC_DOWNMIXER to force it).

Fixed 7.1 downmix function where handling of accumulate vs
overwrite was inversed.

Bug 4280902

Change-Id: I8259b32c4e90f76ef4dcd803592fc71df4ae90c5
ownmix/EffectDownmix.c
ownmix/EffectDownmix.h
db46b48d24e03f5bcb8de6d0ff852ec4153401e7 23-Apr-2012 Jean-Michel Trivi <jmtrivi@google.com> Downmix support for 5.1 and quad with side channels

In DOWNMIX_TYPE_FOLD mode, add support for variants of quad and
5.1 channel masks where the "side" channels are used instead of
the "back" channels. These variants have the same channel order,
so they can share the same downmix function.

Change-Id: I5f9cb7cb120927189de680c2a968d6136dc1fc43
ownmix/EffectDownmix.c
fd9e14bc28f377065e43ec6833d754ca151b3941 19-Apr-2012 Jean-Michel Trivi <jmtrivi@google.com> Merge "Turn off debug in downmix effect"
f28c8792f64e10c3c477d86bf4804a8566ff524e 19-Apr-2012 Jean-Michel Trivi <jmtrivi@google.com> Turn off debug in downmix effect

Change-Id: I4eda43166d23b3297cf769056a6db720401799aa
ownmix/EffectDownmix.c
3476de62fb10e76412452ef4c6bd71936c9f7db1 16-Apr-2012 Jean-Michel Trivi <jmtrivi@google.com> Add support for scaling mode parameter

Support VISUALIZER_PARAM__SCALING_MODE parameter.

Modify process() function to use new volume scaling parameter,
used to set whether captured values are maximized by current
headroom in the buffer (default existing behaviora) or left
as is and thus affected by volume.

Modify AudioEffect to allow subclasses to override the following
events: control status changed, enable status changed, command
executed.
In Visualizer class (a subclass of AudioEffect), reset the
scaling mode and capture size on the actual effect
as cached when control is regained.
This will allow the effect to be properly
configured whenever Visualizers with different scaling
modes or capture sizes are released (e.g. from java
release() method).

Change-Id: I05cb9f925a296dceca91bafa9fe294ef2b2c2bd5
isualizer/EffectVisualizer.cpp
3f9c84c0a5af83fceb8669390e2d71b75ec7b550 04-Apr-2012 Eric Laurent <elaurent@google.com> audio pre processing: test code for dual mic

Added functional test code to validate effect API for
multi mic simplementations.

Also fixed warning in AudioFlinger.

Change-Id: I07be4d2e4d17791d3626c804ba3e9f87ff26d05a
reprocessing/PreProcessing.cpp
7d5b26230a179cd7bcc01f6578cd80d8c15a92a5 05-Apr-2012 Jean-Michel Trivi <jmtrivi@google.com> AudioMixer uses downmix effect for multichannel content

In the AudioMixer structure associated with each track, add an object
that acts as the buffer provider when the track has more than two
channels of input in the mixer. This object, DownmixerBufferProvider,
gets audio from the actual buffer provider of the track, and applies
a downmix effect on it.
The downmix effect is created and configured when the track gets
created in AudioFlinger, which causes AudioMixer::getTrackName()
to be called with the new track's channel mask. It is released
when the track is disabled in the mixer.

Change-Id: I05281ed5f61bef663a8af7ca7d5ceac3517c82db
ata/audio_effects.conf
ownmix/EffectDownmix.c
183dc7772d7eba127aab63829c7ca0359d817593 23-Mar-2012 Eric Laurent <elaurent@google.com> fix visualizer inactivity detection

Current method implemented by the visualizer to detect that audioflinger has
stopped providing audio buffers does not work if the application
reads pcm captures too fast.

The fix consist in implementing a method based on real time measurement only.
One drawback is that the new method makes use of system calls that add some
overhead to the process and capture functions.

Change-Id: I53bd596b856f1cc7f0f47e08413af3335227100b
isualizer/EffectVisualizer.cpp
17a736c3e1d062d7fc916329eb32aef8935614af 14-Feb-2012 Glenn Kasten <gkasten@google.com> Update comments

Change-Id: I327663a020670d0a72ff57bd0b682e2ce0528650
vm/wrapper/Bundle/EffectBundle.cpp
ab334fd351ae5a0e18903da123d63e565b536874 14-Mar-2012 Glenn Kasten <gkasten@google.com> audio_channel_in/out_mask_from_count

and avoid ambiguous term "channels" where it might be confusing
as to whether it is a channel mask or channel count

Change-Id: I744fa08ccb6001a98c97bd638d2c9d56836c4234
reprocessing/PreProcessing.cpp
33b383948e8f270bff30378476f00dce289004eb 13-Mar-2012 Glenn Kasten <gkasten@google.com> Remove dependency on audio_* location

Change-Id: I4bc66115fcb9ba22b057bd72db3f561dcb18a0d8
ownmix/Android.mk
actory/Android.mk
vm/wrapper/Android.mk
reprocessing/Android.mk
estlibs/Android.mk_
isualizer/Android.mk
b4d307481960b6b348fae4b4e8edefd003c3d36c 13-Mar-2012 Glenn Kasten <gkasten@google.com> Use correct syntax for #include <> ""

Change-Id: I943137108668ae66f8eba18dafe069a7951bcd8f
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
04c1e531b5913c09aa9b2e59e2b8ed9b4d8a4cba 02-Mar-2012 Jean-Michel Trivi <jmtrivi@google.com> Effect for multichannel PCM downmix to stereo

First pass at implementing an audio effect whose role is to
downmix multichannel PCM buffers to stereo.
The effect is not handling volume changes.
The effect code here handles quad, 4.0, 5.1 and 7.1 input configurations,
to optimize the most commom configurations, and does not yet handle
generic multichanel configurations.

Change-Id: I74d04bd961348f3f0e4ae7714b70e620808a0829
ownmix/Android.mk
ownmix/EffectDownmix.c
ownmix/EffectDownmix.h
e7c795f3300814aa3f26ceb845f29695383c7edc 02-Mar-2012 Jean-Michel Trivi <jmtrivi@google.com> Correct GUID errors in audio effect configuration

Correct erroneous spaces that were present in some audio effect GUIDs.

Change-Id: Ide3a1552b2f8976f96ee980f1341f935555656d9
ata/audio_effects.conf
76533e94500e5d221ec4a1a5d9c97ea3d75860e4 18-Feb-2012 Eric Laurent <elaurent@google.com> audio preprocessing: fix multiple enable problem

Do not set the effect state back to configured when a configuration
command is received while the effect is enabled. Instead just check that
the new config is the same as current config.

It is normal to receive a config command from the framework while enabled
if a new effect is added on the same session.

Change-Id: I93aa38bf60a3d7cc7729934e87ddd69bf1112cd6
reprocessing/PreProcessing.cpp
1f5ce8b0941c9c6baadd40d151634145f6d5a35c 13-Feb-2012 Eric Laurent <elaurent@google.com> Merge "Fix audio preprocessing library wrapper"
5e92a7861196ddae14638d4b7a63fc4892b7ef59 30-Jan-2012 Glenn Kasten <gkasten@google.com> Effect UUID inputs passed by pointer are const

Change-Id: I1f5c338bcb7368e3dd8cd5f804b2e6d9fbe087f8
actory/EffectsFactory.c
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
reprocessing/PreProcessing.cpp
estlibs/EffectEqualizer.cpp
estlibs/EffectReverb.c
estlibs/EffectReverb.h
isualizer/EffectVisualizer.cpp
94fef38613962c983c46ab0b97c58f5373412d2d 06-Feb-2012 Eric Laurent <elaurent@google.com> Fix audio preprocessing library wrapper

Fixed bug in EFFECT_CMD_GET_CONFIG command handler in
webRTC audio processing library wrapper.

Change-Id: I1d2cefa00930e549607af8dc2cf27555da8d313f
reprocessing/PreProcessing.cpp
5387696d25bc710f8cd0e6d08079e2aa8d6c1417 31-Jan-2012 Eric Laurent <elaurent@google.com> modifications for new webrtc modules

Adapt include files path in makefile and source to new
directory structure in webrtc library.

Also changed the default AGC parameters to less extreme settings.

Change-Id: Ia6a41c816dc44645f8f867937b722eede88c06ea
reprocessing/Android.mk
reprocessing/PreProcessing.cpp
29357bc2c0dd7c43ad3bd0c8e3efa4e6fd9bfd47 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

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

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
reprocessing/PreProcessing.cpp
5ff1dd576bb93c45b44088a51544a18fc43ebf58 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/157065

Bug: 5449033
Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
actory/EffectsFactory.c
reprocessing/PreProcessing.cpp
estlibs/EffectEqualizer.cpp
estlibs/EffectReverb.c
isualizer/EffectVisualizer.cpp
f6b1678f8f508b447155a81b44e214475ab634a8 15-Dec-2011 Glenn Kasten <gkasten@google.com> Use the standard CC_LIKELY and CC_UNLIKELY macros

Several source files privately defined macros LIKELY and UNLIKELY in terms
of __builtin_expect. But <cutils/compiler.h> already has CC_LIKELY and
CC_UNLIKELY which are intended for this purpose. So rename the private
uses to use the standard names.

In addition, AudioFlinger was relying on the macro expanding to extra ( ).

Change-Id: I2494e087a0c0cac0ac998335f5e9c8ad02955873
estlibs/AudioBiquadFilter.cpp
estlibs/AudioCoefInterpolator.cpp
estlibs/AudioCommon.h
estlibs/AudioPeakingFilter.cpp
estlibs/AudioShelvingFilter.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
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
reprocessing/PreProcessing.cpp
estlibs/EffectEqualizer.cpp
estlibs/EffectReverb.c
estlibs/EffectReverb.h
isualizer/EffectVisualizer.cpp
73bb0b9f2922679d057e29e9f502988178554a02 11-Nov-2011 Eric Laurent <elaurent@google.com> am 2c29a5cf: am 1f8c6212: Merge "visualizer: reset buffer if playback is idle" into ics-mr1

* commit '2c29a5cf1658532bca4e34f816fa30312241a336':
visualizer: reset buffer if playback is idle
3df40a093d8d3d211f693e0e3ef4076750cabfea 10-Nov-2011 Eric Laurent <elaurent@google.com> visualizer: reset buffer if playback is idle

Visualizer capture buffer must be reset if audio framework has stopped
calling process for a given period of time to get read of residual
data from previous captures.

Issue 5571920.

Change-Id: I6e73f971bb812cdbb2979a3b5e763abab07634eb
isualizer/EffectVisualizer.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
vm/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
vm/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
actory/EffectsFactory.c
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
reprocessing/PreProcessing.cpp
estlibs/AudioEqualizer.cpp
estlibs/EffectEqualizer.cpp
estlibs/EffectReverb.c
isualizer/EffectVisualizer.cpp
7c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745 18-Jun-2011 Eric Laurent <elaurent@google.com> Audio framework: support for audio pre processing

Audio effect framework is extended to suport effects on
output and input audio path.

AudioFlinger: Support for audio effects and effect chains is
moved from PlaybackThread class to ThreadBase class so that
RecordThread can manage effects.
Effects of type pre processing are allowed on record thread
only. When a pre processing is enabled, the effect interface handle is
passed down to the input stream so that the audio HAL can call the
process function. The record thread loop calls the effect chain process
function that will only manage the effect state and commands and skip the
process function.

AudioRecord: The audio session is allocated before calling getInput() into
audio policy serice so that the session is known before the input theead is
created and pre processings can be created on the correct session.

AudioPolicyService: default pre processing for a given input source are
loaded from audio_effects.conf file.
When an input is created, corresponding effects are created and enabled.

Change-Id: Id17119e0979b4dcf189b5c7957fec30dc3478790
ata/audio_effects.conf
actory/Android.mk
actory/EffectsFactory.c
actory/EffectsFactory.h
a9390d4d571817cdb1d659b4b22b04130dc77a48 18-Jun-2011 Eric Laurent <elaurent@google.com> Audio preprocessing wrapper for webrtc.

This wrapper implements the interworking layer between the audio effect
interface defined by the effect framework for audio preprocessing
and the native interface of webrtc audio processing module.

Change-Id: I3f9319730c102599cdf0dda520a53d90b4165114
reprocessing/Android.mk
reprocessing/PreProcessing.cpp
63b96e48deb0a4c5b594693922bd9101ffc3ef93 12-Jul-2011 Jeff Brown <jeffbrown@google.com> Merge "Remove the simulator target from all makefiles. Bug: 5010576"
5e0067b486c3862316aa1f293cf9690c0cf54bda 12-Jul-2011 Jeff Brown <jeffbrown@google.com> Remove the simulator target from all makefiles.
Bug: 5010576

Change-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8
actory/Android.mk
vm/wrapper/Android.mk
isualizer/Android.mk
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
actory/EffectsFactory.c
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
estlibs/EffectEqualizer.cpp
estlibs/EffectReverb.c
isualizer/EffectVisualizer.cpp
6d8b694d999e9be7d5dcc336535832a80fb6f61f 24-Jun-2011 Eric Laurent <elaurent@google.com> Moved and renamed effect API header files

Moved specific effect header files to
system/media/audio_effects/include/audio_effects
and renamed to lower case (effect_xxx.h).

Change-Id: Icfc2264bfd013cab0395d7e310ada636b9fe3621
vm/wrapper/Android.mk
vm/wrapper/Bundle/EffectBundle.h
vm/wrapper/Reverb/EffectReverb.h
estlibs/Android.mk_
estlibs/EffectEqualizer.cpp
estlibs/EffectReverb.h
isualizer/Android.mk
isualizer/EffectVisualizer.cpp
342484f01824ab45af953c7c9193b1e5ad6326de 17-Jun-2011 Eric Laurent <elaurent@google.com> Fix regression in audio effect factory

commit 0fb66c2 introduced a bug in EffectCreate() that prevents detection
of problems reported by the engine library upon effect creation.

Change-Id: I5bd2d42505ac29ab4a5768fd7f0c2ced135cf3e3
actory/EffectsFactory.c
65580f9adf6c4d98449ad0716488f9fe3869aa5a 28-May-2011 Eric Laurent <elaurent@google.com> Removed interface to load audio effects libraries

Removed unused functions allowing dynamic loading of audio effects libraries
from effects factory API.

Change-Id: I06cc5a51dc10aca87c7a8687bbb874babd711eca
actory/EffectsFactory.c
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
ata/audio_effects.conf
actory/EffectsFactory.c
actory/EffectsFactory.h
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
estlibs/Android.mk_
estlibs/AudioFormatAdapter.h
estlibs/EffectEqualizer.cpp
estlibs/EffectReverb.c
estlibs/EffectReverb.h
isualizer/EffectVisualizer.cpp
9691a73139bb36c5bf294ed13eedcb04d7f05320 14-Mar-2011 Iliyan Malchev <malchev@google.com> frameworks/base: remove LOCAL_PRELINK_MODULE

Change-Id: I54dd62ebef47e7690afa5a858f3cad941b135481
Signed-off-by: Iliyan Malchev <malchev@google.com>
vm/lib/Android.mk
vm/wrapper/Android.mk
isualizer/Android.mk
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
vm/wrapper/Bundle/EffectBundle.cpp
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
vm/wrapper/Reverb/EffectReverb.cpp
c8b3ca3caf7edc08d652937d29724ae7a496655a 27-Oct-2010 Marco Nelissen <marcone@google.com> am cd08ada7: am 67c7a4ae: Merge "Fix off-by-two and other bugs in the visualization code. b/3137511" into gingerbread
64c3bdea8cba454d4404baded584ea0f0611b3ee 27-Oct-2010 Marco Nelissen <marcone@google.com> Fix off-by-two and other bugs in the visualization code.
b/3137511

Change-Id: Ic431701e93c025bc417c9742e9af6bb2350c7dd6
isualizer/EffectVisualizer.cpp
9e2e2d2bc86372bde4673c31ef416b2f29d87ac2 29-Sep-2010 Eric Laurent <elaurent@google.com> am b047e3cd: am aeb2c62e: Merge "Fix several audio effects problems." into gingerbread

Merge commit 'b047e3cdf24b32e26f366fcd4cd0eee8ae6c592c'

* commit 'b047e3cdf24b32e26f366fcd4cd0eee8ae6c592c':
Fix several audio effects problems.
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
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
c425ffbfdca80c663b16a875228c15a1147a75f4 27-Sep-2010 Eric Laurent <elaurent@google.com> am 1b37df95: am 9627847d: Merge "Fix error in AudioEffect command status reporting." into gingerbread

Merge commit '1b37df95ec9d03aaa5f4055c6cd86db42f9c9727'

* commit '1b37df95ec9d03aaa5f4055c6cd86db42f9c9727':
Fix error in AudioEffect command status reporting.
0fa449cc475580d995e9d56756c3da5507d2b6f6 24-Sep-2010 Eric Laurent <elaurent@google.com> Fix error in AudioEffect command status reporting.

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
isualizer/EffectVisualizer.cpp
a4d13a5419af68fe5adb521e265f8c80c4e760b1 22-Sep-2010 Eric Laurent <elaurent@google.com> am 6943b94b: am a6dc4699: Merge "Fix issue 2913071." into gingerbread

Merge commit '6943b94b8f267c83060946bae0961efc30444dee'

* commit '6943b94b8f267c83060946bae0961efc30444dee':
Fix issue 2913071.
0e75f0f0147baeb6277c3dcc4403cf0201155a99 21-Sep-2010 Eric Laurent <elaurent@google.com> Fix issue 2913071.

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
isualizer/EffectVisualizer.cpp
5a0beab037fa8fd630c4c3290c8bbf410a51596a 16-Sep-2010 Eric Laurent <elaurent@google.com> am d32d3011: am 37de5da0: Merge "Fix problem in lvm effect bundle wrapper" into gingerbread

Merge commit 'd32d30119bd0c0988a6806f1205db5426235af52'

* commit 'd32d30119bd0c0988a6806f1205db5426235af52':
Fix problem in lvm effect bundle wrapper
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
vm/wrapper/Bundle/EffectBundle.cpp
d20b4cfde2848052cf93ed13df14d75347ec64fd 13-Sep-2010 Eric Laurent <elaurent@google.com> am 4d987850: am bd2e9ec6: Merge "Fix volume problems with insert revert" into gingerbread

Merge commit '4d9878502f7661ed34540a485a5942d859e209c7'

* commit '4d9878502f7661ed34540a485a5942d859e209c7':
Fix volume problems with insert revert
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
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
vm/wrapper/Reverb/EffectReverb.cpp
275c732cd79a40617773636086b287901f8d4485 10-Sep-2010 Eric Laurent <elaurent@google.com> am ea4680f0: am 2814ad25: Merge "LVM release 1.09 delivery" into gingerbread

Merge commit 'ea4680f007c9fbc1ff73a6b161e6e83ebaeff981'

* commit 'ea4680f007c9fbc1ff73a6b161e6e83ebaeff981':
LVM release 1.09 delivery
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
vm/lib/Bass/src/LVDBE_Private.h
vm/lib/Reverb/src/LVREV_ApplyNewSettings.c
vm/lib/Reverb/src/LVREV_Process.c
vm/wrapper/Reverb/EffectReverb.cpp
87e607994fa1703e1b975af41b02e539e7b7411f 09-Sep-2010 Eric Laurent <elaurent@google.com> am e126119c: am 95d86480: Merge "Modify type of some environmental reverb parameters" into gingerbread

Merge commit 'e126119c3a406bc564f2549aeb1416aff112689d'

* commit 'e126119c3a406bc564f2549aeb1416aff112689d':
Modify type of some environmental reverb parameters
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
vm/wrapper/Reverb/EffectReverb.cpp
4d3f97efda864ca571047edd5239fc8275ea37c4 04-Sep-2010 Eric Laurent <elaurent@google.com> am ef9e508c: am 7e427934: Merge "LVM release 1.08 delivery." into gingerbread

Merge commit 'ef9e508c2cb3b52d31250ceca3dddace17cec950'

* commit 'ef9e508c2cb3b52d31250ceca3dddace17cec950':
LVM release 1.08 delivery.
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
vm/lib/Reverb/src/LVREV_ApplyNewSettings.c
vm/lib/Reverb/src/LVREV_GetInstanceHandle.c
vm/lib/StereoWidening/src/LVCS_Control.c
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
1040127473ee48c1c3b8c279ae05d38dbfb6e4c2 01-Sep-2010 Eric Laurent <elaurent@google.com> am 55e79374: am f560ceab: Merge "Audio Effects: fix problems in volume control." into gingerbread

Merge commit '55e7937462d107b469a58651d3d51e15086f8e9e'

* commit '55e7937462d107b469a58651d3d51e15086f8e9e':
Audio Effects: fix problems in volume control.
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
vm/wrapper/Bundle/EffectBundle.cpp
d3a3eaf5d0c88e13b8dc7154fcae8b15dcacc932 30-Aug-2010 Eric Laurent <elaurent@google.com> am 5762dc19: am 858bb4f6: Merge "LVM release 1.07 delivery." into gingerbread

Merge commit '5762dc19836e332d3ac1906e5698088a128b362d'

* commit '5762dc19836e332d3ac1906e5698088a128b362d':
LVM release 1.07 delivery.
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
vm/lib/Bass/lib/LVDBE.h
vm/lib/Bass/src/LVDBE_Coeffs.h
vm/lib/Bass/src/LVDBE_Control.c
vm/lib/Bass/src/LVDBE_Init.c
vm/lib/Bass/src/LVDBE_Private.h
vm/lib/Bass/src/LVDBE_Process.c
vm/lib/Bass/src/LVDBE_Tables.c
vm/lib/Bass/src/LVDBE_Tables.h
vm/lib/Bundle/lib/LVM.h
vm/lib/Bundle/src/LVM_API_Specials.c
vm/lib/Bundle/src/LVM_Buffers.c
vm/lib/Bundle/src/LVM_Coeffs.h
vm/lib/Bundle/src/LVM_Control.c
vm/lib/Bundle/src/LVM_Init.c
vm/lib/Bundle/src/LVM_Private.h
vm/lib/Bundle/src/LVM_Process.c
vm/lib/Bundle/src/LVM_Tables.c
vm/lib/Bundle/src/LVM_Tables.h
vm/lib/Common/lib/AGC.h
vm/lib/Common/lib/BIQUAD.h
vm/lib/Common/lib/CompLim.h
vm/lib/Common/lib/Filter.h
vm/lib/Common/lib/InstAlloc.h
vm/lib/Common/lib/LVM_Common.h
vm/lib/Common/lib/LVM_Macros.h
vm/lib/Common/lib/LVM_Timer.h
vm/lib/Common/lib/LVM_Types.h
vm/lib/Common/lib/Mixer.h
vm/lib/Common/lib/ScalarArithmetic.h
vm/lib/Common/lib/VectorArithmetic.h
vm/lib/Common/src/AGC_MIX_VOL_2St1Mon_D32_WRA.c
vm/lib/Common/src/Abs_32.c
vm/lib/Common/src/Add2_Sat_16x16.c
vm/lib/Common/src/Add2_Sat_32x32.c
vm/lib/Common/src/BP_1I_D16F16C14_TRC_WRA_01.c
vm/lib/Common/src/BP_1I_D16F16Css_TRC_WRA_01_Init.c
vm/lib/Common/src/BP_1I_D16F16Css_TRC_WRA_01_Private.h
vm/lib/Common/src/BP_1I_D16F32C30_TRC_WRA_01.c
vm/lib/Common/src/BP_1I_D16F32Cll_TRC_WRA_01_Init.c
vm/lib/Common/src/BP_1I_D16F32Cll_TRC_WRA_01_Private.h
vm/lib/Common/src/BP_1I_D32F32C30_TRC_WRA_02.c
vm/lib/Common/src/BP_1I_D32F32Cll_TRC_WRA_02_Init.c
vm/lib/Common/src/BP_1I_D32F32Cll_TRC_WRA_02_Private.h
vm/lib/Common/src/BQ_1I_D16F16C15_TRC_WRA_01.c
vm/lib/Common/src/BQ_1I_D16F16Css_TRC_WRA_01_Init.c
vm/lib/Common/src/BQ_1I_D16F16Css_TRC_WRA_01_Private.h
vm/lib/Common/src/BQ_1I_D16F32C14_TRC_WRA_01.c
vm/lib/Common/src/BQ_1I_D16F32Css_TRC_WRA_01_Private.h
vm/lib/Common/src/BQ_1I_D16F32Css_TRC_WRA_01_init.c
vm/lib/Common/src/BQ_2I_D16F16C14_TRC_WRA_01.c
vm/lib/Common/src/BQ_2I_D16F16C15_TRC_WRA_01.c
vm/lib/Common/src/BQ_2I_D16F16Css_TRC_WRA_01_Init.c
vm/lib/Common/src/BQ_2I_D16F16Css_TRC_WRA_01_Private.h
vm/lib/Common/src/BQ_2I_D16F32C13_TRC_WRA_01.c
vm/lib/Common/src/BQ_2I_D16F32C14_TRC_WRA_01.c
vm/lib/Common/src/BQ_2I_D16F32C15_TRC_WRA_01.c
vm/lib/Common/src/BQ_2I_D16F32Css_TRC_WRA_01_Private.h
vm/lib/Common/src/BQ_2I_D16F32Css_TRC_WRA_01_init.c
vm/lib/Common/src/BQ_2I_D32F32C30_TRC_WRA_01.c
vm/lib/Common/src/BQ_2I_D32F32Cll_TRC_WRA_01_Init.c
vm/lib/Common/src/BQ_2I_D32F32Cll_TRC_WRA_01_Private.h
vm/lib/Common/src/CompLim_private.h
vm/lib/Common/src/Copy_16.c
vm/lib/Common/src/Core_MixHard_2St_D32C31_SAT.c
vm/lib/Common/src/Core_MixInSoft_D32C31_SAT.c
vm/lib/Common/src/Core_MixSoft_1St_D32C31_WRA.c
vm/lib/Common/src/DC_2I_D16_TRC_WRA_01.c
vm/lib/Common/src/DC_2I_D16_TRC_WRA_01_Init.c
vm/lib/Common/src/DC_2I_D16_TRC_WRA_01_Private.h
vm/lib/Common/src/DelayAllPass_Sat_32x16To32.c
vm/lib/Common/src/DelayMix_16x16.c
vm/lib/Common/src/DelayWrite_32.c
vm/lib/Common/src/FO_1I_D16F16C15_TRC_WRA_01.c
vm/lib/Common/src/FO_1I_D16F16Css_TRC_WRA_01_Init.c
vm/lib/Common/src/FO_1I_D16F16Css_TRC_WRA_01_Private.h
vm/lib/Common/src/FO_1I_D32F32C31_TRC_WRA_01.c
vm/lib/Common/src/FO_1I_D32F32Cll_TRC_WRA_01_Init.c
vm/lib/Common/src/FO_1I_D32F32Cll_TRC_WRA_01_Private.h
vm/lib/Common/src/FO_2I_D16F32C15_LShx_TRC_WRA_01.c
vm/lib/Common/src/FO_2I_D16F32Css_LShx_TRC_WRA_01_Init.c
vm/lib/Common/src/FO_2I_D16F32Css_LShx_TRC_WRA_01_Private.h
vm/lib/Common/src/Filters.h
vm/lib/Common/src/From2iToMS_16x16.c
vm/lib/Common/src/From2iToMono_16.c
vm/lib/Common/src/From2iToMono_32.c
vm/lib/Common/src/InstAlloc.c
vm/lib/Common/src/Int16LShiftToInt32_16x32.c
vm/lib/Common/src/Int32RShiftToInt16_Sat_32x16.c
vm/lib/Common/src/JoinTo2i_32x32.c
vm/lib/Common/src/LVC_Core_MixHard_1St_2i_D16C31_SAT.c
vm/lib/Common/src/LVC_Core_MixHard_2St_D16C31_SAT.c
vm/lib/Common/src/LVC_Core_MixInSoft_D16C31_SAT.c
vm/lib/Common/src/LVC_Core_MixSoft_1St_2i_D16C31_WRA.c
vm/lib/Common/src/LVC_Core_MixSoft_1St_D16C31_WRA.c
vm/lib/Common/src/LVC_MixInSoft_D16C31_SAT.c
vm/lib/Common/src/LVC_MixSoft_1St_2i_D16C31_SAT.c
vm/lib/Common/src/LVC_MixSoft_1St_D16C31_SAT.c
vm/lib/Common/src/LVC_MixSoft_2St_D16C31_SAT.c
vm/lib/Common/src/LVC_Mixer.h
vm/lib/Common/src/LVC_Mixer_GetCurrent.c
vm/lib/Common/src/LVC_Mixer_GetTarget.c
vm/lib/Common/src/LVC_Mixer_Init.c
vm/lib/Common/src/LVC_Mixer_Private.h
vm/lib/Common/src/LVC_Mixer_SetTarget.c
vm/lib/Common/src/LVC_Mixer_SetTimeConstant.c
vm/lib/Common/src/LVC_Mixer_VarSlope_SetTimeConstant.c
vm/lib/Common/src/LVM_FO_HPF.c
vm/lib/Common/src/LVM_FO_LPF.c
vm/lib/Common/src/LVM_GetOmega.c
vm/lib/Common/src/LVM_Mixer_FilterCoeffs.h
vm/lib/Common/src/LVM_Mixer_TimeConstant.c
vm/lib/Common/src/LVM_Polynomial.c
vm/lib/Common/src/LVM_Power10.c
vm/lib/Common/src/LVM_Timer.c
vm/lib/Common/src/LVM_Timer_Init.c
vm/lib/Common/src/LVM_Timer_Private.h
vm/lib/Common/src/LoadConst_16.c
vm/lib/Common/src/LoadConst_32.c
vm/lib/Common/src/MSTo2i_Sat_16x16.c
vm/lib/Common/src/Mac3s_Sat_16x16.c
vm/lib/Common/src/Mac3s_Sat_32x16.c
vm/lib/Common/src/MixInSoft_D32C31_SAT.c
vm/lib/Common/src/MixSoft_1St_D32C31_WRA.c
vm/lib/Common/src/MixSoft_2St_D32C31_SAT.c
vm/lib/Common/src/Mixer_private.h
vm/lib/Common/src/MonoTo2I_16.c
vm/lib/Common/src/MonoTo2I_32.c
vm/lib/Common/src/Mult3s_32x16.c
vm/lib/Common/src/NonLinComp_D16.c
vm/lib/Common/src/PK_2I_D32F32C14G11_TRC_WRA_01.c
vm/lib/Common/src/PK_2I_D32F32C30G11_TRC_WRA_01.c
vm/lib/Common/src/PK_2I_D32F32CllGss_TRC_WRA_01_Init.c
vm/lib/Common/src/PK_2I_D32F32CllGss_TRC_WRA_01_Private.h
vm/lib/Common/src/PK_2I_D32F32CssGss_TRC_WRA_01_Init.c
vm/lib/Common/src/PK_2I_D32F32CssGss_TRC_WRA_01_Private.h
vm/lib/Common/src/Shift_Sat_v16xv16.c
vm/lib/Common/src/Shift_Sat_v32xv32.c
vm/lib/Common/src/dB_to_Lin32.c
vm/lib/Common/src/mult3s_16x16.c
vm/lib/Eq/lib/LVEQNB.h
vm/lib/Eq/src/LVEQNB_CalcCoef.c
vm/lib/Eq/src/LVEQNB_Coeffs.h
vm/lib/Eq/src/LVEQNB_Control.c
vm/lib/Eq/src/LVEQNB_Init.c
vm/lib/Eq/src/LVEQNB_Private.h
vm/lib/Eq/src/LVEQNB_Process.c
vm/lib/Eq/src/LVEQNB_Tables.c
vm/lib/Reverb/lib/LVREV.h
vm/lib/Reverb/src/LVREV_ApplyNewSettings.c
vm/lib/Reverb/src/LVREV_ClearAudioBuffers.c
vm/lib/Reverb/src/LVREV_GetControlParameters.c
vm/lib/Reverb/src/LVREV_GetInstanceHandle.c
vm/lib/Reverb/src/LVREV_GetMemoryTable.c
vm/lib/Reverb/src/LVREV_Private.h
vm/lib/Reverb/src/LVREV_Process.c
vm/lib/Reverb/src/LVREV_SetControlParameters.c
vm/lib/Reverb/src/LVREV_Tables.c
vm/lib/Reverb/src/LVREV_Tables.h
vm/lib/SpectrumAnalyzer/lib/LVPSA.h
vm/lib/SpectrumAnalyzer/src/LVPSA_Control.c
vm/lib/SpectrumAnalyzer/src/LVPSA_Init.c
vm/lib/SpectrumAnalyzer/src/LVPSA_Memory.c
vm/lib/SpectrumAnalyzer/src/LVPSA_Private.h
vm/lib/SpectrumAnalyzer/src/LVPSA_Process.c
vm/lib/SpectrumAnalyzer/src/LVPSA_QPD.h
vm/lib/SpectrumAnalyzer/src/LVPSA_QPD_Init.c
vm/lib/SpectrumAnalyzer/src/LVPSA_QPD_Process.c
vm/lib/SpectrumAnalyzer/src/LVPSA_Tables.c
vm/lib/StereoWidening/lib/LVCS.h
vm/lib/StereoWidening/src/LVCS_BypassMix.c
vm/lib/StereoWidening/src/LVCS_BypassMix.h
vm/lib/StereoWidening/src/LVCS_Control.c
vm/lib/StereoWidening/src/LVCS_Equaliser.c
vm/lib/StereoWidening/src/LVCS_Equaliser.h
vm/lib/StereoWidening/src/LVCS_Headphone_Coeffs.h
vm/lib/StereoWidening/src/LVCS_Init.c
vm/lib/StereoWidening/src/LVCS_Private.h
vm/lib/StereoWidening/src/LVCS_Process.c
vm/lib/StereoWidening/src/LVCS_ReverbGenerator.c
vm/lib/StereoWidening/src/LVCS_ReverbGenerator.h
vm/lib/StereoWidening/src/LVCS_StereoEnhancer.c
vm/lib/StereoWidening/src/LVCS_StereoEnhancer.h
vm/lib/StereoWidening/src/LVCS_Tables.c
vm/lib/StereoWidening/src/LVCS_Tables.h
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
vm/wrapper/Reverb/EffectReverb.cpp
vm/wrapper/Reverb/EffectReverb.h
53bfd693c45278bf71cb5e184ffd3e95d52e04d8 26-Aug-2010 Eric Laurent <elaurent@google.com> am 8ca5df27: am c14f9ca6: Merge "Added preset reverb." into gingerbread

Merge commit '8ca5df27df8a2b6435486f9b5a163bf222f8fed1'

* commit '8ca5df27df8a2b6435486f9b5a163bf222f8fed1':
Added preset reverb.
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
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Reverb/EffectReverb.cpp
627c790c1f7c8fd44dc50abb03885aa5a075d418 24-Aug-2010 Eric Laurent <elaurent@google.com> am 33e0d834: am b6d71351: Merge "LVM release 1.05 delivery" into gingerbread

Merge commit '33e0d8343174339cc9622d63c23d47c0ba0d3baa'

* commit '33e0d8343174339cc9622d63c23d47c0ba0d3baa':
LVM release 1.05 delivery
1b1c377e97558076ee1d427fdd8800ebce1ff300 21-Aug-2010 Eric Laurent <elaurent@google.com> am 5aff90a6: am 1aaba885: Merge "Audio Effects: fixed "strength supported" parameter size." into gingerbread

Merge commit '5aff90a638da53e66fba90c92d412812760fe8e5'

* commit '5aff90a638da53e66fba90c92d412812760fe8e5':
Audio Effects: fixed "strength supported" parameter size.
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
vm/lib/Android.mk
vm/lib/Bass/src/LVDBE_Control.c
vm/lib/Bass/src/LVDBE_Init.c
vm/lib/Bass/src/LVDBE_Private.h
vm/lib/Bass/src/LVDBE_Process.c
vm/lib/Bundle/src/LVM_Control.c
vm/lib/Reverb/lib/LVREV.h
vm/lib/Reverb/src/LVREV_ApplyNewSettings.c
vm/lib/Reverb/src/LVREV_ClearAudioBuffers.c
vm/lib/Reverb/src/LVREV_GetControlParameters.c
vm/lib/Reverb/src/LVREV_GetInstanceHandle.c
vm/lib/Reverb/src/LVREV_GetMemoryTable.c
vm/lib/Reverb/src/LVREV_Private.h
vm/lib/Reverb/src/LVREV_Process.c
vm/lib/Reverb/src/LVREV_SetControlParameters.c
vm/lib/Reverb/src/LVREV_Tables.c
vm/lib/Reverb/src/LVREV_Tables.h
vm/lib/StereoWidening/src/LVCS_Control.c
vm/lib/StereoWidening/src/LVCS_Equaliser.c
vm/lib/StereoWidening/src/LVCS_Init.c
vm/lib/StereoWidening/src/LVCS_StereoEnhancer.c
vm/wrapper/Android.mk
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
vm/wrapper/Reverb/EffectReverb.cpp
vm/wrapper/Reverb/EffectReverb.h
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
vm/wrapper/Bundle/EffectBundle.cpp
d904b49e5ac83cb3000a01eb97771731aa1fbe43 30-Jul-2010 Eric Laurent <elaurent@google.com> am e67332f8: am 92e847ed: Audio effects: aligned Equalizer API argument types on OpenSL ES SLEqualizerItf.

Merge commit 'e67332f879b3f97baaac2252b53ac64686aebdbb'

* commit 'e67332f879b3f97baaac2252b53ac64686aebdbb':
Audio effects: aligned Equalizer API argument types on OpenSL ES SLEqualizerItf.
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
vm/wrapper/Bundle/EffectBundle.cpp
estlibs/EffectEqualizer.cpp
ed0de3c123aaa86147993721d4794648a65aab75 28-Jul-2010 Eric Laurent <elaurent@google.com> am 6fa88882: am 62d83a0c: Merge "Audio effects: modified command() parameter types." into gingerbread

Merge commit '6fa8888254deb4961dc64c6ac03dc103c9cd8bcf'

* commit '6fa8888254deb4961dc64c6ac03dc103c9cd8bcf':
Audio effects: modified command() parameter types.
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
actory/EffectsFactory.c
vm/wrapper/Bundle/EffectBundle.cpp
estlibs/EffectEqualizer.cpp
estlibs/EffectReverb.c
estlibs/EffectReverb.h
isualizer/EffectVisualizer.cpp
9e77e155b05e419a34e0fd116ee50f0fc092e67a 27-Jul-2010 Eric Laurent <elaurent@google.com> resolved conflicts for merge of d306cc81 to master

Change-Id: Ib593b7719a837de12605e8c75904634843298ba1
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
vm/wrapper/Android.mk
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
estlibs/EffectReverb.c
isualizer/Android.mk
49c16aaec0d314bcf320e088e4bc68d0585c040a 26-Jul-2010 Eric Laurent <elaurent@google.com> am e80c30c6: am 00de7218: Merge "Fixed bug in vlm effect bunde wrapper effect init function." into gingerbread

Merge commit 'e80c30c6b557fab2f5fc7a87c51018f5a8074338'

* commit 'e80c30c6b557fab2f5fc7a87c51018f5a8074338':
Fixed bug in vlm effect bunde wrapper effect init function.
dc619be998a8e727008677ea222bc1e032453785 26-Jul-2010 Eric Laurent <elaurent@google.com> am df5c3b50: am 739bf285: Merge "LVM release 1.04." into gingerbread

Merge commit 'df5c3b5024276af8b44d00bb28ce620ab31e2365'

* commit 'df5c3b5024276af8b44d00bb28ce620ab31e2365':
LVM release 1.04.
8b4179f44917ec4845ade406a49a713cd568fe8a 26-Jul-2010 Eric Laurent <elaurent@google.com> Merge "Fixed bug in vlm effect bunde wrapper effect init function." into gingerbread
09d5ca3766d4bab91cdaad7206716a5747ebad77 23-Jul-2010 Eric Laurent <elaurent@google.com> LVM release 1.04.

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
vm/lib/Bass/src/LVDBE_Control.c
vm/lib/Bundle/src/LVM_Buffers.c
vm/lib/Bundle/src/LVM_Control.c
vm/lib/Bundle/src/LVM_Init.c
vm/lib/Common/src/MixSoft_2St_D32C31_SAT.c
vm/lib/Eq/src/LVEQNB_Control.c
vm/lib/StereoWidening/src/LVCS_BypassMix.c
vm/lib/StereoWidening/src/LVCS_Control.c
vm/lib/StereoWidening/src/LVCS_Equaliser.c
vm/lib/StereoWidening/src/LVCS_Init.c
vm/lib/StereoWidening/src/LVCS_Private.h
vm/lib/StereoWidening/src/LVCS_ReverbGenerator.c
vm/lib/StereoWidening/src/LVCS_StereoEnhancer.c
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
vm/wrapper/Bundle/EffectBundle.cpp
6a970b49033688f0422fc613568d30148b6b301a 23-Jul-2010 Eric Laurent <elaurent@google.com> am 08f2b10c: am 021697ad: Audio effects: lvm bundle wrapper update after first integration tests.

Merge commit '08f2b10c4b2e7fc1c666cc1d896e227289206b24'

* commit '08f2b10c4b2e7fc1c666cc1d896e227289206b24':
Audio effects: lvm bundle wrapper update after first integration tests.
163fbcf84010b98e0374110454d85b804bc8d13b 23-Jul-2010 Eric Laurent <elaurent@google.com> Audio effects: lvm bundle wrapper update after first integration tests.

Change-Id: I20cb55282833bd6e3a160e0dae1cc1fcb6b1ca30
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
8184a5734690b30f4de0f6b6c16daf1e089f67df 20-Jul-2010 Eric Laurent <elaurent@google.com> resolved conflicts for merge of dd206093 to master

Change-Id: I21dd2321a4839d034d49092baccbf40986f17dae
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
actory/EffectsFactory.c
vm/wrapper/Bundle/EffectBundle.cpp
618678e74cc7a013b84d8f5b53d19dd2c5463a85 19-Jul-2010 Andy McFadden <fadden@android.com> Merge "Fix sim-eng build."
2c994dbcae12a7515d01c70aa058b0a9ac1e4c20 19-Jul-2010 Andy McFadden <fadden@android.com> Fix sim-eng build.

Different handling of libdl. Added sim handling in one place, corrected
typo in sim handling in another.

Change-Id: I24153ad5b8873083225390ba6a751941d231d092
vm/wrapper/Android.mk
isualizer/Android.mk
f997cabca292d70d078ae828e21c28e6df62995f 19-Jul-2010 Eric Laurent <elaurent@google.com> Fixed problems in audio effect volume control.

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
isualizer/EffectVisualizer.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
ndroid.mk
udioBiquadFilter.cpp
udioBiquadFilter.h
udioCoefInterpolator.cpp
udioCoefInterpolator.h
udioCommon.h
udioEqualizer.cpp
udioEqualizer.h
udioFormatAdapter.h
udioHighShelfFilterCoef.inl
udioLowShelfFilterCoef.inl
udioPeakingFilter.cpp
udioPeakingFilter.h
udioPeakingFilterCoef.inl
udioShelvingFilter.cpp
udioShelvingFilter.h
ffectEqualizer.cpp
ffectReverb.c
ffectReverb.h
ffectVisualizer.cpp
ffectsFactory.c
ffectsFactory.h
ffectsMath.c
ffectsMath.h
actory/Android.mk
actory/EffectsFactory.c
actory/EffectsFactory.h
vm/lib/Android.mk
vm/lib/Bass/lib/LVDBE.h
vm/lib/Bass/src/LVDBE_Coeffs.h
vm/lib/Bass/src/LVDBE_Control.c
vm/lib/Bass/src/LVDBE_Init.c
vm/lib/Bass/src/LVDBE_Private.h
vm/lib/Bass/src/LVDBE_Process.c
vm/lib/Bass/src/LVDBE_Tables.c
vm/lib/Bass/src/LVDBE_Tables.h
vm/lib/Bundle/lib/LVM.h
vm/lib/Bundle/src/LVM_API_Specials.c
vm/lib/Bundle/src/LVM_Buffers.c
vm/lib/Bundle/src/LVM_Coeffs.h
vm/lib/Bundle/src/LVM_Control.c
vm/lib/Bundle/src/LVM_Init.c
vm/lib/Bundle/src/LVM_Private.h
vm/lib/Bundle/src/LVM_Process.c
vm/lib/Bundle/src/LVM_Tables.c
vm/lib/Bundle/src/LVM_Tables.h
vm/lib/Common/lib/AGC.h
vm/lib/Common/lib/BIQUAD.h
vm/lib/Common/lib/CompLim.h
vm/lib/Common/lib/Filter.h
vm/lib/Common/lib/InstAlloc.h
vm/lib/Common/lib/LVM_Common.h
vm/lib/Common/lib/LVM_Macros.h
vm/lib/Common/lib/LVM_Timer.h
vm/lib/Common/lib/LVM_Types.h
vm/lib/Common/lib/Mixer.h
vm/lib/Common/lib/ScalarArithmetic.h
vm/lib/Common/lib/VectorArithmetic.h
vm/lib/Common/src/AGC_MIX_VOL_2St1Mon_D32_WRA.c
vm/lib/Common/src/Abs_32.c
vm/lib/Common/src/Add2_Sat_16x16.c
vm/lib/Common/src/Add2_Sat_32x32.c
vm/lib/Common/src/BP_1I_D16F16C14_TRC_WRA_01.c
vm/lib/Common/src/BP_1I_D16F16Css_TRC_WRA_01_Init.c
vm/lib/Common/src/BP_1I_D16F16Css_TRC_WRA_01_Private.h
vm/lib/Common/src/BP_1I_D16F32C30_TRC_WRA_01.c
vm/lib/Common/src/BP_1I_D16F32Cll_TRC_WRA_01_Init.c
vm/lib/Common/src/BP_1I_D16F32Cll_TRC_WRA_01_Private.h
vm/lib/Common/src/BP_1I_D32F32C30_TRC_WRA_02.c
vm/lib/Common/src/BP_1I_D32F32Cll_TRC_WRA_02_Init.c
vm/lib/Common/src/BP_1I_D32F32Cll_TRC_WRA_02_Private.h
vm/lib/Common/src/BQ_1I_D16F16C15_TRC_WRA_01.c
vm/lib/Common/src/BQ_1I_D16F16Css_TRC_WRA_01_Init.c
vm/lib/Common/src/BQ_1I_D16F16Css_TRC_WRA_01_Private.h
vm/lib/Common/src/BQ_1I_D16F32C14_TRC_WRA_01.c
vm/lib/Common/src/BQ_1I_D16F32Css_TRC_WRA_01_Private.h
vm/lib/Common/src/BQ_1I_D16F32Css_TRC_WRA_01_init.c
vm/lib/Common/src/BQ_2I_D16F16C14_TRC_WRA_01.c
vm/lib/Common/src/BQ_2I_D16F16C15_TRC_WRA_01.c
vm/lib/Common/src/BQ_2I_D16F16Css_TRC_WRA_01_Init.c
vm/lib/Common/src/BQ_2I_D16F16Css_TRC_WRA_01_Private.h
vm/lib/Common/src/BQ_2I_D16F32C13_TRC_WRA_01.c
vm/lib/Common/src/BQ_2I_D16F32C14_TRC_WRA_01.c
vm/lib/Common/src/BQ_2I_D16F32C15_TRC_WRA_01.c
vm/lib/Common/src/BQ_2I_D16F32Css_TRC_WRA_01_Private.h
vm/lib/Common/src/BQ_2I_D16F32Css_TRC_WRA_01_init.c
vm/lib/Common/src/BQ_2I_D32F32C30_TRC_WRA_01.c
vm/lib/Common/src/BQ_2I_D32F32Cll_TRC_WRA_01_Init.c
vm/lib/Common/src/BQ_2I_D32F32Cll_TRC_WRA_01_Private.h
vm/lib/Common/src/CompLim_private.h
vm/lib/Common/src/Copy_16.c
vm/lib/Common/src/Core_MixHard_2St_D32C31_SAT.c
vm/lib/Common/src/Core_MixInSoft_D32C31_SAT.c
vm/lib/Common/src/Core_MixSoft_1St_D32C31_WRA.c
vm/lib/Common/src/DC_2I_D16_TRC_WRA_01.c
vm/lib/Common/src/DC_2I_D16_TRC_WRA_01_Init.c
vm/lib/Common/src/DC_2I_D16_TRC_WRA_01_Private.h
vm/lib/Common/src/DelayAllPass_Sat_32x16To32.c
vm/lib/Common/src/DelayMix_16x16.c
vm/lib/Common/src/DelayWrite_32.c
vm/lib/Common/src/FO_1I_D16F16C15_TRC_WRA_01.c
vm/lib/Common/src/FO_1I_D16F16Css_TRC_WRA_01_Init.c
vm/lib/Common/src/FO_1I_D16F16Css_TRC_WRA_01_Private.h
vm/lib/Common/src/FO_1I_D32F32C31_TRC_WRA_01.c
vm/lib/Common/src/FO_1I_D32F32Cll_TRC_WRA_01_Init.c
vm/lib/Common/src/FO_1I_D32F32Cll_TRC_WRA_01_Private.h
vm/lib/Common/src/FO_2I_D16F32C15_LShx_TRC_WRA_01.c
vm/lib/Common/src/FO_2I_D16F32Css_LShx_TRC_WRA_01_Init.c
vm/lib/Common/src/FO_2I_D16F32Css_LShx_TRC_WRA_01_Private.h
vm/lib/Common/src/Filters.h
vm/lib/Common/src/From2iToMS_16x16.c
vm/lib/Common/src/From2iToMono_16.c
vm/lib/Common/src/From2iToMono_32.c
vm/lib/Common/src/InstAlloc.c
vm/lib/Common/src/Int16LShiftToInt32_16x32.c
vm/lib/Common/src/Int32RShiftToInt16_Sat_32x16.c
vm/lib/Common/src/JoinTo2i_32x32.c
vm/lib/Common/src/LVC_Core_MixHard_1St_2i_D16C31_SAT.c
vm/lib/Common/src/LVC_Core_MixHard_2St_D16C31_SAT.c
vm/lib/Common/src/LVC_Core_MixInSoft_D16C31_SAT.c
vm/lib/Common/src/LVC_Core_MixSoft_1St_2i_D16C31_WRA.c
vm/lib/Common/src/LVC_Core_MixSoft_1St_D16C31_WRA.c
vm/lib/Common/src/LVC_MixInSoft_D16C31_SAT.c
vm/lib/Common/src/LVC_MixSoft_1St_2i_D16C31_SAT.c
vm/lib/Common/src/LVC_MixSoft_1St_D16C31_SAT.c
vm/lib/Common/src/LVC_MixSoft_2St_D16C31_SAT.c
vm/lib/Common/src/LVC_Mixer.h
vm/lib/Common/src/LVC_Mixer_GetCurrent.c
vm/lib/Common/src/LVC_Mixer_GetTarget.c
vm/lib/Common/src/LVC_Mixer_Init.c
vm/lib/Common/src/LVC_Mixer_Private.h
vm/lib/Common/src/LVC_Mixer_SetTarget.c
vm/lib/Common/src/LVC_Mixer_SetTimeConstant.c
vm/lib/Common/src/LVC_Mixer_VarSlope_SetTimeConstant.c
vm/lib/Common/src/LVM_FO_HPF.c
vm/lib/Common/src/LVM_FO_LPF.c
vm/lib/Common/src/LVM_GetOmega.c
vm/lib/Common/src/LVM_Mixer_FilterCoeffs.h
vm/lib/Common/src/LVM_Mixer_TimeConstant.c
vm/lib/Common/src/LVM_Polynomial.c
vm/lib/Common/src/LVM_Power10.c
vm/lib/Common/src/LVM_Timer.c
vm/lib/Common/src/LVM_Timer_Init.c
vm/lib/Common/src/LVM_Timer_Private.h
vm/lib/Common/src/LoadConst_16.c
vm/lib/Common/src/LoadConst_32.c
vm/lib/Common/src/MSTo2i_Sat_16x16.c
vm/lib/Common/src/Mac3s_Sat_16x16.c
vm/lib/Common/src/Mac3s_Sat_32x16.c
vm/lib/Common/src/MixInSoft_D32C31_SAT.c
vm/lib/Common/src/MixSoft_1St_D32C31_WRA.c
vm/lib/Common/src/MixSoft_2St_D32C31_SAT.c
vm/lib/Common/src/Mixer_private.h
vm/lib/Common/src/MonoTo2I_16.c
vm/lib/Common/src/MonoTo2I_32.c
vm/lib/Common/src/Mult3s_32x16.c
vm/lib/Common/src/NonLinComp_D16.c
vm/lib/Common/src/PK_2I_D32F32C14G11_TRC_WRA_01.c
vm/lib/Common/src/PK_2I_D32F32C30G11_TRC_WRA_01.c
vm/lib/Common/src/PK_2I_D32F32CllGss_TRC_WRA_01_Init.c
vm/lib/Common/src/PK_2I_D32F32CllGss_TRC_WRA_01_Private.h
vm/lib/Common/src/PK_2I_D32F32CssGss_TRC_WRA_01_Init.c
vm/lib/Common/src/PK_2I_D32F32CssGss_TRC_WRA_01_Private.h
vm/lib/Common/src/Shift_Sat_v16xv16.c
vm/lib/Common/src/Shift_Sat_v32xv32.c
vm/lib/Common/src/dB_to_Lin32.c
vm/lib/Common/src/mult3s_16x16.c
vm/lib/Eq/lib/LVEQNB.h
vm/lib/Eq/src/LVEQNB_CalcCoef.c
vm/lib/Eq/src/LVEQNB_Coeffs.h
vm/lib/Eq/src/LVEQNB_Control.c
vm/lib/Eq/src/LVEQNB_Init.c
vm/lib/Eq/src/LVEQNB_Private.h
vm/lib/Eq/src/LVEQNB_Process.c
vm/lib/Eq/src/LVEQNB_Tables.c
vm/lib/SpectrumAnalyzer/lib/LVPSA.h
vm/lib/SpectrumAnalyzer/src/LVPSA_Control.c
vm/lib/SpectrumAnalyzer/src/LVPSA_Init.c
vm/lib/SpectrumAnalyzer/src/LVPSA_Memory.c
vm/lib/SpectrumAnalyzer/src/LVPSA_Private.h
vm/lib/SpectrumAnalyzer/src/LVPSA_Process.c
vm/lib/SpectrumAnalyzer/src/LVPSA_QPD.h
vm/lib/SpectrumAnalyzer/src/LVPSA_QPD_Init.c
vm/lib/SpectrumAnalyzer/src/LVPSA_QPD_Process.c
vm/lib/SpectrumAnalyzer/src/LVPSA_Tables.c
vm/lib/StereoWidening/lib/LVCS.h
vm/lib/StereoWidening/src/LVCS_BypassMix.c
vm/lib/StereoWidening/src/LVCS_BypassMix.h
vm/lib/StereoWidening/src/LVCS_Control.c
vm/lib/StereoWidening/src/LVCS_Equaliser.c
vm/lib/StereoWidening/src/LVCS_Equaliser.h
vm/lib/StereoWidening/src/LVCS_Headphone_Coeffs.h
vm/lib/StereoWidening/src/LVCS_Init.c
vm/lib/StereoWidening/src/LVCS_Private.h
vm/lib/StereoWidening/src/LVCS_Process.c
vm/lib/StereoWidening/src/LVCS_ReverbGenerator.c
vm/lib/StereoWidening/src/LVCS_ReverbGenerator.h
vm/lib/StereoWidening/src/LVCS_StereoEnhancer.c
vm/lib/StereoWidening/src/LVCS_StereoEnhancer.h
vm/lib/StereoWidening/src/LVCS_Tables.c
vm/lib/StereoWidening/src/LVCS_Tables.h
vm/wrapper/Android.mk
vm/wrapper/Bundle/EffectBundle.cpp
vm/wrapper/Bundle/EffectBundle.h
estlibs/Android.mk_
estlibs/AudioBiquadFilter.cpp
estlibs/AudioBiquadFilter.h
estlibs/AudioCoefInterpolator.cpp
estlibs/AudioCoefInterpolator.h
estlibs/AudioCommon.h
estlibs/AudioEqualizer.cpp
estlibs/AudioEqualizer.h
estlibs/AudioFormatAdapter.h
estlibs/AudioHighShelfFilterCoef.inl
estlibs/AudioLowShelfFilterCoef.inl
estlibs/AudioPeakingFilter.cpp
estlibs/AudioPeakingFilter.h
estlibs/AudioPeakingFilterCoef.inl
estlibs/AudioShelvingFilter.cpp
estlibs/AudioShelvingFilter.h
estlibs/EffectEqualizer.cpp
estlibs/EffectReverb.c
estlibs/EffectReverb.h
estlibs/EffectsMath.c
estlibs/EffectsMath.h
isualizer/Android.mk
isualizer/EffectVisualizer.cpp
98fe12aba55e8b8bb14b23c4c3cdba9a99a9753c 09-Jul-2010 Jean-Michel Trivi <jmtrivi@google.com> Use the OpenSL ES definition of SL_IID_EQUALIZER for the EQ
effect UUID instead of defining it locally.

Change-Id: Id6018fef20d286899cf7503fec3521dcd56db7e0
ndroid.mk
e44b1efb293f878d4af8e824a6b3d070167bf2d6 09-Jul-2010 Eric Laurent <elaurent@google.com> Modifications in audio effect engine state management.

- 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
ffectEqualizer.cpp
ffectReverb.c
ffectReverb.h
ffectVisualizer.cpp
cb28102ad3976339ec445afbcb4130f2991b38d7 09-Jul-2010 Eric Laurent <elaurent@google.com> Added JAVA classes to control bass boost, equalizer, reverberation and 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
ffectReverb.c
ffectReverb.h
da7581b7b61b84f15e8d671c86fd117c322b009e 02-Jul-2010 Eric Laurent <elaurent@google.com> Added Visualizer effect.

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
ndroid.mk
ffectVisualizer.cpp
ffe9c25ce85e1af55d58ec025adc6367d70db7e8 24-Jun-2010 Eric Laurent <elaurent@google.com> Various fixes and improvements in audio effects implementation

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
ndroid.mk
udioCoefInterpolator.cpp
udioCommon.h
udioFormatAdapter.h
udioShelvingFilter.cpp
ffectEqualizer.cpp
ffectReverb.c
ffectReverb.h
ffectsFactory.c
ffectsFactory.h
be916aa1267e2e6b1c148f51d11bcbbc79cb864c 02-Jun-2010 Eric Laurent <elaurent@google.com> Issue 2667801: [Audio Effect Framework] AudioFlinger, AudioMixer AudioTrack 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
ffectEqualizer.cpp
ffectReverb.c
ffectReverb.h
ffectsFactory.c
17217ab46e12fbdaad9e1d7460c48937f76fa0e2 25-May-2010 Eric Laurent <elaurent@google.com> Fix the simulator build broken by commit 5fe37c6838de9fbd959ad19ba44aa3d00d1b4e6f

Change-Id: Ibf6aebfec60cd7f807c3e49f0dbb5ab8e86bcdc1
ffectEqualizer.cpp
ffectsFactory.c
135ad07e33d30e5202deb21061a0e3ecf0ffad35 21-May-2010 Eric Laurent <elaurent@google.com> Fix issue 2667796: [Audio Effect Framework] Effect factory and libraries.

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
ndroid.mk
udioBiquadFilter.cpp
udioBiquadFilter.h
udioCoefInterpolator.cpp
udioCoefInterpolator.h
udioCommon.h
udioEqualizer.cpp
udioEqualizer.h
udioFormatAdapter.h
udioHighShelfFilterCoef.inl
udioLowShelfFilterCoef.inl
udioPeakingFilter.cpp
udioPeakingFilter.h
udioPeakingFilterCoef.inl
udioShelvingFilter.cpp
udioShelvingFilter.h
ffectEqualizer.cpp
ffectReverb.c
ffectReverb.h
ffectsFactory.c
ffectsFactory.h
ffectsMath.c
ffectsMath.h