d848eb48c121c119e8ba7583efc75415fe102570 |
|
08-Mar-2016 |
Glenn Kasten <gkasten@google.com> |
Use audio_session_t consistently Bug: 27562099 Change-Id: I328d8226191386b163f2ace41233607294c50dcd
/frameworks/av/include/media/AudioRecord.h
|
58883a0cbbde53579461ef7d9a639b4ac45cb55e |
|
09-Mar-2016 |
Glenn Kasten <gkasten@google.com> |
AudioRecord: Use original flags during track recreation Bug: 27554925 Change-Id: Idecbadcb114b9470e89dccf1c65b0f965cc2bf15
/frameworks/av/include/media/AudioRecord.h
|
7fd0422fbd17af3b24eb04421d37fce50f3826e2 |
|
02-Feb-2016 |
Glenn Kasten <gkasten@google.com> |
Sample rate 0 means a route-dependent rate Remove check for primary _output_ [sic] sampling rate for fast capture. Clean up AudioRecord handling of frame count and sample rate. Clean up AudioTrack handling of notification period updates. Make AudioRecord and AudioTrack more similar in order of operation, comments, and whitespace. Bug: 25641253 Bug: 21019153 Change-Id: I24a6677945987fc39a9bf93f70357e4bc7410f98
/frameworks/av/include/media/AudioRecord.h
|
3f0c902beb53a245c9db35e871607dba05b8d391 |
|
16-Jan-2016 |
Andy Hung <hunga@google.com> |
Add AudioRecord timestamps Bug: 13569372 Bug: 22886739 Change-Id: Ibc81afefb733d23676a632a0f2da31163fdbe05f
/frameworks/av/include/media/AudioRecord.h
|
90e8a97dd5c9d391d7a2ea6a2290ed976f928379 |
|
10-Nov-2015 |
Andy Hung <hunga@google.com> |
Use modulo position variables in AudioTrack and AudioRecord More type safety, plus correct treatment for sanitization. Bug: 25569906 Bug: 25232421 Change-Id: Id852277b81a1792c5e67392cd74bc39cba7ed1ad
/frameworks/av/include/media/AudioRecord.h
|
d7ab7afa57ed1fa6fb9c4ce18ea0df3ec939c067 |
|
06-May-2015 |
Eric Laurent <elaurent@google.com> |
Merge "Implement audio device callback" into mnc-dev
|
296fb13dd9b5e90d6a05cce897c3b1e7914a478a |
|
01-May-2015 |
Eric Laurent <elaurent@google.com> |
Implement audio device callback Add class AudioSystem::AudioDeviceCallback notifying AudioSystem clients upon device selection change on a given input or output thread. Maintain a list of installed callback per I/O handle in AudioSystem and call registered callbacks when an OPEN of CONFIG_CHANGED event is received on IAudioFlingerClient::ioConfigChanged(). Add methods to AudioTrack and AudioRecord to add and remove device change callbacks. Add methods to AudioTrack and AudioRecord to query currently selected device. ioConfigChanged() events now convey the audio patch describing the input or output thread routing. Fix AudioRecord failure to start when invalidation is handled by start(). Change-Id: I9e938adf025fa712337c63b1e02a8c18f2a20d39
/frameworks/av/include/media/AudioRecord.h
|
4cb668392ee0433462251afbee109405c6efacc8 |
|
02-May-2015 |
Jean-Michel Trivi <jmtrivi@google.com> |
AudioRecord keeps track of UID Bug 20832981 Change-Id: If5f3c61fae02d86b9d6fdf411711f854fd56c77d
/frameworks/av/include/media/AudioRecord.h
|
be71aa29a3c86d2e01cd17839d2a72ab09a1bce5 |
|
28-Apr-2015 |
Svet Ganov <svetoslavganov@google.com> |
Respect the record audio app op - media Change-Id: I3a97977b6e9a09355e2008f780d22d480fb7308b
/frameworks/av/include/media/AudioRecord.h
|
466dc8ed6ca6b7f585104806c48613dd34e608c9 |
|
17-Apr-2015 |
Paul McLean <pmclean@google.com> |
Explicit routing in AudioRecord Change-Id: I9cc5d54883a3e5c75d553fabb619fc8e49f4f9e5
/frameworks/av/include/media/AudioRecord.h
|
551b5355d34aa42890811fc3606d3b63429296cd |
|
20-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
AudioRecord::obtainBuffer() can return nonContig like AudioTrack And fix error handling in both AudioRecord and AudioTrack. Change-Id: I4853d736cc6d2c05de5b18b0eac62716edfa62ec
/frameworks/av/include/media/AudioRecord.h
|
0f5d69123490bb3c4fe26129dfd23e21ce184c88 |
|
20-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
Remove deprecation FIXMEs for TRANSFER_OBTAIN mode Change-Id: I7f43aabdb092e1465d79cd0eea5944fff18b93db
/frameworks/av/include/media/AudioRecord.h
|
957af4cef721c1eec1606850e77ad2ef1fd0eb0a |
|
24-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
Merge "AudioRecord::read() can be non-blocking to match AudioTrack"
|
82ceac025459b5b8887441d709081ec29c6b9416 |
|
24-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
Merge "set() in AudioRecord and AudioTracks needs no lock"
|
3622cdff65f34a99d2f55936a895387ad41510ce |
|
20-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
AudioRecord::read() can be non-blocking to match AudioTrack Change-Id: I23b9466b81ab6037d0bccd5e6f5974b7bd4aeacb
/frameworks/av/include/media/AudioRecord.h
|
bfd318402924414fbde4d31c9d23cc423f10b630 |
|
20-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
set() in AudioRecord and AudioTracks needs no lock Change-Id: I9d61b3d117e9b21fbbfad772d8981a5abb8fafae
/frameworks/av/include/media/AudioRecord.h
|
1d8b3b684f469f346c2e0d4420e25a23aa1dda55 |
|
20-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
Remove AudioRecord::notificationFrames() This API was unused, and is not present in AudioTrack Change-Id: I66a1eedc149af085269c0f438c3c8d4e226a0e5b
/frameworks/av/include/media/AudioRecord.h
|
d8772b24079b61018b455e602f3030284c30c7f5 |
|
20-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
Update AudioRecord comments to match AudioTrack Change-Id: I02cb51af058277991ad0b1b5dce45744b8e8c129
/frameworks/av/include/media/AudioRecord.h
|
a5017872000a938667c76d760a866547c3719d09 |
|
20-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
Update AudioTrack constructor and set() comments Comments were missing for recently added parameters. Change-Id: I414594fed56317112be5f3b415871d77e7f7e282
/frameworks/av/include/media/AudioRecord.h
|
5014c94c1bbac4a4284576b0015ba75145237593 |
|
20-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
AudioRecord::releaseBuffer() buffer is const *, like AudioTrack Change-Id: If09689a8411392281ad06fcf781f3198941c642d
/frameworks/av/include/media/AudioRecord.h
|
32860f77787f41abac08afdfc2592272ccc31bcb |
|
20-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
Deprecate AudioRecord::getInput() and AudioTrack::getOutput() Does not completely fix the bug, but is a step in the right direction. Bug: 12593118 Change-Id: Id591cd700ab58fd927ae44c71c81dac55b5cac2d
/frameworks/av/include/media/AudioRecord.h
|
d2027336b45f524a196403d351ec317782793792 |
|
20-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
Whitespace Change-Id: I4640be948ad3caff0eb7525991398a1353e4bfe6
/frameworks/av/include/media/AudioRecord.h
|
17ea1351633d4f5e4f9eafd0778eb8b59fa30f10 |
|
20-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
Update AudioRecord comments to match AudioTrack Change-Id: I6c3620c60c0ba159e4688b42de4ec8b91920e048
/frameworks/av/include/media/AudioRecord.h
|
d198b85a163330b03e7507c9e8bfeb5f4d958a6c |
|
16-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
Fix typos Fix typos in comments Add formal parameter name to declaration where it was missing Fix out of order comments Change-Id: I1de81ae82af5ca507864e4c7b959111bac898b98
/frameworks/av/include/media/AudioRecord.h
|
803b3e558022c6d0eb069308339dc84e6e8035dc |
|
19-Mar-2015 |
Andy Hung <hunga@google.com> |
Event driven wake for AudioRecordThread notification changes Used for setMarkerPosition and setPositionUpdatePeriod. Change-Id: Iedd1be8725dea32bdba6908b78c5166780a66fec
/frameworks/av/include/media/AudioRecord.h
|
fdfce553a8ea19af59ecc95d8395fc50e2b5bf35 |
|
16-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
Merge "Add FIXME to deprecate all APIs that assume a route"
|
f5e837e3c7d4b1cee3b18d740bf7d07f4d1ddc1c |
|
03-Jul-2014 |
Glenn Kasten <gkasten@google.com> |
Add FIXME to deprecate all APIs that assume a route Change-Id: I84e160e3945004338c808edd86b5dbbca1e12874
/frameworks/av/include/media/AudioRecord.h
|
f59497bd3c190e087202043de5450ef06e92b27d |
|
27-Jan-2015 |
Glenn Kasten <gkasten@google.com> |
Update comments Change-Id: I37d3c4ce22b74fe8581a886fe5a7f9fef8266dad
/frameworks/av/include/media/AudioRecord.h
|
caf7f48a0ef558689d39aafd187c1571ff4128b4 |
|
26-Nov-2014 |
Eric Laurent <elaurent@google.com> |
AudioRecord: use audio attributes instead of audio source. Added AudioRecord constructor with audio attributes. Replaced AudioPolicymanager::getInput() by getInputForAttr(). No new functionality for now. Also: - Fixed warnings in AudioPolicyManager - Allocate audio session ID before calling getOutputForAttr() in AudioTrack. Bug: 16006090. Change-Id: I15df21e4411db688e3096dd801cf579d76d81711
/frameworks/av/include/media/AudioRecord.h
|
7410591dad836434c72ddee66680802708b70c10 |
|
03-Jul-2014 |
Glenn Kasten <gkasten@google.com> |
Move AudioRecord frame count calculations to server Buffer frame count and notification frame count are now calculated by server instead of by client. The server has more information and can do a better job. Also fix a few bugs: - If a fast track was re-created, even with same pipe depth, it would fail. Now it can correctly re-create a fast track provided the pipe depth is same. - Notification frame count for fast tracks was calculated by client as 1/2 of the total frame count, which is a large value due to the pipe. Now the notification frame count is set by server to the HAL frame count. This should reduce latency for fast tracks. - EVENT_OVERRUN were happening frequently when there was sample rate conversion, because the client didn't know about the sample rate conversion, and under-estimated the necessary buffer size. Now since server calculates the buffer sizes, EVENT_OVERRUN is unlikely. - RecordThread::createRecordTrack_l was checking for mono and stereo for fast tracks. This is not necessary, and now we can handle a multi-channel fast track. Bug: 7498763 Change-Id: I0c581618e8db33084d5ff9ed50a592990c9749e8
/frameworks/av/include/media/AudioRecord.h
|
7c6f87856c0880ee39c2107a0fc3c9b41f8c195c |
|
03-Jul-2014 |
Glenn Kasten <gkasten@google.com> |
Add new API AudioRecord::notificationFrames() Change-Id: I27fb888f01ed547242ffaa8d4626d38c7999ad53
/frameworks/av/include/media/AudioRecord.h
|
d776ac63ce9c013c9626226e43f7db606e035838 |
|
07-May-2014 |
Glenn Kasten <gkasten@google.com> |
IAudioFlinger::openRecord returns IMemory(s) openRecord() now explicitly returns the control block and data buffer as separate IMemory references. If the IMemory for data buffer is 0, this means it immediately follows the control block. Change-Id: Ic098f88f0e037f8fbe30006689e18cacacf09d06
/frameworks/av/include/media/AudioRecord.h
|
bce50bfc3846ab008bafa75c5d3f29fd7b5395f7 |
|
28-Feb-2014 |
Glenn Kasten <gkasten@google.com> |
Fix type of AudioTrack/AudioRecord parameter frameCount It's size_t consistently Change-Id: I29638ef59ac773218025f2403a3508a307b487e0
/frameworks/av/include/media/AudioRecord.h
|
838b3d8bafa4a781e277870dee4e0390165cff52 |
|
28-Feb-2014 |
Glenn Kasten <gkasten@google.com> |
Fix type of AudioTrack/AudioRecord parameter notificationFrames It's uint32_t consistently Change-Id: If8298c7e9aeea2b951fe47b675adbdf48d104846
/frameworks/av/include/media/AudioRecord.h
|
01d3acba9de861cb2b718338e787cff3566fc5ec |
|
06-Feb-2014 |
Glenn Kasten <gkasten@google.com> |
Fix clang warnings in AudioFlinger Change-Id: I0fa61025c979709ad7d655bc717df5f194b6089e
/frameworks/av/include/media/AudioRecord.h
|
b3b2e23fcf7e050710d23b82a6682c0f3d869b69 |
|
05-Feb-2014 |
Glenn Kasten <gkasten@google.com> |
Add AudioRecord::mReqFrameCount similar to AudioTrack Change-Id: I62d6534a9581e84ae20c2422f7ad9aeda9b7c4df
/frameworks/av/include/media/AudioRecord.h
|
38e905b3cbba4da443d799b16999989781afc6d8 |
|
13-Jan-2014 |
Glenn Kasten <gkasten@google.com> |
Refactor code related to I/O handles to reduce chance for leaks The AudioRecord input handle code was refactored earlier to fix a potential handle leak, and to simplify the code: > Change-Id: I124dce344b1d11c2dd66ca5e2c9aec0c52c230e2 This changelist refactors AudioTrack similarly, and adds further cleanup of both AudioTrack and AudioRecord. We attempt to implement the rules for referencing counting I/O handles, but there is still the possibility of a handle leak if the client process dies after allocating the handle reference but before releasing it. That issue is being tracked separately. Details: - AudioSystem::getOutput() is now called within createTrack_l - restoreTrack_l was missing offload info now it has the info available, but is not yet being called for offloaded tracks - AudioTrack::getOutput() is now const - Remove getOutput_l() Change-Id: I44a0a623d24fc5847bcac0939c276400568adbca
/frameworks/av/include/media/AudioRecord.h
|
3a0b6bd22aa32daa729b05c33896400807027eee |
|
17-Jan-2014 |
Glenn Kasten <gkasten@google.com> |
Merge "Use uint32_t sequence numbers for IAudioRecord"
|
6a507298357c9ff869b97db57a890e58bd6bdec0 |
|
17-Jan-2014 |
Glenn Kasten <gkasten@google.com> |
Merge "AudioRecord::getInputFramesLost() cleanup"
|
32a7e0a5f7b000951b9adb80b17796f35b024816 |
|
17-Jan-2014 |
Glenn Kasten <gkasten@google.com> |
Merge "Unify comments between AudioTrack and AudioRecord"
|
8ff50e7526d24aca11713006933b8dcb64ef6be9 |
|
15-Jan-2014 |
Glenn Kasten <gkasten@google.com> |
Use uint32_t sequence numbers for IAudioRecord This makes it the same as for IAudioTrack. Previously we had a mix of int, int32_t and uint32_t, which could cause comparisons to fail. Change-Id: Ic72ef650ee81f65db11e42ed16d818fdf3e310f4
/frameworks/av/include/media/AudioRecord.h
|
5f972c031d4061f4f037c9fda1ea4bd9b6a756cd |
|
13-Jan-2014 |
Glenn Kasten <gkasten@google.com> |
AudioRecord::getInputFramesLost() cleanup Fixed bug that if the binder call failed (for example if the IAudioFlinger binder is dead), then getInputFramesLost was returning garbage. Now it correctly returns zero, which is the error value for this method. The type declarations for getInputFramesLost were inconsistent: a mixture of unsigned int, size_t, and uint32_t. Now it returns uint32_t everywhere, which is what the underlying HAL API returns. Added a FIXME about the side effect behavior. This will need review for multi-client. Change-Id: Ifa2e117a87dbd0c1f2c892a31d1c3dd919bf1a0a
/frameworks/av/include/media/AudioRecord.h
|
5b27ccd67c845aa20a12a1fb58339e7e81e3d536 |
|
15-Jan-2014 |
Glenn Kasten <gkasten@google.com> |
Merge "Use AUDIO_SESSION_ALLOCATE instead of 0"
|
2b2165c75790050810460c8de3f414876bce4c0e |
|
13-Jan-2014 |
Glenn Kasten <gkasten@google.com> |
Unify comments between AudioTrack and AudioRecord Change-Id: I00a1025e2891a1c96218b3c2187eaddda6614ebc
/frameworks/av/include/media/AudioRecord.h
|
41721bb796da589f8a669d1db7687a0da8f88761 |
|
13-Jan-2014 |
Glenn Kasten <gkasten@google.com> |
Fix race condition in AudioRecord::pause followed by start Bug: 11148722 Change-Id: Ia1e14133d73ac301fe06a047e70a573911822630
/frameworks/av/include/media/AudioRecord.h
|
aea7ea06394bcb155972d82055d4ea59962e4051 |
|
26-Jun-2013 |
Glenn Kasten <gkasten@google.com> |
Use AUDIO_SESSION_ALLOCATE instead of 0 Also fix a couple of places where we were using AUDIO_SESSION_OUTPUT_MIX, which happens to also be equal to 0, but has a different meaning. Change-Id: I90e39be3b89f5021a96d9e3b8d10929013ca977f
/frameworks/av/include/media/AudioRecord.h
|
7c7be1e05634d96d08210efb4bdeb012ffba440d |
|
20-Dec-2013 |
Glenn Kasten <gkasten@google.com> |
Fix some (but not all) unused parameter warnings Change-Id: Ia99e23a0b46db3f3e6aa46f9018e63c14f4af369
/frameworks/av/include/media/AudioRecord.h
|
dd0a81253bcf4daef56e991c94dc3c0d1124ef90 |
|
20-Sep-2013 |
Glenn Kasten <gkasten@google.com> |
am f2c643c8: am 3b3cfcfa: Merge "Fix slow AudioTrack and AudioRecord destruction" into klp-dev * commit 'f2c643c89e405b57c7ce42067b876fb80031e5fa': Fix slow AudioTrack and AudioRecord destruction
|
5a6cd224d07c05b496b6aca050ce5ecf96f125af |
|
20-Sep-2013 |
Glenn Kasten <gkasten@google.com> |
Fix slow AudioTrack and AudioRecord destruction There were two causes for the slowness: When thread was paused, it used nanosleep and sleep. These usually run to completion (except for POSIX signal, which we avoid because it is low-level). Instead, replace the nanosleep and sleep by condition timed wait, as that can be made to return early by a condition signal. Another advantage of condition timed wait is that a condition wait was already being used at top of thread loop, so it is a simpler change. The AudioRecord destructor was missing a proxy interrupt that was correct in AudioTrack. This proxy interrupt is needed in case another thread is blocked in proxy obtainBuffer. Does not address the 1 second polling for NS_WHENEVER. Bug: 10822765 Change-Id: Id665994551e87e4d7da9c7b015f424fd7a0b5560
/frameworks/av/include/media/AudioRecord.h
|
2fc14730e4697a6f456b4631549c9981f6b0b115 |
|
05-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Comments Change-Id: I56f82904cb3855bad6f33ad1ff4ddf66a61c5720
/frameworks/av/include/media/AudioRecord.h
|
8845337fff1c8faa4296b3bcafcefb41e07fc3ad |
|
13-Aug-2013 |
Jeff Brown <jeffbrown@google.com> |
am 82278b2c: am fe9611bd: Merge "Fix potential leak of audio input handle." into klp-dev * commit '82278b2ceeebbcf345ed81413eeffa82fa82e05b': Fix potential leak of audio input handle.
|
ac0bbe16f3eba46b3d8057b66c2aff9101fc6f7d |
|
10-Aug-2013 |
Jeff Brown <jeffbrown@google.com> |
Fix potential leak of audio input handle. The audio input handle is ultimately owned by the audio recorder object but it could be dropped on the floor if an error occurred before that object was fully initialized. Rearranged some of the argument validation and merged getInput_l with openRecord_l to simplify the code and prevent such a leak from occurring. Bug: 10265163 Change-Id: I124dce344b1d11c2dd66ca5e2c9aec0c52c230e2
/frameworks/av/include/media/AudioRecord.h
|
5e078add4022360d18328ec41eee75703e8c424c |
|
09-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "Line length 100"
|
f31abb4ee82050030b3e5a0793bb2b8e30f40d31 |
|
07-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "Cleanup comments for the new control block implementation"
|
6d238e5ecb4c4266bc865a067072a30187e55f97 |
|
06-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Line length 100 Change-Id: I8ad58a961cefd0b0c2b041e04fd78669917453d1
/frameworks/av/include/media/AudioRecord.h
|
230c5bde2779c618b26edc73443280b2d9371c70 |
|
06-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "AudioRecord notification frames"
|
743649fa70392b668377fb507d251b346c7b2769 |
|
06-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "AudioRecord::openRecord_l now take flags"
|
77baebfe89c99415a0ee4c2ea87bfd8a0f9e51f1 |
|
05-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "AudioRecord::set and constructor now take flags"
|
9b26847ed122a601ba857e0ef22ee2c818641120 |
|
05-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "Make AudioRecord and AudioTrack comments more similar"
|
f86b18b1ce3cf20a39aea1fcaf90ec66f9d6d63e |
|
05-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "AudioRecord callback thread waits for priority boost"
|
7cd9cf70e36ad4b8eb12e24f9adbbe6fd69edebd |
|
01-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
AudioRecord notification frames Change-Id: I76ec536d1504eb9a558178b62bf225aace4b40d1
/frameworks/av/include/media/AudioRecord.h
|
73493688f4190f790ee15d9ca54831cd64f4e195 |
|
01-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
AudioRecord::openRecord_l now take flags The new parameter 'flags' of type audio_input_flags_t will be used for requesting a fast track, but is currently ignored. Change-Id: If68dfda8b2d4eaaca42927d721b4630c47f71f3b
/frameworks/av/include/media/AudioRecord.h
|
27f7b2a8fe899565487d8a326676a5f7d0a05a37 |
|
01-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
AudioRecord::set and constructor now take flags The new optional parameter 'flags' of type audio_input_flags_t will be used for requesting a fast track. Change-Id: Ia7e070cb57c833e608352da354fb30dc26df6918
/frameworks/av/include/media/AudioRecord.h
|
28f1351369682801e1bb40a835bdae3c97b73c1c |
|
31-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
AudioRecord callback thread waits for priority boost Change-Id: Iae38fa4ac20a45751566169213a08a15deb0a2f6
/frameworks/av/include/media/AudioRecord.h
|
02de89293b74ab1e9a77ce2367c5c499ab038968 |
|
31-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Cleanup comments for the new control block implementation There was some obsolete and incomplete text left over after the new control block code was submitted. This cleans up all those comments to be accurate again. Change-Id: Ic52f5869cb723cde25d709514d6deea6aa6f20aa
/frameworks/av/include/media/AudioRecord.h
|
f0f33c4acd231fa95deb9eeef2c46b0129e64463 |
|
31-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
AudioRecord has no default sample rate Change-Id: I72feefdd6f3a623fd3669b80d4b264518fdc0929
/frameworks/av/include/media/AudioRecord.h
|
6ca126d5c83386941c5cb9600099e5510e4430d6 |
|
31-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Make AudioRecord and AudioTrack comments more similar Change-Id: I122a7cf7bfc162090cb27f37c325db7a23985bc7
/frameworks/av/include/media/AudioRecord.h
|
4d74828fc0f6c13d49a36147a4250bcfa8ad0a47 |
|
19-Nov-2012 |
Glenn Kasten <gkasten@google.com> |
Remove default channel mask in AudioRecord constructor and set() Change-Id: I22ad4ba8777842bf6705e79c6ad796fdb9a4104c
/frameworks/av/include/media/AudioRecord.h
|
e2ffd5b583da9d30d96710b0e8879e90b2b51d30 |
|
13-Jun-2013 |
Glenn Kasten <gkasten@google.com> |
AudioRecord must be used as sp<> only Bug: 9423855 Change-Id: I78ba8228c60dff11fb466156bb632c5dda45cdaf
/frameworks/av/include/media/AudioRecord.h
|
9f80dd223d83d9bb9077fb6baee056cee4eaf7e5 |
|
19-Dec-2012 |
Glenn Kasten <gkasten@google.com> |
New control block for AudioTrack and AudioRecord Main differences between old and new control block: - removes the mutex, which was a potential source of priority inversion - circular indices into shared buffer, which is now always a power-of-2 size Change-Id: I4e9b7fa99858b488ac98a441fa70e31dbba1b865
/frameworks/av/include/media/AudioRecord.h
|
e3aa659e9cee7df5c12a80d285cc29ab3b2cbb39 |
|
04-Dec-2012 |
Glenn Kasten <gkasten@google.com> |
Start isolating control block accesses in a proxy The proxy object will eventually be the only code that understands the details of the control block. This should make it easier to change the control block in the future. Initial set of control block fields that are isolated: - sample rate - send level - volume Prepare for streaming/static separation by adding a union to the control block for the new fields. Fix bug in handling of max sample rate on a track. It was only checking at re-configuration, not at each mix. Simplify OutputTrack::obtainBuffer. Change-Id: I2249f9d04f73a911a922ad1d7f6197292c74cd92
/frameworks/av/include/media/AudioRecord.h
|
a42ff007a17d63df22c60dd5e5fd811ee45ca1b3 |
|
14-Nov-2012 |
Glenn Kasten <gkasten@google.com> |
Clean up channel count and channel mask Channel count is uint32_t. Remove redundant mask parameter to AudioTrack::createTrack_l() and AudioRecord::openRecord_l(). Change-Id: I5dc2b18eb609b2c0dc3091994cbaa4628062c17f
/frameworks/av/include/media/AudioRecord.h
|
e33054eb968cbf8ccaee1b0ff0301403902deed6 |
|
14-Nov-2012 |
Glenn Kasten <gkasten@google.com> |
Use size_t for frame counts Also fix typo: bufferCount should be frameCount. Change-Id: Ibed539504db75ef99dc21c8ff1bf2987122063a5
/frameworks/av/include/media/AudioRecord.h
|
83a0382dc17364567667a4e6135db43f5bd92efc |
|
12-Nov-2012 |
Glenn Kasten <gkasten@google.com> |
Move frame size out of the control block This is part of a series to clean up the control block. Change-Id: Ifab1c42ac0f8be704e571b292713cd2250d12a3f
/frameworks/av/include/media/AudioRecord.h
|
b929e417853694e37aba1ef4399f188987b709d9 |
|
08-Nov-2012 |
Glenn Kasten <gkasten@google.com> |
Move buffers pointer out of the control block This is part of a series to clean up the control block. Change-Id: Ie474557db7cb360f2d9a0f11600a68f5a3d46f07
/frameworks/av/include/media/AudioRecord.h
|
26ba972eafde73a26271ecf027a1d5988ce50eb8 |
|
22-Jun-2012 |
Glenn Kasten <gkasten@google.com> |
Removed unused fields in AudioRecord::Buffer Change-Id: I89fc6d8f695b48516d956b0a9a4a43d408f369f9
/frameworks/av/include/media/AudioRecord.h
|
c28c03b0b819d705522929852ecdb5a8bb50b13b |
|
01-Nov-2012 |
Glenn Kasten <gkasten@google.com> |
AudioRecord comments Change-Id: Ibec910608948d778dc655d900255a80384e9b06f
/frameworks/av/include/media/AudioRecord.h
|
955e78180ac6111c54f50930b0c4c12395e86cf7 |
|
21-Feb-2012 |
Glenn Kasten <gkasten@google.com> |
AudioRecord locking Fix race conditions for EVENT_MARKER and EVENT_NEW_POS callbacks. Marker and new position update fields are protected by lock. getSampleRate() doesn't need a lock because it reads from shared memory control block. Enforce that the parameter passed with EVENT_MARKER and EVENT_NEW_POS cannot not be changed by the callback handler, and will not change during the call by another thread. Session ID should never change; log if it does. Change-Id: Ia2c63cf1a71b10bb06c37981bd76437f83fffa91
/frameworks/av/include/media/AudioRecord.h
|
d64cd233eef39430561c1e1df423336a199cc5d7 |
|
21-Feb-2012 |
Glenn Kasten <gkasten@google.com> |
AudioRecord::stop() return void like AudioTrack::stop() Change-Id: Iab62f4665151345f1ad5874c97a21d1a331f0154
/frameworks/av/include/media/AudioRecord.h
|
68337edf595a0c345ba4b8adcd4f1e541a1d7eb7 |
|
12-Jul-2012 |
Glenn Kasten <gkasten@google.com> |
AudioRecord client threading cleanup Rename ClientRecordThread to AudioRecordThread to be more similar to AudioTrack naming. Only create the thread once, and use resume() and pause() for start() and stop(). This will allow us to have a known client callback thread tid that we can pass to AudioFlinger before start(). mActive: Made mActive a bool not int. mActive is protected by mLock; volatile is meaningless. Fixed a few places where mActive was accessed without a lock: - stopped() - processAudioBuffer() These aren't used internally, so no need for _l() versions. Change-Id: I4b8a5c90f3a22d3894b344564cb1c5aef4f1fda2
/frameworks/av/include/media/AudioRecord.h
|
d4070955e28ae62aa4be1657f9d32acde104bb86 |
|
12-Jul-2012 |
Glenn Kasten <gkasten@google.com> |
Remove dead code in libmedia Change-Id: I7d8201590cda29c9fa99662a4fdba222091febfe
/frameworks/av/include/media/AudioRecord.h
|
dd8104cc5367262f0e5f13df4e79f131e8d560bb |
|
02-Jul-2012 |
Glenn Kasten <gkasten@google.com> |
Use audio_channel_mask_t more consistently In IAudioFlinger::createTrack() and IAudioFlinger::openRecord(), declare input parameter to use correct type audio_channel_mask_t. In IAudioFlinger::getInputBufferSize(), input parameter is now channel mask instead of channel count. Remove unused IAudioFlinger::channelCount(audio_io_handle_t). In AudioRecord::getMinFrameCount() and AudioSystem::getInputBufferSize(), input parameter is channel mask instead of channel count. Change-Id: Ib2f1c29bea70f016b3cfce83942ba292190ac965
/frameworks/av/include/media/AudioRecord.h
|
02e84eaff54414e9f10c0f605152728a682c6874 |
|
25-Jun-2012 |
Glenn Kasten <gkasten@google.com> |
AudioRecord comments Group the private fields according to how they are used Change-Id: I7ce3d0939510c10f34bd91a55f6e03afc8e7d43c
/frameworks/av/include/media/AudioRecord.h
|
624a7fcb377f2a40109c16de5109ae8ea1f67a69 |
|
22-Jun-2012 |
Glenn Kasten <gkasten@google.com> |
Use audio_channel_mask_t in AudioRecord Change-Id: I9e1b918b2635d961604a4a9d88eb1c7179a167a7
/frameworks/av/include/media/AudioRecord.h
|
70be725da4d8aafb94d47c1962e897ecd5fdf823 |
|
22-Jun-2012 |
Glenn Kasten <gkasten@google.com> |
Remove unused AudioRecord::channels() It was declared but never implemented or called. Change-Id: If5846147fcbd7f6d4187971e2044dd6fd3252b42
/frameworks/av/include/media/AudioRecord.h
|
868a6a357018e5872e064b7a13a9b891e2078962 |
|
22-Jun-2012 |
Glenn Kasten <gkasten@google.com> |
Include what you use Change-Id: I12ef9367d05dbe069c037b1b4acd6347a8cf3ece
/frameworks/av/include/media/AudioRecord.h
|
f92eec53f886f43e4374a36195be55f2a7bbcf36 |
|
07-Mar-2012 |
Glenn Kasten <gkasten@google.com> |
Remove AudioRecord record_flags Change-Id: I021ddcc1bcb63132a4597d13e3d09db2a5f2c628
/frameworks/av/include/media/AudioRecord.h
|
a636433cbd09c0708b85f337ef45c0cdef3bcb4d |
|
19-Apr-2012 |
Glenn Kasten <gkasten@google.com> |
Use C APIs instead of C++ APIs for policy The C++ APIs are going away. Note: we use tid == 0 which is not supported yet by the C APIs, do not submit this until that is added. Change-Id: I0e90789e6c81c69f2544e899c52421ea5d1342be
/frameworks/av/include/media/AudioRecord.h
|
a0a98ca6ec9b599af79a597cb7c5350b61a77624 |
|
21-Apr-2012 |
Eric Laurent <elaurent@google.com> |
Made AudioRecord a subclasss of RefBase Made AudioRecord a subclass of RefBase to allow using strong references and solve concurrency issues. Issue 6254582. Change-Id: Ic1f3845958f477e8b2d23d3d25bf0f666addcb3b
/frameworks/av/include/media/AudioRecord.h
|
a011e35b22f95f558d81dc9c94b68b1465c4661d |
|
30-Mar-2012 |
Eric Laurent <elaurent@google.com> |
implemented synchronous audio capture Added the infrastructure to support the synchronization of playback and capture actions on specific events. The first requirement for this feature is to synchronize the audio capture start with the full rendering of a given audio content. The applications can further be extended to other use cases (synchronized playback start...) by adding new synchronization events and new synchronous control methods on player or recorders. Also added a method to query the audio session from a ToneGenerator. Change-Id: I51f1167290d9cafdf2fbcdf9e4785156973af44c
/frameworks/av/include/media/AudioRecord.h
|
a075db4ff9b086ac2885df77bb6da0869293df92 |
|
06-Mar-2012 |
Glenn Kasten <gkasten@google.com> |
IAudioFlinger::createTrack and openRecord flags createTrack and openRecord don't need the "old" flags parameter, which was either audio_policy_output_t or audio_in_acoustics_t shifted left by 16 bits. But they do need "new" flags, which are defined by the application use case. Initially, the only application use case flag is timed output, but others are planned. For output, the audio_policy_output_t flags are passed to AudioSystem::getOutput, which returns an audio_io_handle_t, and that handle is then passed to createTrack. So createTrack doesn't need the old flags parameter. For input, the audio_in_acoustics_t flags are passed to AudioSystem::getInput, which returns an audio_io_handle_t, and that handle is then passed to openRecord. So openRecord doesn't need the old flags parameter. Change-Id: I18a9870911846cca69d420c19fe6a9face2fe8c4
/frameworks/av/include/media/AudioRecord.h
|
679ab0b0792846a89162ce41c953819d70030112 |
|
07-Mar-2012 |
Glenn Kasten <gkasten@google.com> |
Use AudioRecord::record_flags consistently Change-Id: I6f369a2b99eb515603bc7d5629a07db2b96783fe
/frameworks/av/include/media/AudioRecord.h
|
985ed9a1a22ec7e6e245d3fb8e93d3a23bdc539b |
|
02-Mar-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "Fix typos and line length in AudioRecord comments"
|
606ee61616efdba4696ae591ad10a4be33d8c946 |
|
25-Feb-2012 |
Glenn Kasten <gkasten@google.com> |
AudioRecord const methods Change-Id: Ifae4fd7820b650aaca2b13c8658c292db1c46c0f
/frameworks/av/include/media/AudioRecord.h
|
417c27304c67057779693007a7bc08e4dd80c262 |
|
24-Feb-2012 |
Glenn Kasten <gkasten@google.com> |
Fix typos and line length in AudioRecord comments Change-Id: I85cfb9a2b9b3ade098161aa7687b4d4f7eb226ea
/frameworks/av/include/media/AudioRecord.h
|
6dbc1359f778575d09d6da722b060a6d72c2e7c5 |
|
02-Feb-2012 |
Glenn Kasten <gkasten@google.com> |
AudioRecord and AudioTrack client tid Inform AudioFlinger of the tid of the callback thread. Change-Id: I670df92dd06749b057238b48ed1094b13aab720b
/frameworks/av/include/media/AudioRecord.h
|
4f9b0c54011eb8fd2ccfb393c2dcd51cd07800e0 |
|
08-Feb-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "Remove dead mutex in AudioTrack/AudioRecord thread"
|
a0d68338a88c2ddb4502f95017b546d603ef1ec7 |
|
28-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Use NULL not 0 for raw pointers Use if (p != NULL) instead of if (ptr) Change-Id: Iaec3413a59ccbf233c98fcd918cc7d70ac5da9fa
/frameworks/av/include/media/AudioRecord.h
|
0e265cf36d201a7ccc0238b5c60b50f43d1dc450 |
|
02-Feb-2012 |
Glenn Kasten <gkasten@google.com> |
Remove dead mutex in AudioTrack/AudioRecord thread The client callback threads had mutexes called AudioTrackThread::mLock and ClientRecordThread::mLock. These mutexes were only used by start() and stop(), and were unused by the thread itself. But start() and stop() already have their own protection provided by AudioTrack::mLock and AudioRecord::mLock. So the thread mutexes can be removed. Change-Id: I098406d381645d77fba06a15511e179a327848ef
/frameworks/av/include/media/AudioRecord.h
|
eba51fb3a361f67a6a64d5a16eba6084fe27d60e |
|
23-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Use audio_source_t consistently Was a mix of audio_source_t, uint8_t, and int. Related fixes: - fix comments in MediaRecorder.java - AudioPolicyService server side was not checking source parameter at all, so if the client wrapper was bypassed, invalid values could be passed into audio HAL - JNI android_media_AudioRecord_setup was checking source for positive values, but not negative values. This test is redundant, since already checked at Java and now checked by AudioPolicyService also, but might as well make it correct. Change-Id: Ie5e25d646dcd59a86d7985aa46cfcb4a1ba64a4a
/frameworks/av/include/media/AudioRecord.h
|
58f30210ea540b6ce5aa6a46330cd3499483cb97 |
|
12-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Use audio_format_t consistently, continued Was int or uint32_t. When AudioFlinger::format can't determine the correct format, return INVALID rather than DEFAULT. Init mFormat to INVALID rather than DEFAULT in the constructor. Subclass constructors will set mFormat to the correct value. Change-Id: I9b62640aa107d24d2d27925f5563d0d7407d1b73
/frameworks/av/include/media/AudioRecord.h
|
a3f1fa308728976fc9ca1b4f37d26e633b32b9ac |
|
18-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Fix incorrect includes of AudioTrack.h Remove unnecessary includes of AudioTrack.h. Use forward declaration of class names in preference to #include when possible. Change-Id: I12982811fa75c2c7695d8bbfa595a7aaec047dc0
/frameworks/av/include/media/AudioRecord.h
|
b9980659501d0428d65d8292f3c32da69d37fbd2 |
|
11-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Use size_t for frame size except in the control block, where we don't have room. In AudioFlinger::ThreadBase::TrackBase::getBuffer, read the frame size from control block only once. Change-Id: Id6c4bccd4ed3e07d91df6bbea43bae45524f9f4e
/frameworks/av/include/media/AudioRecord.h
|
879135196fd1c97deefc538c888037c56c2879a7 |
|
23-Jun-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 4903178 Restore priority and cgroup on stop On AudioTrack and AudioRecord stop or failed start, restore the priority and cgroup of the caller to their previous values, rather than forcing to NORMAL. Dependent on new thread APIs. Also fixes bug where priority was set to AUDIO but cgroup not set. Change-Id: Ib83893918fb4fdf57c6b87884b51038997a631d8
/frameworks/av/include/media/AudioRecord.h
|
0d255b2d9061ba31f13ada3fc0f7e51916407176 |
|
25-May-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Use channel mask instead of channel count for track creation Record and playback objects (resp AudioRecord and AudioTrack) are created using a channel mask, but this information is lost in the mixer because only the channel count is known to AudioFlinger. A channel count can always be derived from a channel mask. The change consists in: - disambiguiting variable names for channel masks and counts - passing the mask information from the client to AudioFlinger and the mixer. - when using the DIRECT ouput, only verifying the format of the track is compatible with the output's for PCM. Change-Id: I50d87bfb7d7afcabdf5f12d4ab75ef3a54132c0e
/frameworks/av/include/media/AudioRecord.h
|
64760240f931714858a59c1579f07264d7182ba2 |
|
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/av/include/media/AudioRecord.h
|
fce7a473248381cc83a01855f92581077d3c9ee2 |
|
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/av/include/media/AudioRecord.h
|
1703cdfee717b1b312bf8979816a9e2f16a82e5d |
|
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/av/include/media/AudioRecord.h
|
f5aafb209d01ba2ab6cb55d1a12cfc653e2b4be0 |
|
18-Nov-2010 |
Eric Laurent <elaurent@google.com> |
Fix issue 3157123. Use a Mutex wherever atomic operations were used in AudioTrack, AudioRecord, AudioFlinger and AudioEffect classes. Change-Id: I6f55b2cabdcd93d64ef19446735b8f33720f8dbc
/frameworks/av/include/media/AudioRecord.h
|
15304d601cbf83be6519ca53e1a26b97d50d0192 |
|
22-Jun-2010 |
Chia-chi Yeh <chiachi@android.com> |
media: add AudioRecord::getMinFrameCount(). Change-Id: I952071ab10aa49aa96b727d157b68470d69fff3d
/frameworks/av/include/media/AudioRecord.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
/frameworks/av/include/media/AudioRecord.h
|
05bca2fde53bfe3063d2a0a877f2b6bfdd6052cf |
|
26-Feb-2010 |
Eric Laurent <elaurent@google.com> |
Issue 2071329: audio track is shorter than video track for video capture on sholes Add API to retrieve number of frames dropped by audio input kernel driver. Submitted on behalf of Masaki Sato <masaki.sato@motorola.com>
/frameworks/av/include/media/AudioRecord.h
|
6100d2d60517ff33ed8eb35d0b7ea63cde0831c9 |
|
19-Nov-2009 |
Eric Laurent <elaurent@google.com> |
Issue 2265163: Audio still reported routed through earpiece on sholes This is a second attempt to fix the audio routed to earpiece syndrom. The root cause identified this time is the crash of an application having an active AudioTrack playing on the VOICE_CALL stream type. When this happens, the AudioTrack destructor is not called and the audio policy manager is not notified of the track stop. Results a situation where the VOICE_CALL stream is considered as always in use by audio policy manager which makes that audio is routed to earpiece. The fix consists in moving the track start/stop/close notification to audio policiy manager from AudioTrack to AudioFlinger Track objet. The net result is that in the case of a client application crash, the AudioFlinger TrackHandle object (which implements the remote side of the IAudioTrack binder interface) destructor is called which in turn destroys the Track object and we can notify the audio policy manager of the track stop and removal. The same modification is made for AudioRecord although no bug related to record has been reported yet. Also fixed a potential problem if record stop is called while the record thread is exiting.
/frameworks/av/include/media/AudioRecord.h
|
34f1d8ecd23169a5f299937e3aaf1bd7937578a0 |
|
04-Nov-2009 |
Eric Laurent <elaurent@google.com> |
Fix issue 2203561: Sholes: audio playing out of earpiece. Create a new IAudioTrack interface to AudioFlinger when start() fails due to a broken pipe error. Do the same if start fails due to the same error after time out in obtainBuffer(). Do not indicate that the AudioTrack is started to AudioPolicyManager if IAudioTrack start fails. This avoids that an AudioTrack keeps a dead IAudioTrack after a media server crash. Same modifications for AudioRecord. Add a flag to ToneGenerator indicating that the callback thread can call Java. Without it, when the media server crashes and restarts, the AudioSystem error callback will crash in JNI if the IAudiotrack is created from AudioTrack callback thread.
/frameworks/av/include/media/AudioRecord.h
|
c2f1f07084818942352c6bbfb36af9b6b330eb4e |
|
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/av/include/media/AudioRecord.h
|
349dba337e07e129f6ba49a132999f0b73fedbe3 |
|
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
|
573266210fb2b2e7d86fbd46d0dfe16763611d91 |
|
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/av/include/media/AudioRecord.h
|
95634c8b6ad5419e310a5196bcc37f5988ed82da |
|
26-May-2009 |
Android (Google) Code Review <android-gerrit@google.com> |
am de8268d6: Merge change 2331 into donut Merge commit 'de8268d6d1cd168510c490b17e93154d2eab767c' * commit 'de8268d6d1cd168510c490b17e93154d2eab767c': Fix issue 1846343 - part 1
|
f5879c1448cc6aebc51b26d3ec2399d66144f8f4 |
|
22-May-2009 |
Eric Laurent <elaurent@google.com> |
Fix issue 1846343 - part 1 This change is the first part of a fix for issue 1846343, : - Added new enum values for input sources in AudioRecord and MediaRecorder for voice uplink, downlink and uplink+downlink sources. - renamed streamType to inputSource in all native functions handling audio record. A second change is required in opencore author driver and android audio input to completely fix the issue.
/frameworks/av/include/media/AudioRecord.h
|
7562408b2261d38415453378b6188f74fda99d88 |
|
20-May-2009 |
Mathias Agopian <mathias@google.com> |
move libbinder's header files under includes/binder
/frameworks/av/include/media/AudioRecord.h
|
1dd70b9f04961a06fcb73a97fca10a53b3245d3c |
|
21-Apr-2009 |
Eric Laurent <elaurent@google.com> |
Fix issue 1745312: Various cleanups in media framework AudioTrack, AudioRecord: - remove useless mAudioFlinger member of AudioTrack and AudioRecord. - signal cblk.cv condition in stop() method to speed up stop completion. - extend wait condition timeout in obtainBuffer() when waitCount is -1 to avoid waking up callback thread unnecessarily AudioFlinger: - remove some warnings in AudioFlinger.cpp. - remove function AudioFlinger::MixerThread::removetrack_l() as its content is never executed. - remove useless call to setMasterVolume in AudioFlinger::handleForcedSpeakerRoute(). - Offset VOICE_CALL stream volume to reflect actual volume that is never 0 in hardware (this fix has been made in the open source): 0.01 + v * 0.99. AudioSystem.java: - correct typo in comment IAudioflinger, IAudioFlingerClient: - make AudioFlinger binder interfaces used for callbacks ONEWAY. AudioHardwareInterface: - correct routeStrings[] table in AudioHardwareInteface.cpp
/frameworks/av/include/media/AudioRecord.h
|
7d563247cdac0509009d579bbf849157d47c38a9 |
|
25-Mar-2009 |
Jean-Michel Trivi <> |
Automated import from //branches/donutburger/...@141200,141200
/frameworks/av/include/media/AudioRecord.h
|
89fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/av/include/media/AudioRecord.h
|
15f767b960b38059a74a42a33e16d8df2aec8bc1 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/av/include/media/AudioRecord.h
|
ad04d9201452001dbaac4349f084cc9316190b89 |
|
03-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@132589
/frameworks/av/include/media/AudioRecord.h
|
99ffda877980468a9ae31e013cd10fb3645df1b0 |
|
03-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@137055
/frameworks/av/include/media/AudioRecord.h
|
e5198b620a9a208ec59ea8457282404725f8ff6e |
|
20-Jan-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //branches/cupcake/...@127101
/frameworks/av/include/media/AudioRecord.h
|
7b5eb023f8d87cca6d830ae6c11c6aadbe02aca8 |
|
18-Dec-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Code drop from //branches/cupcake/...@124589
/frameworks/av/include/media/AudioRecord.h
|
2729ea9262ca60d93047e984739887cfc89e82eb |
|
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
/frameworks/av/include/media/AudioRecord.h
|