History log of /frameworks/base/core/jni/android_media_AudioTrack.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
219de73da2a986ddcbfbc593c4e4e01c858ce245 23-May-2016 Eric Laurent <elaurent@google.com> Fix AudioTrack and AudioRecord documentation

Improve documentation for error codes returned by
AudioTrack.write() and AudioRecord.read() methods.
Fix native to JAVA error code conversion in JNI.

Bug: 28906466

Change-Id: I4d48b1d428834b7a39a14e2d81b6c164696817a8
/frameworks/base/core/jni/android_media_AudioTrack.cpp
33b840444f5a481dd31e129079d3c0cf3acdf80e 08-Mar-2016 Glenn Kasten <gkasten@google.com> Use audio_session_t consistently

Also prefer AudioManager.AUDIO_SESSION_ID_GENERATE over
AudioSystem.AUDIO_SESSION_ALLOCATE, because
AudioSystem.AUDIO_SESSION_ALLOCATE is @hide.

Bug: 27562099
Change-Id: I5924554feb919db7f2390f5b062faedd515421af
/frameworks/base/core/jni/android_media_AudioTrack.cpp
78652ee24d6e6ea6c7f2b4c7f72b3c8097a27fe5 04-Mar-2016 Paul McLean <pmclean@google.com> Remove redundant stop() from native audiotrack release.

Support for ReleaseJavaProxy() semantics in Wilhelm IAndroidConfiguration.

Bug: 23899814
Change-Id: Iaa29b950c02b30d3a1a4621bd9c2fc62361e48d6
/frameworks/base/core/jni/android_media_AudioTrack.cpp
9b09e533ac67d3d25465e3312b4957bc90b0c84f 26-Jan-2016 Paul McLean <pmclean@google.com> JNI plumbing for native audio routing API

Bug: 23899814
Change-Id: I3a831bb661fbdfe1981ae3482fcc8773c7df22b6
/frameworks/base/core/jni/android_media_AudioTrack.cpp
1cbf9b3741ec486c3ffce08f145501eb1ca73640 02-Feb-2016 Glenn Kasten <gkasten@google.com> Allow sample rate UNSPECIFIED to mean a route-dependent value

Bug: 25641253
Bug: 21019153
Change-Id: I3b8e01b6ea09f42c813ab1a0f3f625dc3803cc0b
/frameworks/base/core/jni/android_media_AudioTrack.cpp
43f4b276a56e6fb5a3c9637c0e3a6865657e3be7 28-Jan-2016 Phil Burk <philburk@google.com> AudioFormat: implement ENCODING_IEC61937

Allows applications to wrap compressed audio in a PCM
stream and pass through directly to HDMI output.

Bug: 24541671
Bug: 20891646
Bug: 26373761
Signed-off-by: Phil Burk <philburk@google.com>

Change-Id: If29e10b0665758330eca085bfeaac19fefc373b3
/frameworks/base/core/jni/android_media_AudioTrack.cpp
8c2dd1f7e7771c61e5aeb4570e097e258d18cdef 18-Jan-2016 Phil Burk <philburk@google.com> Merge "Revert "Revert "AudioTrack: Add getUnderrunCount()"""
10a33e499c97767f8d6bfc6514ba8b5f485394da 08-Jan-2016 Phil Burk <philburk@google.com> AudioTrack: add setBufferSizeInFrames()

Also add getBufferCapacityInFrames().
These can be used to dynamically raise or lower latency.
Fix JavaDocs.

Bug: 21019153
Change-Id: I5c795c23826f7f29038d0de7004f4b7f365cd67e
Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/base/core/jni/android_media_AudioTrack.cpp
03f61bbb2e7293592ad4a304b0f0b8e6ee8e6aac 17-Jan-2016 Phil Burk <philburk@google.com> Revert "Revert "AudioTrack: Add getUnderrunCount()""

This reverts commit 0ac70888d3f08b694e3e31939f2cfb90ce5e0f58.

The first revert was not needed. It was made to fix a broken build. But the break was from a different CL. SO I am reverting the revert.

Change-Id: Iad30209a38f9a0af18d684e44f033a49f32af778
/frameworks/base/core/jni/android_media_AudioTrack.cpp
0ac70888d3f08b694e3e31939f2cfb90ce5e0f58 17-Jan-2016 Phil Burk <philburk@google.com> Revert "AudioTrack: Add getUnderrunCount()"

This reverts commit e08c454a8929c13206833cb3422f136f4847a6ff.

JavaDoc error

Change-Id: Ic389be67c8fc8a365948984e9cc7648ee8058371
/frameworks/base/core/jni/android_media_AudioTrack.cpp
77e01bd3ad92eb2290e942a58042e08683b5acaf 17-Jan-2016 Phil Burk <philburk@google.com> Revert "AudioTrack: add setBufferSizeInFrames()"

This reverts commit adfb7f62dda47100e1023503d3492e4894f832fa.

Due to JavaDoc error

Change-Id: I41acaa83b7800f88f000291c8deba18d7394be94
/frameworks/base/core/jni/android_media_AudioTrack.cpp
e08c454a8929c13206833cb3422f136f4847a6ff 14-Jan-2016 Phil Burk <philburk@google.com> AudioTrack: Add getUnderrunCount()

This allows an app to detect application-level output glitches.

Change-Id: I4fb1eafff19a3dd776efae04ddd2e3514184d17f
Bug: 25641253
Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/base/core/jni/android_media_AudioTrack.cpp
adfb7f62dda47100e1023503d3492e4894f832fa 08-Jan-2016 Phil Burk <philburk@google.com> AudioTrack: add setBufferSizeInFrames()

Also add getBufferCapacityInFrames().
These can be used to dynamically raise or lower latency.

Bug: 21019153
Change-Id: I3403982894c5fe101f45d0466b00ff3036b28417
Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/base/core/jni/android_media_AudioTrack.cpp
931fde4291afb05fca3d23214d19a883782ed22b 08-Jan-2016 Glenn Kasten <gkasten@google.com> Better fix for unregistered JNI method

Bug: 26445503
Change-Id: I0de5c34a86f14aeb786a12df8488511c4a280912
/frameworks/base/core/jni/android_media_AudioTrack.cpp
25d3c7c49bafb22723138bfab2e315d2d0a926fb 07-Jan-2016 Glenn Kasten <gkasten@google.com> Revert "Short-term fix for unregistered JNI method"

This reverts commit 7922be86e29002dc3714824b2b669a9760de0528.
/frameworks/base/core/jni/android_media_AudioTrack.cpp
7922be86e29002dc3714824b2b669a9760de0528 07-Jan-2016 Glenn Kasten <gkasten@google.com> Short-term fix for unregistered JNI method

Bug: 26445503
Change-Id: Id40d4f026572538e3481d8e4c7142fd5489670a3
/frameworks/base/core/jni/android_media_AudioTrack.cpp
bd2c3d65d6b62b5a359268246e7ebe96904bd851 14-Dec-2015 Glenn Kasten <gkasten@google.com> Use FCC_2 and FCC_8 to highlight channel count assumptions

Bug: 21656069
Change-Id: I20a74575eddf6e28f1777d04eeab396f28bcc0cc
/frameworks/base/core/jni/android_media_AudioTrack.cpp
b57dd722f1dc0663417da37d3a82f8283ad3c982 24-Sep-2015 Elliott Hughes <enh@google.com> resolved conflicts for a884d81e to stage-aosp-master

Change-Id: Ice485967fa96f13786024b6939b826638e906ff0
76f6a86de25e1bf74717e047e55fd44b089673f3 19-Sep-2015 Daniel Micay <danielmicay@gmail.com> constify JNINativeMethod function pointer tables

Change-Id: I4036c924958221cbc644724f8eb01c5de3cd7954
/frameworks/base/core/jni/android_media_AudioTrack.cpp
16144ac3789f6dbe36a7011cf23305f072a7bfcb 28-May-2015 Glenn Kasten <gkasten@google.com> Merge "Add comments to indicate code review was done for bugs" into mnc-dev
cef696e8b464e6479ed352b3b490e41ee677bd91 21-May-2015 Paul McLean <pmclean@google.com> Test for non-null AudioTrack() object in android_media_AudioTrack_setOutputDevice().

Change-Id: Ibf77bb0757720aa25eaaf6e603ab446257430453
/frameworks/base/core/jni/android_media_AudioTrack.cpp
14d226a2cd7b39e17a3f0bfdab79e645f7146f53 18-May-2015 Glenn Kasten <gkasten@google.com> Add comments to indicate code review was done for bugs

Bug: 20818955
Bug: 20890069
Change-Id: I243205b99b198eb1b5a1a027b27cbb7d5aaaa8db
/frameworks/base/core/jni/android_media_AudioTrack.cpp
973b8851eecbdcbab4992be01aaab568fd371a0a 14-May-2015 Andy Hung <hunga@google.com> Allow partial playback parameter settings in AudioTrack

Change-Id: Ifb12c85312e25aa74da47fe0eae2d5b1fa4bb23b
/frameworks/base/core/jni/android_media_AudioTrack.cpp
2d61e2b97c92ac2de80ebb3782b728ae5cdf5306 09-May-2015 Wei Jia <wjia@google.com> MediaSync: address API review.

Rename *Settings to *Params;
Remove size parameter from MediaSync.queueAudio();

Bug: 20887706
Change-Id: I4c572da92ada51458031a482b96b3f624224e608
/frameworks/base/core/jni/android_media_AudioTrack.cpp
4bcdba848449b33d7022de527c526943aff1f5fd 01-May-2015 Eric Laurent <elaurent@google.com> Implement audio routing callbacks

Implement JNI for AudioTrack and AudioRecord routing
callbacks:
- Added files core/jni/android_media_DeviceCallback.cpp/.h
for JNI callback implementation used by both AudioTrack
and AudioRecord.
- Made AudioManager AudioPort and AudioPatch methods static
in order to call them without context.

Also added IO handle information to AudioMixPort.

Change-Id: Icee182aa68310d4b12fd1469f48e78110889acf1
/frameworks/base/core/jni/android_media_AudioTrack.cpp
fe48e0dfb9862356cd4af645fb010236fc273a4a 28-Apr-2015 Andy Hung <hunga@google.com> Pass PlaybackSettings as class object for AudioTrack JNI

Change-Id: Ic7fb5f84ed1fc4cc2286e5c207fee5298a64a5a4
/frameworks/base/core/jni/android_media_AudioTrack.cpp
30d794360f35592554403922bcc07835fea4737b 24-Apr-2015 Andy Hung <hunga@google.com> Move channel index computation to native AudioTrack JNI

Change-Id: I047a9dcce13a38c11da165607d668dfb9d7fa335
/frameworks/base/core/jni/android_media_AudioTrack.cpp
263b4c97823295c41900210515d0c769a236190c 16-Apr-2015 Andy Hung <hunga@google.com> Add PlaybackSettings for use with AudioTrack

Change-Id: Ie59686d46869558d489a7600170ddace00e548d5
/frameworks/base/core/jni/android_media_AudioTrack.cpp
4aacc903e3f0216a1aec00d57d34f902025d5bd0 15-Apr-2015 Andy Hung <hunga@google.com> Add non-blocking writes to AudioTrack

Change-Id: I4ff47c2851be1b085f4e758f67e391932371027d
/frameworks/base/core/jni/android_media_AudioTrack.cpp
88e1d86a879d8802e775dd0566ffb64425e8e3c8 07-Apr-2015 Paul McLean <pmclean@google.com> Adding explicit routing API to AudioTrack

Change-Id: Iee7e1ce79e3efd3f8aafd0a5899fe037d314e1be
/frameworks/base/core/jni/android_media_AudioTrack.cpp
a9470c19a9dfe362a201c569f14b669b7aa69ee4 30-Jan-2015 Andy Hung <hunga@google.com> Add channel index mask to AudioTrack and AudioFormat

Change-Id: Ia5faa56360edcbbdeae8838ec0f82386f4e5e640
/frameworks/base/core/jni/android_media_AudioTrack.cpp
071a8b71d1212e218a3ebf7dbb8908a4acf5cf6d 10-Mar-2015 Wei Jia <wjia@google.com> MediaSync: add MediaSync JAVA API

Bug: 19666434
Change-Id: Iab6941f6d81cb95a3b86be14b239287acb0d0eee
/frameworks/base/core/jni/android_media_AudioTrack.cpp
2c0e17c029eccc06deb883d8d564a7e19d98f65e 13-Jan-2015 Andy Hung <hunga@google.com> Allow AUDIO_FORMAT_PCM_8_BIT static AudioTrack buffers

Change-Id: I7424455ccff860126ceda432613db67a8933ea1e
/frameworks/base/core/jni/android_media_AudioTrack.cpp
ed6b9dff563c5e22f040ff37e12c0d771e0478ae 21-Nov-2014 Andreas Gampe <agampe@google.com> Frameworks/base: Consistency in core/jni

Make consistent use of core_jni_helpers for registration.

Translate some #ifdefs into const bools.

Change-Id: I37639aa053dd50f003a552cbd8550dddecc811c5
/frameworks/base/core/jni/android_media_AudioTrack.cpp
701d6ff12f36bf5e9de0dafdaced06744fd411eb 16-Jul-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioAttributes and AudioRecord.

Add audio recording source in AudioAttributes.
New AudioRecord constructor with AudioAttributes and
AudioFormat.
Legacy AudioRecord constructor is calling into the new
constructor.

Bug 16009464

Change-Id: I69d81f9e71bdf946c4cfbda6d3d8552ffac6b5c2
/frameworks/base/core/jni/android_media_AudioTrack.cpp
c8d6b6fc7dd05c10ca301e654f063cc89781c9be 28-Jul-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioTrack transfer mode in JNI

Set the correct transfer mode in AudioTrack JNI and configuring
the native AudioTrack instance, based on the memory mode
passed in Java.
Add comment about the audio attributes parameter superseeding
the stream type parameter in the AudioTrack constructor.

Change-Id: Ia43f42874452ac47c3c044d5446a4732da0fd56c
/frameworks/base/core/jni/android_media_AudioTrack.cpp
dbf55665c5c4802cbfc56463198805be48ec75af 02-Jul-2014 Eric Laurent <elaurent@google.com> audio: fixed channel count determination from channel mask

Do not use popcount() to derive channel count from channel mask.

Bug: 15000850.
Change-Id: Id52fc517bedaf1c42b9cd59857e3d19c251b97bf
/frameworks/base/core/jni/android_media_AudioTrack.cpp
a1d80e3b1d210c60c6881a55ed39a4077ff66080 18-Jun-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioTrack Java constructor with AudioAttributes and AudioFormat

Change-Id: I82758a4231b8dc0b8d8e72acf3c896a289c28f60
/frameworks/base/core/jni/android_media_AudioTrack.cpp
ff0d9f098e51c54e1a030ed21fd980680cb7b405 10-Jun-2014 Eric Laurent <elaurent@google.com> AudioTrack: Add support for compressed audio

Add AudioFormat encoding definitions for compressed audio
and modify AudioTrack to accept compressed audio data.

Bug: 9428304.

Change-Id: Ib85a4d0d78af45924328f4d2d2ffebe83f4a00c5
/frameworks/base/core/jni/android_media_AudioTrack.cpp
bc11a696f6856624de532a6830d5db9dbbe2384c 16-May-2014 Eric Laurent <elaurent@google.com> AudioSystem: native to JAVA status translation

Regroup status code translation from native to JAVA in AudioSystem.
The same codes will be used by AudioTrack, AudioRecord, AudioManager
and defined in a single place in AudioSystem.

Change-Id: I7d3f39f30e3bb8e53f33f4408bcb0672df8af42b
/frameworks/base/core/jni/android_media_AudioTrack.cpp
2defed988f74c98d5af8d02551ebf7262490cc5b 15-May-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioTrack JNI cleanup

Remove unused query of AudioFlinger sample rate and frame count.
Remove redundant stream type check, it's already done in Java.

Change-Id: I2565f8df7488f5f994f6f72c746dadbcaeb43966
/frameworks/base/core/jni/android_media_AudioTrack.cpp
54955e33c8612a737a76177408f3e7c8482cfcf4 01-May-2014 Glenn Kasten <gkasten@google.com> Add hidden support for ENCODING_PCM_FLOAT to AudioTrack

Change-Id: I15e6d6ab34846366e7f5cbf948fd3cb327e72632
/frameworks/base/core/jni/android_media_AudioTrack.cpp
3d4c64191a181aac0922abbd56f4046d6b7ec31c 30-Apr-2014 Eric Laurent <elaurent@google.com> fix AudioTrack and AudioRecord JNI

AudioTrack and AudioRecord JNI should not cast
jshortArray to jbyteArray. This appeared to work with Dalvik
but causes data corruption with ART.

Change-Id: Ib30b71e0d4007c4b574bc409963ddc5975ad4f78
/frameworks/base/core/jni/android_media_AudioTrack.cpp
5c2f20394edfb2c89d88d51772717b8f61a50f60 01-Apr-2014 Glenn Kasten <gkasten@google.com> Merge "Don't ignore return value of setAuxEffectSendLevel()"
3009f0b911e39d3b26c69bd7667d6444eacb9d11 29-Mar-2014 Glenn Kasten <gkasten@google.com> Don't ignore return value of setAuxEffectSendLevel()

Change-Id: I1383c913304430146e6f40d89df623dd0d582e50
/frameworks/base/core/jni/android_media_AudioTrack.cpp
170e0c4bf02fd236e5f992010aabdbc90b7587db 01-Apr-2014 Glenn Kasten <gkasten@google.com> Merge "Use memcpy_to_i16_from_u8 from audioutils instead of C loop"
b9b07b8c48dca71c0aa6adf77baabcea0285215e 01-Apr-2014 Glenn Kasten <gkasten@google.com> Merge "AudioTrack and AudioRecord JNI cleanup"
d1f7354dd814ce117f1fa63934151ca0b929ab6e 31-Mar-2014 Glenn Kasten <gkasten@google.com> Fix build from multiple declaration

Change-Id: Id2dd703aedef0423605407ab7a14ef7b48c2fcdb
/frameworks/base/core/jni/android_media_AudioTrack.cpp
1dd51abaae27af8e12ee06b9651fd6e4334963a5 31-Mar-2014 Glenn Kasten <gkasten@google.com> Merge "Use set() return value instead of separate call to initCheck()"
8f81d0832bd2eea2e479f38160961fbcf35bd591 28-Nov-2012 Glenn Kasten <gkasten@google.com> Include more information in AudioTrack JNI error logs

Change-Id: I0e57060dd46cce4ec8217bb7d122bd010c974717
/frameworks/base/core/jni/android_media_AudioTrack.cpp
37967d46f40c8c52c88ff8c011972a1489d465ec 28-Nov-2012 Glenn Kasten <gkasten@google.com> Use memcpy_to_i16_from_u8 from audioutils instead of C loop

This function may be optimized in the future,
and it will make it easier to search for audio sample
format-specific code when we need add support for more formats.

Change-Id: Iad0585c35ddd2d12857164ed1effcce75f77920c
/frameworks/base/core/jni/android_media_AudioTrack.cpp
c5d142428ad68dd8aa4ffb80719667b13ad5049f 29-Mar-2014 Glenn Kasten <gkasten@google.com> Use set() return value instead of separate call to initCheck()

Change-Id: I6874ca00512d30824ecec10b8dc289993b985c7b
/frameworks/base/core/jni/android_media_AudioTrack.cpp
5b8fd44365f03601aaba41879ac18e70ce814a0f 14-Nov-2013 Glenn Kasten <gkasten@google.com> AudioTrack and AudioRecord JNI cleanup

Rename nbChannels to our conventional channelCount,
which should make code searches easier.

Change-Id: I3c2791db302558a15bc8be198b6f3d482e0e0055
/frameworks/base/core/jni/android_media_AudioTrack.cpp
5d21f679c58dbb13c8c931ffec6e06b6b8cd454f 21-Mar-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioTrack write from ByteBuffer updates position

Remove offset parameter.
Update buffer position when data is successfully written.

Bug 7919023

Change-Id: I1701532ef0a91e2ccecfc38b24de29bc4f64d035
/frameworks/base/core/jni/android_media_AudioTrack.cpp
7ca2b8958578dfd1a382b8f9e44e45ffb0de5d58 11-Mar-2014 Jean-Michel Trivi <jmtrivi@google.com> Merge "AudioTrack write method with data in ByteBuffer"
7ca0452fa62b9c15bd45b0fd52aef97442555a6e 07-Feb-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioTrack write method with data in ByteBuffer

New write method with data in ByteBuffer. Allows blocking and
non-blocking write.
If the ByteBuffer is not direct, the implementation uses the
existing implementation with a byte array.

Bug 7919023

Change-Id: I6935e3e05783d7d7672614b194941a87abbb50cf
/frameworks/base/core/jni/android_media_AudioTrack.cpp
3118ca9b098259a9bb3b42571152dbd87a34fd70 28-Feb-2014 Glenn Kasten <gkasten@google.com> AudioTrack constructor/set parameter frameCount is size_t

Change-Id: Ie92ab0433531b3852747a81d2bfce9625644a2ae
/frameworks/base/core/jni/android_media_AudioTrack.cpp
eac8438a7dbe42e81f5273e0847a3f5e4247aa5b 04-Feb-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioTrack JNI function rename

The "native" prefix is used to identify methods with a native
implementation on the Java side, and shouldn't therefore be used
on some of the functions (and not others) here.

Change-Id: I9e88a1159c8f06260af6667e239dcdd39479b11f
/frameworks/base/core/jni/android_media_AudioTrack.cpp
6bb5cb24b458a11bd02e9bff37c03f6381e06b7c 16-Jan-2014 Narayan Kamath <narayan@google.com> Resolved conflicts for merge of 28c6ec02 to master

Change-Id: Idf1cabf2694dfa13d928df944d346f5e051b6948
075e9a19ce645752f8282bc19c91b25978a7dc52 06-Jan-2014 Ashok Bhat <ashok.bhat@arm.com> AArch64: Use long for pointers in media classes

For storing pointers, long is used in media 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: Idc4ca0124d03df7f9cef412488abafd020e5e774
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>
/frameworks/base/core/jni/android_media_AudioTrack.cpp
fe834d30f4f3f51b754d55fecb36f11279733948 08-Jan-2014 Glenn Kasten <gkasten@google.com> Prepare for additional formats beyond 8-bit and 16-bit PCM

This CL does the same thing for AudioTrack,
that an earlier CL did for AudioRecord:
> Change-Id: Ic3525f049e939bdf125d9f87ed39abd2690dcf9f

Pull out the common parts of that earlier CL and move them to new header
file android_media_AudioFormat.h.

Use the new function audioFormatToNative() to convert from Java
ENCODING_PCM_* to native AUDIO_FORMAT_*.

Use audio_bytes_per_sample() instead of hard-coding the size of various formats.

Use size_t for memory sizes.

Change-Id: I7992dd6a2c9500126a6d7ae5fc1ed9f3312962d6
/frameworks/base/core/jni/android_media_AudioTrack.cpp
659a9712f2072f0bb3fa39de23f252f2f97440b4 08-Jan-2014 Glenn Kasten <gkasten@google.com> Improve error reporting in AudioTrack JNI

for android_media_AudioTrack_get_min_buff_size when it
calls AudioTrack::getMinFrameCount. That AudioTrack API
has been changed recently to guarantee that it will always
return a valid frameCount if the return value == NO_ERROR.

Change-Id: I8f7f850f1c30229ce77a02bdc963634cdbaf3aac
/frameworks/base/core/jni/android_media_AudioTrack.cpp
948c2e6ff46d65942277f2e0e9ce0c038972b9d8 04-Sep-2013 Glenn Kasten <gkasten@google.com> Java API for AudioTrack timestamps

This change adds android.media.AudioTimestamp and
android.media.AudioTrack.getTimestamp, with implementation, but hidden.

Change-Id: Ic314f04ff775baca05c57d19b5ea91133dbd0be1
/frameworks/base/core/jni/android_media_AudioTrack.cpp
094010925a1b9db5238c495bea48c606e87d6e32 05-Aug-2013 Glenn Kasten <gkasten@google.com> Merge "Explicitly compare raw pointers to NULL"
a667ff30e4fb6f741c2a930e7c31ef7e962d3b40 22-Jul-2013 Glenn Kasten <gkasten@google.com> Explicitly compare raw pointers to NULL

Change-Id: If76a15509d4121e391e28f26ca273cc00552efa8
/frameworks/base/core/jni/android_media_AudioTrack.cpp
844b0475ed26a1967919a3f119448c7c3159cb25 01-Aug-2013 Glenn Kasten <gkasten@google.com> Remove dead code in AudioTrack JNI

Change-Id: I17103485cdefdf2d1dbda8d1993e64c80d4e952e
/frameworks/base/core/jni/android_media_AudioTrack.cpp
33c437df39029b70d4ffafac2ca31bd71eafd0c6 19-Jul-2013 Glenn Kasten <gkasten@google.com> Rename mChannels to mChannelMask to avoid ambiguity

This clarifies that it's a channel mask, as opposed to a count.

Also no need to initialize the field in the declaration,
as it's initialized in the constructor.

Include channel mask in error logs.

Change-Id: Ifc02668cf922dc8826a9fb042b3ca52fad377ba6
/frameworks/base/core/jni/android_media_AudioTrack.cpp
922a8c0aa8b9ea278c6d5dc21498930dab47ea75 23-Jul-2013 Glenn Kasten <gkasten@google.com> Merge "Use switch in callback handler for events, and no EVENT_MORE_DATA"
5bae9df4e886439a3a1e63b60d191e2d59e9c4eb 23-Jul-2013 Glenn Kasten <gkasten@google.com> Merge "Replace run-time PCM encodings by compile-time constants"
82c2d54b53d4b0f568a0ca8bf3d77ef6c2be0c12 22-Jun-2012 Glenn Kasten <gkasten@google.com> Remove unused includes

Change-Id: Id9842fe092aba2761c0641c76ad06749b2e1d9b3
/frameworks/base/core/jni/android_media_AudioTrack.cpp
5b1576ccbd9ab43d5e3238589cf5b43a4834447d 19-Jul-2013 Glenn Kasten <gkasten@google.com> Use switch in callback handler for events, and no EVENT_MORE_DATA

EVENT_MORE_DATA is no longer possible for the transfer mode used by Java.

Change-Id: Iffd98bca8adea7e066d5d069e82aa841e5c02330
/frameworks/base/core/jni/android_media_AudioTrack.cpp
9d2bc860d3f8468422ea2b5de9fa9d4ada4fbbe5 16-Jan-2012 Glenn Kasten <gkasten@google.com> Replace run-time PCM encodings by compile-time constants

Simplify the code to use the constant values of ENCODING_PCM_16BIT and
ENCODING_PCM_8BIT from AudioFormat.java.

There is already a comment in AudioFormat.java saying that these symbols
need to be kept in sync with this file, and they are public static final
so they can never be changed.

This change is similar to commit 3d301cb2b1d9e61c3af8a8b0b9db370d3d7abf77
or Change-Id I6cb10ac511df4845610454d1659e64d9195d67cd

Change-Id: Ib62d8cfeb6261ffd362dba3600d593e2a268d76a
/frameworks/base/core/jni/android_media_AudioTrack.cpp
9b53db378aa76c3c24bd423113a46e696fa9af22 10-Jul-2013 Glenn Kasten <gkasten@google.com> AudioTrack write() on a full buffer while paused returns 0

Change-Id: I85d44452cd8a5f87c7fc9b6a0858569cb5293eb4
/frameworks/base/core/jni/android_media_AudioTrack.cpp
f7e0a370e7178f698605165fc362384a42f3547d 10-Jul-2013 Glenn Kasten <gkasten@google.com> Return correct status for android.media.AudioTrack.write(short[]...)

Bug: 9776374
Change-Id: If43c63a4ceeb8fef98708f0d42496d2fb90a21fd
/frameworks/base/core/jni/android_media_AudioTrack.cpp
61dcdf3764b614c6f01e77cb4342d192e3101f8a 26-Jun-2013 Oliver Woodman <olly@google.com> Expose latency methods through AudioManager and AudioTrack.

There's a longer term plan to fix audio/video sync, but
this gets the Java level to parity with the native level,
and allows applications in Java to achieve sync in the
same way as the native media player. APIs are left as hidden
for now.

Change-Id: Iaf70baac1ffb50ef48e03355163158568fbd0fe9
/frameworks/base/core/jni/android_media_AudioTrack.cpp
b1d90c8f60f71422196c337f1d078b68867f5710 07-Mar-2013 Mathias Agopian <mathias@google.com> fix JNI use of incStrong/decStrong

Change-Id: Ia11b404dea483dc19bbc30f4d7bcff516655e180
/frameworks/base/core/jni/android_media_AudioTrack.cpp
2b0b6596e4300350a84bbe917fd87f3b79bd2888 06-Dec-2012 Glenn Kasten <gkasten@google.com> Merge "Replace run-time modes by compile-time constants"
1adb715bc6d088ed31f211bfdceded7c205a7d98 29-Nov-2012 Glenn Kasten <gkasten@google.com> new can't fail on Android

Change-Id: I0e048d3d8ba1ec34d13684b9fd898035d3381db8
/frameworks/base/core/jni/android_media_AudioTrack.cpp
3d301cb2b1d9e61c3af8a8b0b9db370d3d7abf77 16-Jan-2012 Glenn Kasten <gkasten@google.com> Replace run-time modes by compile-time constants

Simplify the code to use the constant values of MODE_STATIC and
MODE_STREAM from AudioTrack.java.

There is already a comment in AudioTrack.java saying that these symbols
need to be kept in sync with this file, and they are public static final
so they can never be changed.

Change-Id: I6cb10ac511df4845610454d1659e64d9195d67cd
/frameworks/base/core/jni/android_media_AudioTrack.cpp
fd1e3dfde2a70906c50144a7b1b53593ec1f7891 14-Nov-2012 Glenn Kasten <gkasten@google.com> Use size_t for frame count

Change-Id: Idd364443715a920ece2cc54acc95b395b6ed2c6c
/frameworks/base/core/jni/android_media_AudioTrack.cpp
85fbc871ded0f71f9638f85e7d2f03a35bf39dda 14-Nov-2012 Glenn Kasten <gkasten@google.com> Use uint32_t for sample rate

Change-Id: If6d4f53254b630dc479af22b77b59555b43eeab4
/frameworks/base/core/jni/android_media_AudioTrack.cpp
532bc1cb7da9fdbf34893fa48b2ae11f54cf6a8e 20-Apr-2012 Eric Laurent <elaurent@google.com> Fix threading issues in AudioRecord JNI

Made native AudioRecord ref based to allow use
of strong pointers in JNI and solve concurrency issues
between read() and release() in particular.

Applied the same fixes to AudioTrack JNI.

Issue 6254582.

Change-Id: I381a66cb00b6639f87f4fcd19a2e202d1a4e6704
/frameworks/base/core/jni/android_media_AudioTrack.cpp
10536b657d306416dfec738c6538a1afcb7e078e 18-Apr-2012 Eric Laurent <elaurent@google.com> rename audio policy flags

Change-Id: Id273d1366ed2dc9ae9f38497414a68523bceae66
/frameworks/base/core/jni/android_media_AudioTrack.cpp
6940484150b9ef96c93ddfb4b2dfedcaa373cb34 14-Mar-2012 Glenn Kasten <gkasten@google.com> Merge "Use correct syntax for #include <> """
c81d31c3f801ba3d559a22c27b926ace38a7ab49 13-Mar-2012 Glenn Kasten <gkasten@google.com> Use correct syntax for #include <> ""

Change-Id: I943137108668ae66f8eba18dafe069a7951bcd8f
/frameworks/base/core/jni/android_media_AudioTrack.cpp
18db49a46259020387c40fff36d92edc1087a366 13-Mar-2012 Glenn Kasten <gkasten@google.com> Whitespace and indentation

Fix indentation to be multiple of 4.
Make it easier to search:
sp< not sp < to
"switch (...)" instead of "switch(...)" (also "if" and "while")
Remove redundant blank line at start or EOF.
Remove whitespace at end of line.
Remove extra blank lines where they don't add value.

Use git diff -b or -w to verify.

Change-Id: I966b7ba852faa5474be6907fb212f5e267c2874e
/frameworks/base/core/jni/android_media_AudioTrack.cpp
28b269f3418c27275bbf635e524ed501bfac6518 07-Mar-2012 Glenn Kasten <gkasten@google.com> Use audio_policy_output_flags_t consistently

This affects:
- IAudioFlinger::openOutput
- AudioTrack::AudioTrack
- AudioTrack::set
- apps that call these

Change-Id: I26fb281bac6cb87593d17697bc9cb37a835af205
/frameworks/base/core/jni/android_media_AudioTrack.cpp
00db1f52b1c12d3670a0419305aa7548f7932aa0 16-Jan-2012 Glenn Kasten <gkasten@google.com> Rename JNI implementation to match Java method

android_media_AudioTrack_native_write renamed to
android_media_AudioTrack_native_write_byte, since the Java method name
is called native_write_byte.

Change-Id: I85ef092cf3f5a01d275fc4ef127b4b6d190139e8
/frameworks/base/core/jni/android_media_AudioTrack.cpp
29a0909c5f777230b9f34ef0703fed3cd4633833 16-Jan-2012 Glenn Kasten <gkasten@google.com> Replace run-time stream types by compile-time

Use the AUDIO_STREAM_* constants defined in <system/audio.h> instead of
dynamically looking up stream types from AudioManager.

Replace a series of "if" statements by a switch.

Change-Id: I6d015bc151c9ab97a02492e84c63298b1f6f31ac
/frameworks/base/core/jni/android_media_AudioTrack.cpp
bc1d77b6cbce23fbe25f7231651037ae195bc90e 13-Jan-2012 Glenn Kasten <gkasten@google.com> Use audio_stream_type_t consistently

At native level it was a mixture of audio_stream_type_t, int, uint32_t,
and uint8_t. Java is still int. Also fixed a couple of hard-coded -1
instead of AUDIO_STREAM_DEFAULT, and in startToneCommand a hard-coded 0
instead of AUDIO_STREAM_VOICE_CALL.

Change-Id: Ia33bfd70edca8c2daec9052984b369cd8eee2a83
/frameworks/base/core/jni/android_media_AudioTrack.cpp
1c66547ba25be6a1893df0ae26857f649474843a 12-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Use audio_format_t consistently"
3762c311729fe9f3af085c14c5c1fb471d994c03 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
/frameworks/base/core/jni/android_media_AudioTrack.cpp
1c5a89d4af193e3ce9be9992ffee0ab0a4d8da5a 04-Jan-2012 Glenn Kasten <gkasten@google.com> Use audio_format_t consistently

Was int, uint32_t, uint16_t, and uint8_t with 2-bit bitfield.
Also replace 0 by AUDIO_FORMAT_DEFAULT and replace 1 by
AUDIO_FORMAT_PCM_16_BIT.

Change-Id: Ia8804f53f1725669e368857d5bb2044917e17975
/frameworks/base/core/jni/android_media_AudioTrack.cpp
fb2ab9efc3805c81521afb9ff91a58ff5097a36e 12-Dec-2011 Glenn Kasten <gkasten@google.com> Fix indentation and whitespace

Use git diff -w to verify.

Change-Id: Ib65be0a1ecf65d6cad516110604e3855bf68a638
/frameworks/base/core/jni/android_media_AudioTrack.cpp
71f2cf116aab893e224056c38ab146bd1538dd3e 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
/frameworks/base/core/jni/android_media_AudioTrack.cpp
d9ae1c573e37e245c7f4f0480a8fa925e57bd49d 25-Jul-2011 Jean-Michel Trivi <jmtrivi@google.com> Fix bug 4319552 Java to native channel mask translation

When creating a new AudioTrack instance, translate from a Java
channel mask as defined in android.media.AudioFormat to one
as defined in audio.h which matches industry-standard
channel mask definitions.

Change-Id: I7eeece8ec2a437977c31f6e82590f9591158144b
/frameworks/base/core/jni/android_media_AudioTrack.cpp
e46a86fcb6a0849fc05c4cade6cb94aad0325295 02-Jun-2011 Glenn Kasten <gkasten@google.com> Revert "Use AudioTrack::event_type not int in callback"

This reverts commit 2225e4b7049fa3fb9d39a068b8268b63c952d7c1
/frameworks/base/core/jni/android_media_AudioTrack.cpp
2225e4b7049fa3fb9d39a068b8268b63c952d7c1 05-May-2011 Glenn Kasten <gkasten@google.com> Use AudioTrack::event_type not int in callback

Change-Id: Ifefc708d46874e04fd0d01cb6e2d43b987ee796c
/frameworks/base/core/jni/android_media_AudioTrack.cpp
34bb419e5946ab28112e9e27a4d1b3928d31e0e2 11-May-2011 Dima Zavin <dima@android.com> update for new audio.h header location

Change-Id: Ic4c62c4037800802427eb7d3c7f5eb8b25d18876
Signed-off-by: Dima Zavin <dima@android.com>
/frameworks/base/core/jni/android_media_AudioTrack.cpp
24fc2fb1c541e954b83fd31ea9f786a5e9b45501 20-Apr-2011 Dima Zavin <dima@android.com> audio/media: convert to using the audio HAL and new audio defs

Change-Id: Ibc637918637329e4f2b62f4ac7781102fbc269f5
Signed-off-by: Dima Zavin <dima@android.com>
/frameworks/base/core/jni/android_media_AudioTrack.cpp
46e18c11d46a2bc1a46174f963d0ed1224d94cd2 06-Apr-2011 Brian Carlstrom <bdc@google.com> Don't use local ref for cached jclass reference in JNI code

Change-Id: Id45b2acb358a819f2fd332e99f3a095f6fc7299b
related-to-bug: 4241138
/frameworks/base/core/jni/android_media_AudioTrack.cpp
421ddc014b31478ba0ef115e098d8780a35af331 07-Mar-2011 Eric Laurent <elaurent@google.com> Fix issue 3439872: video chat and bluetooth SCO

This change fixes the stability problems experienced when using
a bluetooth headset supporting both A2DP and SCO. Problems occur
when starting the video chat at which time the A2DP output is being
stopped to start SCO. At that time, active AudioTracks are invalidated
by AudioFlinger so that a new AudioTrack binder interface can be
recreated by the client process on the new mixer thread with correct parameters.
The problem was that the process to restore the binder interface was not
protected against concurrent requests which caused 2 binder interfaces
to be created sometimes. This could lead to permanent client deadlock
if one of the client threads was waiting for a condition of the first
created binder interface while the second one was created (as the AudioFlinger
would only signal conditions on the last one created).
This concurrent request situation is more likely to happen when a client
uses the JAVA AudioTrack as the JNI implementation uses simultaneously the
native AudioTrack callback and write push mechanisms. By doing so, the code
that checks if the binder interface should be restored (in obtainBuffer()) is
much more likely to be called concurrently from two different threads.

The fix consists in protecting the critical binder interface restore phase
with a flag in the AudioTrack control block. The first thread acting upon the binder
interface restore request will raise the flag and the second thread will just wait for
a condition to be signaled when the restore process is complete.

Also protected all accesses to the AudioTrack control block by a mutex to prevent
access while the track is being destroyed and restored. If a mutex cannot be held
(e.g because we call a callback function), acquire a strong reference on the IAudioTrack
to prevent its destruction while the cblk is being accessed.

Modified AudioTrack JNI to use GetByteArrayElements() instead of
GetPrimitiveArrayCritical() when writing audio buffers. Entering a critical section would
cause the JNI to abort if a mediaserver crash occurs during a write due to the AudioSystem
callback being called during the critical section when media server process restarts.
Anyway with current JNI implementation, either versions do not copy data most of the times
and the criticial version does not guaranty no data copy.

The same modifications have been made to AudioRecord.

Change-Id: Idc5aa711a04c3eee180cdd03f44fe17f3c4dcb52
/frameworks/base/core/jni/android_media_AudioTrack.cpp
2fb43ef8c0b922c1bd0d7cb6867e30d702d4bdb8 24-Sep-2010 Eric Laurent <elaurent@google.com> fix problem in AudioEffect JNI setup.

There is a problem in AudioEffect and Visualizer native_setup() methods
that causes a crash in the application after the mediaserver process
has crashed and restarted.
The problem is that the native AudioEffect/Visualizer constructor is
called while the JNI is in critical state after calling
GetPrimitiveArrayCritical(). As the mediaserver process just restarted, the
first call to AudioSystem will cause the binder IAudioflinger interface to
be reteived and a callback send to AudioSystem JNI to clear the mediaserver
error state. This will call env->FindClass() and crash due to the JNI being
in critical state.

Also fixed a similar problem in AudioTrack JNI

Change-Id: I4a9026a3e26c7f78d9b4b4bec1aac90fbee2ab62
/frameworks/base/core/jni/android_media_AudioTrack.cpp
c3308074cd6f06bbb35c1999b5260f938742a9e7 19-Aug-2010 Chia-chi Yeh <chiachi@android.com> Use getMinFrameCount() instead of querying AudioSystem directly.

Change-Id: I6c4d2f1778703c1fd1ba5610c46e77c857418bff
/frameworks/base/core/jni/android_media_AudioTrack.cpp
7070b36549d511d6627538c73dfbab23fbae5b43 16-Jul-2010 Eric Laurent <elaurent@google.com> Added support for auxiliary audio effects to AudioTrack and MediaPlayer.

Added methods to AudioTrack and MediaPlayer java classes to enable use of
auxiliary audio effects. The effect can be attached and detached by specifying its
ID and the send level controlled.

Change-Id: Ie74ff54a453096a742688476f612ce355543b6f3
/frameworks/base/core/jni/android_media_AudioTrack.cpp
619346f902241736d933657a4fe10f10c50a1ba8 21-Jun-2010 Eric Laurent <elaurent@google.com> Added support for audio sessions in MediaPlayer and AudioTrack.

Audio sessions are used to associate audio effects to particular instances (or groups) of MediaPlayers or AudioTracks.

Change-Id: Ib94eec43241cfcb416590f435ddce7ab39a07640
/frameworks/base/core/jni/android_media_AudioTrack.cpp
83b368505052f59616d29558e65e2250d01fd848 28-Jul-2009 Eric Laurent <elaurent@google.com> Fix issue 2015322 mediaframeworktest.MediaAudioTrackTest fails.
/frameworks/base/core/jni/android_media_AudioTrack.cpp
a553c25b33c99b345cf1c8688f8df0ed8df14e5a 17-Jul-2009 Eric Laurent <elaurent@google.com> Fix issue 1795088 Improve audio routing code

Initial commit for review.
Integrated comments after patch set 1 review.
Fixed lockup in AudioFlinger::ThreadBase::exit()
Fixed lockup when playing tone with AudioPlocyService startTone()
/frameworks/base/core/jni/android_media_AudioTrack.cpp
dbee03136fab65227bbe56b2cf03361a1bdbdf1c 17-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am 733cbb00: Merge change 7492 into donut

Merge commit '733cbb0009d3e16eac2383a694833bdbc0c7269e'

* commit '733cbb0009d3e16eac2383a694833bdbc0c7269e':
Delete leaked global ref in AudioTrack constructor.
8a1496855cb81a6f2e9e8d51dd6b6ed595047a2a 16-Jul-2009 Jean-Michel Trivi <jmtrivi@google.com> Delete leaked global ref in AudioTrack constructor.
/frameworks/base/core/jni/android_media_AudioTrack.cpp
fcc5be99e0497f25a12e77622c27b4de30e45b3d 07-Jul-2009 Eric Laurent <elaurent@google.com> am 88e209dc: Fix issue 1743700: AudioTrack: setPlaybackRate can not set the playback rate to twice of the ouputSR

Merge commit '88e209dcf8c2ebddda5c272f46d1bd5478bc639c'

* commit '88e209dcf8c2ebddda5c272f46d1bd5478bc639c':
Fix issue 1743700: AudioTrack: setPlaybackRate can not set the playback rate to twice of the ouputSR
88e209dcf8c2ebddda5c272f46d1bd5478bc639c 07-Jul-2009 Eric Laurent <elaurent@google.com> Fix issue 1743700: AudioTrack: setPlaybackRate can not set the playback rate to twice of the ouputSR

Store sample rate on 32 bits instead of 16 bits in audio_track_cblk_t.
Removed sampleRate() methods from AudioTrack and AudioRecord: replaced by getSampleRate().
AudioTrack::setSampleRate() no returns a status.
/frameworks/base/core/jni/android_media_AudioTrack.cpp
0795272aa226f4e965968a03daddc53ce30b7cda 20-May-2009 Mathias Agopian <mathias@google.com> move libbinder's header files under includes/binder
/frameworks/base/core/jni/android_media_AudioTrack.cpp
21dc037e7e7c51e33b5808320f47339ee3a2b103 09-May-2009 Jean-Michel Trivi <jmtrivi@google.com> Check the size of the data to write for STATIC AudioTrack objects.
Extracted actual writing from write jni function so it can be reused in an upcoming change.
/frameworks/base/core/jni/android_media_AudioTrack.cpp
a5cb7b7e82bfee87c1ef40f8d5b5d81c8ca13a23 25-Mar-2009 Jean-Michel Trivi <> Automated import from //branches/donutburger/...@142372,142372
/frameworks/base/core/jni/android_media_AudioTrack.cpp
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/jni/android_media_AudioTrack.cpp
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/jni/android_media_AudioTrack.cpp
076357b8567458d4b6dfdcf839ef751634cd2bfb 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
/frameworks/base/core/jni/android_media_AudioTrack.cpp
3dec7d563a2f3e1eb967ce2054a00b6620e3558c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
/frameworks/base/core/jni/android_media_AudioTrack.cpp
3001a035439d8134a7d70d796376d1dfbff3cdcd 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
/frameworks/base/core/jni/android_media_AudioTrack.cpp
da996f390e17e16f2dfa60e972e7ebc4f868f37e 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
/frameworks/base/core/jni/android_media_AudioTrack.cpp
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
/frameworks/base/core/jni/android_media_AudioTrack.cpp
b798689749c64baba81f02e10cf2157c747d6b46 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
/frameworks/base/core/jni/android_media_AudioTrack.cpp
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/core/jni/android_media_AudioTrack.cpp