Merge commit 'cc14a8393b92cd1ed6cba74829396045605ab211' into gingerbread-plus-aosp
* commit 'cc14a8393b92cd1ed6cba74829396045605ab211':
Support a single format change at the beginning of audio playback. This way the AAC+ decoder may change its output format from what is originally encoded in the audio stream and we'll still play it back correctly.
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
Merge commit 'faf1d46a60518fcc3e58c91740e673e8a3f2d3cc' into gingerbread-plus-aosp
* commit 'faf1d46a60518fcc3e58c91740e673e8a3f2d3cc':
Fix MPEG4Extractor to extract sampling frequency correctly when SBR is enabled.
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
Merge commit '2c87e9c923b0362fabf8c97ff63997542394c428' into gingerbread-plus-aosp
* commit '2c87e9c923b0362fabf8c97ff63997542394c428':
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
Merge commit 'd6a85a21418338a7797bff731fa7a551f62a9e86' into gingerbread-plus-aosp
* commit 'd6a85a21418338a7797bff731fa7a551f62a9e86':
Support user-supplied timescales for authoring
moved surfaceflinger, audioflinger, cameraservice
all native services should now reside in this location.
Change-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8
Merge commit '97eb728aef51646b86925557a36732598e3fbaa1' into gingerbread-plus-aosp
* commit '97eb728aef51646b86925557a36732598e3fbaa1':
Use the OpenSL ES definition of SL_IID_EQUALIZER for the EQ
Merge commit '8e886be413570fab6c623930a5775dd36a6d11e1' into gingerbread-plus-aosp
* commit '8e886be413570fab6c623930a5775dd36a6d11e1':
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
- Since the software encoder assumes the input is YUV420 planar,
color conversion needs to be added when the input color format
does not meet the requirement. With this patch, I only added
a single color conversion from YUV420 semi planar to YUV420
planar. We can add more as we go.
Change-Id: If8640c9e5a4f73d385ae9bb2022e57f7f62b91b9
Merge commit 'e7b790f1f77a0950c163fc82d8833072ccf6f3c5' into gingerbread-plus-aosp
* commit 'e7b790f1f77a0950c163fc82d8833072ccf6f3c5':
Fix swap of sessionId and output in audio effect API.
Merge commit '6bb14e08da82e72197f35548ff77a2f817c52a58' into gingerbread-plus-aosp
* commit '6bb14e08da82e72197f35548ff77a2f817c52a58':
Enable the support for decoding audio with AAC+ and eAAC+ features
Merge commit '929642ee003895b6e4e85ad7e43c7c6f01b29020' into gingerbread-plus-aosp
* commit '929642ee003895b6e4e85ad7e43c7c6f01b29020':
Add runtime dumpsys support for media recorder client
Merge commit 'fd84f97af4b44d54bba53bb85b31a6dbce07f6e2' into gingerbread-plus-aosp
* commit 'fd84f97af4b44d54bba53bb85b31a6dbce07f6e2':
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
Merge commit 'c42433427a7ed51b5577b2587bf6cb0af903ebf8' into gingerbread-plus-aosp
* commit 'c42433427a7ed51b5577b2587bf6cb0af903ebf8':
Allow application to set two more encoding paramters: video profile and level
Merge commit '58c35573cc677b736efefa267eba8727d4411999' into gingerbread-plus-aosp
* commit '58c35573cc677b736efefa267eba8727d4411999':
Fix some bugs in the MediaProfileReader
Because the video and audio encoders were stored in the same map, when we retrieve the name from the map, we can get a incorrect name.
Change-Id: I3857422bfe9173baae53e4f3d258b055f51ad9f2
Merge commit 'c34c8c3fe7fef15b410b0544d5436fcbefccd610' into gingerbread-plus-aosp
* commit 'c34c8c3fe7fef15b410b0544d5436fcbefccd610':
Only send the playback complete notification if a) an error occurred on any track or b) all tracks have finished playing. The previous behaviour was to send the notification as soon as the first track finished playing.
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