History log of /frameworks/av/media/libaudioclient/AudioRecord.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
84e84a5dd3b6d9ee4cf032e8d6206c70969b7107 04-May-2018 Ray Essick <essick@google.com> collect more media metrics around audio

new fields in the media metrics 'audiorecord' record for more detail
length of time recorded, error conditions
add new media metrics type 'audiopolicy' that describes attempts to get
microphone access -- success, failure on contention, what type of access
was requested, and (important for the contention) which programs are
doing the requesting and holding of the microphones.

whitelist the 'audiopolicy' metrics type with the media.metrics service.

Bug: 78595399
Test: concurrent/serial recordings, dumpsys media.metrics
Change-Id: Ia17860940d4c329b0215b4cf97c6dacacb6a8e32
/frameworks/av/media/libaudioclient/AudioRecord.cpp
b8ca98e81617f33e1b15a210c673b8f4c5a6de28 16-Apr-2018 Paul McLean <pmclean@google.com> Add retry mechanism to AudioRecord::restoreRecord_l().

This is analogous to similar code in AudioTrack::restoreTrack_l().

Bug: 77682459
Test: Connect USB headset. Start Skype call. Note input audio on DUT is
heard on remote phone. Manually kill audio server, verify that input
from USB headset is restored on DUT and heard on remote phone.

Change-Id: Icbf624aba8a3fe6917b132d8c38c2812f9519ec6
(cherry picked from commit 782049413376ee1833a08ba02cc5ba6b5905792f)
/frameworks/av/media/libaudioclient/AudioRecord.cpp
de15b8c160c720c48b93796016801e7ae0b6bd2d 31-Jan-2018 Ray Essick <essick@google.com> link media.metrics native strings to api-controlled java strings

add comments to native media.metrics code pointing to how they
are (and aren't) to be kept in synch with their java counterparts
that are part of the public API (and therefore pretty much fixed).

Bug: 72492234
Test: compilation
Change-Id: Ic096545a5cdfb2160c6b66438d345d8e625384b9
/frameworks/av/media/libaudioclient/AudioRecord.cpp
653cc0ab6d5b714d1f26adcd08f9bc3269b62fa0 18-Jan-2018 jiabin <jiabin@google.com> Support query active microphones information in AudioRecord.

This is part of device enumeration. With the new add API, developer
could get the active microphones information for each channel.

Bug: 64038649
Test: Run cts and check the print log.
Change-Id: Ic63d86e533a30e40697da7522a5a81f7cfcea988
/frameworks/av/media/libaudioclient/AudioRecord.cpp
8839430158e22382f0f6450c9274071eca945989 24-Jan-2018 Ray Essick <essick@google.com> add getMetrics() apis for AudioTrack and AudioRecord

add getMetrics() method to access media.metrics for AudioTrack and
AudioRecord.

Bug: 72179020
Bug: 72178968
Test: tweaked CTS
Change-Id: Id69862887b8b58655f59057e06f96b20a8e7d332
/frameworks/av/media/libaudioclient/AudioRecord.cpp
734d186db7ec3d1f877001d71c71de6562ead7f7 09-Jan-2018 Ray Essick <essick@google.com> Metrics for AudioRecord

Collect media metrics for audiorecord. Basic framework and initial set
of metrics.

Bug: 70569777
Test: recordings, observe stats
Change-Id: I66fce1eec46cc13a93b106c2be34d23c138920de
/frameworks/av/media/libaudioclient/AudioRecord.cpp
724a1816e7bd503d7a1f491a90f76c8cf3ca6a16 07-Dec-2017 Eric Laurent <elaurent@google.com> add dump() method to AudioRecord

Add a dump() method to AudioRecord.
Can be used by dumpsys or tests.

Test: run test_create_audiorecord
Change-Id: I4b3133601eeff4d5447ca2c5b13a01ff3451b6c7
/frameworks/av/media/libaudioclient/AudioRecord.cpp
f14db3c3ebc1ea29b3eb5b7e9b944cabcb5f83ff 08-Dec-2017 Eric Laurent <elaurent@google.com> Revert "Revert "refactor AudioRecord and AudioFlinger openRecord()""

This reverts commit 0aa3c6eba07f987fe84b5fa450274a8e730971e3.

Bug: 70388312
Test: AudioRecord CTS, Audio smoke tests
Change-Id: I45394bccf82b922aa2b68fee3e02afc280f6729c
/frameworks/av/media/libaudioclient/AudioRecord.cpp
0aa3c6eba07f987fe84b5fa450274a8e730971e3 08-Dec-2017 Eric Laurent <elaurent@google.com> Revert "refactor AudioRecord and AudioFlinger openRecord()"

This reverts commit 3e1acc0c58b337dec4054d78c28b48b2e77e0784.

bug: 70388312

Change-Id: I6782d6eceeece1bad998b02af26c0119da70a13d
/frameworks/av/media/libaudioclient/AudioRecord.cpp
3e1acc0c58b337dec4054d78c28b48b2e77e0784 02-Dec-2017 Eric Laurent <elaurent@google.com> refactor AudioRecord and AudioFlinger openRecord()

Refactor the mechanism used by audio record tracks to query and
attach to an input mixer/stream in audio flinger. This will:
- reduce the number of binder transactions needed to create a record track
- move sample rate, framecount and flags validations to audio server side
- move audio session allocation to audio server side
- prepare restriction of certain binder transactions to audioserver only

Also:
- renamed openRecord() to createRecord() for consistency with AudioTrack
- make AudioRecord mStatus update consistent when calling default
contructor + set() or constructor with arguments
- make AudioClient, CreateTrackXXX and CreateRecordXXX classes derive
from Parcelable
- restore audio session ID validity check in AudioFlinger::createTrack()

Test: CTS tests: AudioRecordTest, AudioRecordingConfigurationTest, AudioPreProcessingTest
Test: manual test for capture use cases: camcorder, OK Google, VoIP calls
Change-Id: I72edaa7ddef1da11c77df21e88378e3aa9012d58
/frameworks/av/media/libaudioclient/AudioRecord.cpp
fec2f93fae282ad10bbb5e3fcce9f60eff2cfb48 24-Oct-2017 jiabin <jiabin@google.com> Add AudioRouting interface in AudioRecorder.

Bug: 64038649
Test: Run cts in RoutingTest
Switching input device when using MediaRecorder

Change-Id: I53f22974f8c3dacaef6044ea742e62951961c1fd
/frameworks/av/media/libaudioclient/AudioRecord.cpp
92197f86b1184133107ee66314467f4676850ab8 19-Sep-2017 Eric Laurent <elaurent@google.com> Fix various AAudio device selection issues am: ad2e7b902c
am: 282ca69583

Change-Id: I051d56560608444c47b5a827ef921b878e8f4a4e
ad2e7b902c0432a0db40906a4b1f5b693ce439dd 15-Sep-2017 Eric Laurent <elaurent@google.com> Fix various AAudio device selection issues

Bug: 65292224
- Audio policy manager should not use an unavailable device when an explicit
route is requested. This causes a device selection made by a client to
become sticky after device disconnection.

Bug: 64945845
- Remove spurious device change callback occuring after registering a
new client to audio server by creating a specific configuration event
for client registration.
- Do not keep strong references to device callback interfaces in
AudioTrack, AudioRecord and AudioSystem.
- Do not update selected device in AudioTrack and AudioRecord when
not active as the new device selection on the stream is because of other
clients activity which is not relevant to an inactive client.

Bug: 65693340
- Fix missing increment of SessionRoute ref count in getInputForAttr() for
MMAP inputs

Test: AAudio CTS tests

Change-Id: I2a01b02e8b064d352004f6065495fd99aee55745
/frameworks/av/media/libaudioclient/AudioRecord.cpp
f89090e284b8ef61eb8cae68c657c8a60877b9fb 14-Sep-2017 Andy Hung <hunga@google.com> Merge "AudioTrack, AudioRecord: Fix latency computation" into oc-mr1-dev am: 5deda0e784
am: c0e75a7d57

Change-Id: I1f95a6372752e2e47e7f022db0333517c387eadf
13969262f704ca27c82d60e3c7cf4b271e3b5918 12-Sep-2017 Andy Hung <hunga@google.com> AudioTrack, AudioRecord: Fix latency computation

Force 64 bit arithmetic to avoid integer overflow on 32 bit
platforms.

Test: CTS AudioTrackTest
Bug: 65536481
Change-Id: I774a7811fce08c7cbe59f0a062fd2c2d72220203
/frameworks/av/media/libaudioclient/AudioRecord.cpp
ff6900d8f991aac0b67b625f8a1d4d0461b4c50e 02-Aug-2017 Ivan Lozano <ivanlozano@google.com> Generate IAudioRecord with AIDL.

Use AIDL to generate the IAudioRecord interface rather than using
a manually implemented interface.

Bug: 64223827
Test: Ran the AudioNativeTest and CtsMediaTestCases CTS tests.

Change-Id: Iade23c73253a97c358050bbd697ebe592b89a4c0
/frameworks/av/media/libaudioclient/AudioRecord.cpp
325b2997d92c4ba2c116b47e6c3d0d0045c5386b 26-Jun-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Set initial audio device for AudioTrack and AudioRecord"
9ae8c597d9a0c8cedc4047fc4716d7361453f6ab 23-Jun-2017 Eric Laurent <elaurent@google.com> Set initial audio device for AudioTrack and AudioRecord

Bug: 62090113
Test: run AAudio test and verify a valid device is reported just
after opening playback or capture streams in legacy mode.

Change-Id: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6
/frameworks/av/media/libaudioclient/AudioRecord.cpp
adbb75af4d3224194b9b772855db93fae19cf4ce 16-Jun-2017 Phil Burk <philburk@google.com> AudioTrack: explain why FAST mixer denied

Also for AudioRecord

Bug: 62692443
Test: write_sine.cpp
Change-Id: I5b281476af4703798129df66584d813b9a8db8bb
Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/media/libaudioclient/AudioRecord.cpp
ef44fb4115270883da829fea91174c8cc003b777 30-May-2017 Eric Laurent <elaurent@google.com> aaudio: fix device switch detection in legacy path am: fb00fc77f5
am: 0bbea62ed4

Change-Id: I80dfc949c206c1572f867f3ffedb6ff556a7b8f2
fb00fc77f59ed5ebec4d38bac666e6521b6c1de0 26-May-2017 Eric Laurent <elaurent@google.com> aaudio: fix device switch detection in legacy path

Implement device switch detection on legacy path (AudioTrack and
AudioRecord) based on audio routing callbacks forcing the stream state
to disconnected.

Bug: 33355262
Bug: 62090113
Test: tested with write_sine and input_monitor command line tools.
Change-Id: I9e0421fee233964b1bf318acb640569196a00f13
/frameworks/av/media/libaudioclient/AudioRecord.cpp
6eba55b9663eb0bf50991ca5264ee94588557201 25-May-2017 Phil Burk <philburk@google.com> Merge "aaudio: allow AudioRecord to use FAST mode for TRANSFER_SYNC" into oc-dev am: cf423d268a
am: e209c532b3

Change-Id: Ia8c8877b69d9343f73abca99e795c3f488f6c515
382d11ac489a917d3d009c3d05bc960f4af58176 23-May-2017 Phil Burk <philburk@google.com> aaudio: allow AudioRecord to use FAST mode for TRANSFER_SYNC

Bug: 34093052
Test: loopback.cpp
Change-Id: I3bf4ee6f58fad017a038edfd50475d5dd5a4fca5
Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/media/libaudioclient/AudioRecord.cpp
75f79038715b4b1cf28e0457abfa84ccd17bb57e 23-May-2017 Glenn Kasten <gkasten@google.com> Add TODOs for checking return value of wait

Test: builds OK
Change-Id: I750b73de54deeccbae846189fdf385e636d9e4cd
/frameworks/av/media/libaudioclient/AudioRecord.cpp
6d8018f0b7be9deec6b0acab10a0dca6e91d0fb8 21-Feb-2017 Glenn Kasten <gkasten@google.com> Improve audio logs and dumpsys media.audio_flinger

Include mFrameCount in shared memory corrupt error log.

Fix typo in log for primary audio interface.

Include the new server frame count in logs for fast tracks.

Always log when fast is successful for output tracks, as it helpful
(was already there for input).

Cleanup dumpsys for threads.

Bug: 37153050
Test: builds OK, and logs contain more information
Change-Id: I2b5b4d700e8eb7c261a3125fb03ddc00bf08537e
(cherry picked from commit 1bfe09a0b1755a79abd32b41c0dd433b88fc260c)
/frameworks/av/media/libaudioclient/AudioRecord.cpp
1bfe09a0b1755a79abd32b41c0dd433b88fc260c 21-Feb-2017 Glenn Kasten <gkasten@google.com> Improve audio logs and dumpsys media.audio_flinger

Include mFrameCount in shared memory corrupt error log.

Fix typo in log for primary audio interface.

Include the new server frame count in logs for fast tracks.

Always log when fast is successful for output tracks, as it helpful
(was already there for input).

Cleanup dumpsys for threads.

Test: builds OK, and logs contain more information
Change-Id: I2b5b4d700e8eb7c261a3125fb03ddc00bf08537e
/frameworks/av/media/libaudioclient/AudioRecord.cpp
d3bb645f0b7f567b033b8664499d685f8ec10628 06-Dec-2016 Glenn Kasten <gkasten@google.com> Re-format to decrease the maximum line length of files to 100 characters

Test: compiles OK
Change-Id: Ibe663032cd390ed2bcca6dc921d47732e6e15e21
/frameworks/av/media/libaudioclient/AudioRecord.cpp
20b9ef0b55c9150ae11057ab997ae61be2d496ef 05-Dec-2016 Eric Laurent <elaurent@google.com> Add unique audio port IDs to AudioTrack and AudioRecord

This will allow to track activity at the track level instead of
at audio session level as only possible with current implementation.

AudioTracks and AudioRecords will receive a unique audio port ID the
first time they register to audio policy with
getOutputForAttr()/getInputForAttr() and keep this ID for their
lifetime.

This CL is the first partial change and just updates the
audio policy and audio flinger APIs used at track creation time.

Test: basic regression test of audio playback and capture use cases

Change-Id: I8d612e67738e120494f61e3f7c60bfd0b2c6a329
/frameworks/av/media/libaudioclient/AudioRecord.cpp
41cbae72e4e223c15ba2d85b3c27ed31d1bf5f86 12-Nov-2016 Glenn Kasten <gkasten@google.com> Merge "AudioRecord: fix AudioRecordThread crash upon exit"
e813ef9388e9f0b821c0a434521f0e194288c8ad 01-Nov-2016 Kiran Kumar Krishna <kiran@motorola.com> AudioRecord: fix AudioRecordThread crash upon exit

In case of error during openRecord_l(), there is a possibility
that a newly created AudioRecordThread is resumed by requestExit()
just after entering the Thread class _threadLoop() but before
entering the class threadLoop(). In this case, processAudioBuffer()
is executed once with mCblk == 0 and we assert.

Test: test case at bug
Bug: 29993798
Change-Id: I15d4f138218f6f01a020c4fc568a5b4831cb92a7
/frameworks/av/media/libaudioclient/AudioRecord.cpp
1f12a8ad958344c50733b948628ffa06db9c5bc6 08-Nov-2016 Andy Hung <hunga@google.com> Audio: Use uid_t for uids

Test: Power manager shows correct uids for audio
Bug: 32713790
Change-Id: If5337e17283268f74dc0f00cc66ece9153d680ef
/frameworks/av/media/libaudioclient/AudioRecord.cpp
538ec5e04f389cba637b030757be317fcb8677a8 02-Nov-2016 Marco Nelissen <marcone@google.com> Split libmedia into libmedia and libaudioclient

This makes it so audioserver doesn't need to link against the entire libmedia,
which has dependencies on camera, ICU, OpenGL and other things that aren't
needed for audio.

Test: build/boot

Change-Id: I99ba1a3dc3b33ca9b3abd98e7519dbf228ee62af
/frameworks/av/media/libaudioclient/AudioRecord.cpp