summaryrefslogtreecommitdiffstats
path: root/media/libeffects/visualizer/EffectVisualizer.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Visualizer: Check capture size and latency parametersAndy Hung2017-02-031-11/+32
| | | | | | | Bug: 31781965 Change-Id: I1c439a0d0f6aa0057b3c651499f28426e1e1f5e4 (cherry picked from commit 9a2732ba0a8d609ab040d2c1ddee28577ead9772) (cherry picked from commit 557bd7bfe6c4895faee09e46fc9b5304a956c8b7)
* Fix potential NULL dereference in Visualizer effectrago2016-12-121-3/+8
| | | | | | | | | | | CYNGNOS-3312 Bug: 30229821 Test: fixing CL. Existing unit tests still pass. Change-Id: I6e4abd759d5d2abc3b391e92e2e18f060cab7af0 (cherry picked from commit 874f9e0b8eb0cbe508d15c8c03796c863851f21f) (cherry picked from commit 244e7fd2a45b4e7d70d2c2e550181220371b7edf)
* Fix potential overflow in Visualizer effectrago2016-09-271-0/+9
| | | | | | | Bug: 30229821 Change-Id: Idd3c1563dc9d3261e6e168e945005bf133ab2cdb (cherry picked from commit 099ab280775946e7c36c73fde47f2ee5a2579f53) (cherry picked from commit 46dc714d523a41a4f886eecbe5b9947a4c900510)
* audio effects: fix heap overflowEric Laurent2015-06-191-8/+8
| | | | | | | | | | | 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
* Use new channel count functions for audio masksAndy Hung2014-05-161-1/+2
| | | | | Change-Id: Ia658ab4b6320d19fdb50f123c930918724ff0ef3 Signed-off-by: Andy Hung <hunga@google.com>
* libeffects: 64 bit compile issuesMark Salyzyn2014-04-181-17/+18
| | | | Change-Id: I32dd13d307572fee91150f8e113df78924ca0067
* Fix preventing from heap overwrite in capture commandRyszard Grzesica2014-02-201-34/+35
| | | | | | | | | | 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
* Merge commit 'b2059ff384eee8ffb70a7ec8fc5570405201c734' into HEADThe Android Open Source Project2013-11-221-19/+137
|\
| * Fix log typos in Visualizer effectJean-Michel Trivi2013-09-241-9/+7
| | | | | | | | | | | | | | | | | | Fix errors in logs for Visualizer. Set loop counters on 32 bits Bug 8413913 Change-Id: Iad2140d003d15d45be46826a5e89baff14fe9e77
| * Add support for level measurements in VisualizerJean-Michel Trivi2013-09-231-17/+137
| | | | | | | | | | | | | | | | | | New commands to set a measurement mode and perform peak + RMS measurements. Bug 8413913 Change-Id: Ib25254065c79d365ebb34f9dc9caa0490e2d300d
| * more support for audio effect offloadEric Laurent2013-09-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Only export the symbols that need to beMarco Nelissen2012-10-251-1/+2
| | | | | | | | | | | | | | | | 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
| * Switch to new fx library APIMarco Nelissen2012-10-251-19/+0
| | | | | | | | Change-Id: I6603aef5e3821a8f911e3f33ef8565d04bd1e2e5
* | libeffects: do not use GNU old-style field designatorssynergydev2013-10-191-7/+7
| | | | | | | | | | | | Not using a GNU extension improves portability Change-Id: I4e8a0376c089828ca4fc7f1aaf3914bfd917d4c5
* | Only export the symbols that need to beMarco Nelissen2012-10-251-1/+2
| | | | | | | | | | | | | | | | 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
* | Switch to new fx library APIMarco Nelissen2012-10-251-19/+0
|/ | | | Change-Id: I6603aef5e3821a8f911e3f33ef8565d04bd1e2e5
* Use struct assignment instead of explicit memcpyGlenn Kasten2012-07-171-5/+5
| | | | | | for POD structs effect_descriptor_t and effect_config_t Change-Id: Ib2fc47f85fb65ed91b0abb1f87217c49b5eb571d
* Take latency and current time into account for visualizationMarco Nelissen2012-06-071-34/+63
| | | | | | | | | | 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
* Add support for scaling mode parameterJean-Michel Trivi2012-04-181-32/+59
| | | | | | | | | | | | | | | | | | | | | | 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
* fix visualizer inactivity detectionEric Laurent2012-03-261-9/+24
| | | | | | | | | | | | 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
* Effect UUID inputs passed by pointer are constGlenn Kasten2012-02-081-2/+2
| | | | Change-Id: I1f5c338bcb7368e3dd8cd5f804b2e6d9fbe087f8
* Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGESteve Block2012-01-061-2/+2
| | | | | | | See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
* audio effects: rename configure commandEric Laurent2011-12-191-6/+33
| | | | | | | | | | | | | 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
* am 2c29a5cf: am 1f8c6212: Merge "visualizer: reset buffer if playback is ↵Eric Laurent2011-11-111-3/+25
|\ | | | | | | | | | | | | idle" into ics-mr1 * commit '2c29a5cf1658532bca4e34f816fa30312241a336': visualizer: reset buffer if playback is idle
| * visualizer: reset buffer if playback is idleEric Laurent2011-11-101-3/+25
| | | | | | | | | | | | | | | | | | | | 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
* | Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGESteve Block2011-10-261-11/+11
|/ | | | | | | See https://android-git.corp.google.com/g/#/c/143865 Bug: 5449033 Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
* Audio Effect API: process reverse stream functionEric Laurent2011-07-111-1/+2
| | | | | | | | 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
* Moved and renamed effect API header filesEric Laurent2011-07-071-5/+5
| | | | | | | | Moved specific effect header files to system/media/audio_effects/include/audio_effects and renamed to lower case (effect_xxx.h). Change-Id: Icfc2264bfd013cab0395d7e310ada636b9fe3621
* New effect library APIEric Laurent2011-05-271-33/+80
| | | | | | | | | | | | | | | | | 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
* Fix off-by-two and other bugs in the visualization code.Marco Nelissen2010-10-271-9/+12
| | | | | | b/3137511 Change-Id: Ic431701e93c025bc417c9742e9af6bb2350c7dd6
* Fix error in AudioEffect command status reporting.Eric Laurent2010-09-241-2/+2
| | | | | | | | | | | | 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
* Fix issue 2913071.Eric Laurent2010-09-211-2/+20
| | | | | | | | | | | 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
* Audio effects: modified command() parameter types.Eric Laurent2010-07-281-2/+2
| | | | | | | 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
* Fixed problems in audio effect volume control.Eric Laurent2010-07-191-3/+3
| | | | | | | | | | 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
* First submission of audio effect library from NXP software.Eric Laurent2010-07-171-0/+401
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