libnativehelper exports headers under nativehelper. These were
available before incorrectly as global headers in order to give
access to jni.h.
Test: modules using frameworks/base find headers
Bug: 63762847
Change-Id: I0f9f231acdebe460f279135462f43d3e32eff64d
nativehelper will no longer export nativehelper/jni.h so that everywhere
can reference this file with the same name.
Bug: 63762847
Change-Id: I8d2e9587439efa2d6ab03a5bdfa749fc620759e1
See build/soong/README.md for more information.
Test: m -j checkbuild
Change-Id: I1817c75ee45537ca0d5fc40a035f94a3dfeccc11
Merged-In: I1817c75ee45537ca0d5fc40a035f94a3dfeccc11
(cherry picked from commit 76de4f6b4d09423b3a5d3603527ce79acae4ed32)
See build/soong/README.md for more information.
Test: m -j checkbuild
Change-Id: I1817c75ee45537ca0d5fc40a035f94a3dfeccc11
Merged-In: I1817c75ee45537ca0d5fc40a035f94a3dfeccc11
(cherry picked from commit 76de4f6b4d09423b3a5d3603527ce79acae4ed32)
There can be different use cases with the code that imports
headers from audio_effects (each subsequent case is a more
specialized version of the previous one):
1. The code only needs access to general structures
like effect_descriptor_t:
==> include system/audio_effect.h
Example: AudioSystem in libmedia
2. The code that needs access to effect UUID and parameter
enums:
==> include system/audio_effects/effect_foo.h
Examples: media framework effects interfaces, libwilhelm
3. The code that needs to call into HAL:
==> include hardware/audio_effect.h
Examples: libaudiohal (implementation part) and libeffects
4. The code that implements a particular effect:
==> include audio_effects/effect_foo.h
Examples: cts/.../CTSTestEffect.cpp
stuff in hardware/, vendor/
Change-Id: I201dfa20ddc7aac797fd35934c0f06658f1e60be
Test: make
It is related to Change: Id17bea8a6ca7132042b9bfefed398a715c139be7
Fix ANR because of bug of Visualizer.
If lpJniStorage was delete first, callback_data_lock become a invalid value.
At mReceiver.periodicCapture() in CaptureThread, it will lock callback_data_lock.
Thus, CaptureThread will wait a invalid memory forever and visualizer wait CaptureThread exiting and causing ANR.
Signed-off-by: ganxiaolin <ganxiaolin@xiaomi.com>
Also prefer AudioManager.AUDIO_SESSION_ID_GENERATE over
AudioSystem.AUDIO_SESSION_ALLOCATE, because
AudioSystem.AUDIO_SESSION_ALLOCATE is @hide.
Bug: 27562099
Change-Id: I5924554feb919db7f2390f5b062faedd515421af
Modify AudioEffect and Visualizer JNI to use strong references to
native AudioEffect object.
Bug: 21629892.
Change-Id: I4c2dea0b2e16d807d6dc5d6b09e02e4652d48873
CallStaticVoidMethod is varargs function, and calling it with
a literal 0 like CallStaticVoidMethod(..., 0) will treat the
argument as a 4 byte int in both 32 and 64 bit processes.
This is incorrect for pointer arguments where NULL should be
used instead.
Reviewed-by: Liao, Bruce <bruce.liao@intel.com>
Signed-off-by: Yong Yao <yong.yao@intel.com>
Change-Id: I9d700d3790a80dbee6826f64baf9ef5d81ca390f
Some effects supported by the platform may not be
returned to JAVA layer because not visible by applications.
The size of the array of effect descriptors
returned must be adjusted so that no entry in the array is null.
Bug: 17453177.
Change-Id: I3baaacf24bcb0fa45ce50461a1ac3d6eaa67f4b9
For storing pointers, long is used in AudioEffect
and Visualizer classes, as native pointers can be 64-bit.
In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)
Change-Id: Ief49bbe5baef663e268c7f6d70ac33a4df45621c
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
Extend the visualizer audio effect with the capability to query
peak and RMS values for the currently playing audio.
Values are expressed in mB and are retrieved as an array of
int values in the native layer, and written directly as
object fields for the JNI.
Bug 8413913
Change-Id: I808075a18e61f85c566544a2bdaae10e5c4a644b
There's a runtime check for a bad argument, but it is
after the usage of the bad argument. Move the usage
after the check.
Bug 8687716
Change-Id: Iddfa457951bac69b436a430cda21b5d7a563107b
Signed-off-by: Mike J. Chen <mjchen@google.com>
There may be cases where queryNumberEffects fails leading
to the usage of the uninitialized numEffects.
Change-Id: If6d46987021ff6f0c9a2123d8714ff5fdf9ced45
Bring the Visualizer class into line with the SDK documentation by
returning ERROR_DEAD_OBJECT instead of ERROR_INVALID_OPERATION when
the Visualizer loses its binder connection to the mediaserver because
of a mediaserver restart.
Also add a new callback interface to allow clients to be
asynchronously notified in the case of server death. Right now, the
interface definition and the registration method are flagged as hidden
pending API council review/approval.
See http://b/issue?id=5717519 for details.
Change-Id: Ic15856f27ed5a950a583ac11ca81f79bd7e9b1a0
Signed-off-by: John Grossman <johngro@google.com>
Don't re-allocate buffers used by Visualizer callbacks as this causes an
unacceptable amount of GC thrash. Instead, lazily allocate the buffers and only
reallocate them when the required size changes.
See http://b/issue?id=5717519 for details.
Change-Id: Ibd157ed51f30687ce7c4ef0b4003258a484e0f5d
Signed-off-by: John Grossman <johngro@google.com>
android_media_AudioEffect_native_setup() was not initializing
properly the effect descriptor for audio pre processings.
AudioEffect tests should create per processing effects on a valid
AudioRecord session.
Change-Id: Ia1862ca91c98e272f9374b9225a7d4ce7ef132fc
Added APIs to control pre processes applied on captured audio.
Those APIs are still hidden until reviewed by API council.
Three types of standard pre processes are supported:
- Automatic Gain Control (AGC) by AutomaticGainControl class
- Acoustic Echo Cancellation (AEC) by AcousticEchoCanceler class
- Noise Suppression (NS) by NoiseSuppressor class
A method is added to AudioEffect class to query audio pre processings
applied by default by the platform on a given AudioRecord session ID.
Change-Id: I0b9fceeb8c704dd06319c3b52b85c96fe871d51d
Moved specific effect header files to
system/media/audio_effects/include/audio_effects
and renamed to lower case (effect_xxx.h).
Change-Id: Icfc2264bfd013cab0395d7e310ada636b9fe3621
Removed dead/buggy code in AudioEffect.getParameter() and
AudioEffect.command() that was meant to return the actual length of
meaningful data in the returned parameter or command reply.
This is replaced by the method return status indicating this length when
positive (negative return codes still indicate the same errors as before).
Modified automated AudioEffect tests accordingly.
Change-Id: Ie89617f912766b8dee73b81f92af9c48027c982d