3d786cb59f5acd5484fa4fb968ba2de9dcf283ad |
|
09-Apr-2018 |
Phil Burk <philburk@google.com> |
aaudio: convert I16 input to float This allows an app that requests a LOW_LATENCY FLOAT INPUT stream to get a FAST track when using Legacy mode. This is needed because Legacy AudioRecord does not allow FAST for FLOAT streams. Bug: 38268031 Test: adb shell input_monitor -m1 -pl -f2 Test: adb shell input_monitor_callback -m1 -pl -f2 Test: On Pixel phones you should get actual performanceMode=12 Change-Id: Ia5879ff4904f50bbb5009a3fc058800e53770710
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
41f19d8e9471945b358c9ae1dffda60f195d9f5b |
|
13-Feb-2018 |
Phil Burk <philburk@google.com> |
aaudio: convert mono output to stereo MMAP hardware streams are often stereo. But apps often want to output a mono stream. Since converting from mono to stereo is easy, we can go ahead and open a stereo hardware stream and then just convert the apps mono data to stereo for the HW. Add getDeviceChannelCount(). Test: adb shell write_sine_callback -pl -s10 -c1 -m3 Test: adb shell write_sine_callback -pl -s10 -c1 -m3 -x Change-Id: I444a38c6f5cd32d1d6113f16aacec68285a1bc82
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
5cc83c3b8acc43b760be23a4e3b96fbbb06d8e93 |
|
29-Nov-2017 |
Phil Burk <philburk@google.com> |
aaudio: fix some state transitions Now requestStop() and requestPause() do the appropriate thing based on state. Flush is allowed when OPEN, PAUSED or STOPPED because there might be pre-roll data. Bug: 69810494 Test: test_various.cpp Change-Id: Ie1b306b17734a58fa71b1742bb186482893656b7
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
6479d501e85147d2be48bde13a7926da5f0e56f6 |
|
20-Nov-2017 |
Phil Burk <philburk@google.com> |
aaudio: clip bufferSize at top of MMAP code Set size to a reasonable value regardless of the user input. Bug: 69469801 Test: test_various.cpp Change-Id: I6c155383e70959485882c17189388be1c9e6fc8b
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
965650e5c36f39cb5e6d780a22ff711fbf5a37f5 |
|
08-Sep-2017 |
Phil Burk <philburk@google.com> |
aaudio: fix problems with PlayerBase and ref counting CTS test was crashing because of a multiple inheritance problem involving PlayerBase. We now implement separate PlayerBase class that sits between AudioStream and the system. Bug: 65450109 Test: CTS nativemedia/aaudio Change-Id: I424663acc1eeacc9544769991495cb48f4110359
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
bcc3674648bc6f554d89a2a5d7721ed41c53f83b |
|
01-Sep-2017 |
Phil Burk <philburk@google.com> |
aaudio: fix timestamps and underruns Start the client after we get valid timing data from the server. That can take a while because of the long cold start times. The client is synced with the current position of the service. Now the client can start clean with no underruns. Bug: 63918065 Test: test_timestamps.cpp Change-Id: I5d01eb844e4b14cd5477d56ea1dd9e309abc1c52
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
39f02ddfbfd9313370d862a6c4727826379a319a |
|
04-Aug-2017 |
Phil Burk <philburk@google.com> |
aaudio: fix EXCLUSIVE mode interfering with SHARED The MMAP endpoints were not tracked by the EndpointManager so it could not broker EXCLUSIVE access. To fix this the MMAP stream was refactored to use a per-client stream and a per-device endpoint. Cleanup close() of MMAP stream. Add AAudioServiceEndpointShared.cpp. Extract AAudioServiceEndpointMMAP from AAudioServiceStreamMMAP. Track MMAP endpoints so we can manage EXCLUSIVE and SHARED access. Bug: 64494572 Bug: 64310586 Test: see bug, use write_sine to play a shared stream and a excl stream Change-Id: I5053193abfd9b8a69a2f7e1110739d65e2af5d64 Merged-In: I5053193abfd9b8a69a2f7e1110739d65e2af5d64
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
0befec600314a79c0d142c3edd99f7d1c75e1afe |
|
29-Jul-2017 |
Phil Burk <philburk@google.com> |
aaudio: update state for legacy mode Add logging to the loopback test. Update state in the callback. Implement AAudioStreamRecord::getFramesWritten(). Bug: 62781173 Bug: 64214193 Test: aaudio_loopback.cpp, look for STARTED state while running Change-Id: Iba867d048dcfcafe6db1d095abe2766f1aabe608
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
97350f9df7252c881f011a410fcd9e6d766d2bee |
|
22-Jul-2017 |
Phil Burk <philburk@google.com> |
aaudio: improve accuracy of timestamps Account for latency added by the AAudio service. Fix input timestamps. Bug: 37080396 Test: test_timestamps.cpp input_monitor.cpp Change-Id: I1053cd21af722bb9b9371df4e5731bf4a0a57b0b
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
fd34a9310659aa53e9e10d6826651577a75f6447 |
|
19-Jul-2017 |
Phil Burk <philburk@google.com> |
aaudio: reduce glitching by improving sleep timing ALways sleep a minimum time to avoid busy wait in real-time thread. Account for wakeup jitter in threads on the other side of a FIFO. Avoid race condition that caused a longer sleep than necessary. Fix calculation of mFreeRunning for capture mode. Also added systrace logging, which was used to debug this. Bug: 63814792 Test: Run GStomper on Walleye with MMAP on, see bug Change-Id: I7b20098580ff454365425bd21e43c17ade532a0a
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
cb4dae216758d9e9a28050f65097f1ce905c03e9 |
|
02-Jul-2017 |
Eric Laurent <elaurent@google.com> |
aaudio: indicate client UID and PID to audio flinger Implement correct indication of client UID and PID to audio flinger for AAudio MMAP streams in both exclusive mode and shared mode. - Add start/stop client methods on MMAP streams used only when the MMAP stream is in AAudio service and carries a mix of shared streams. - Add "In Service'" indication from "client" side to AAudioServiceStreamMMAP so that the behavior can be adapted accordingly. - Modify logic on audio flinger side with regard to mmap tracks and audio HAL stream activity: - use same audio session for all clients on a same stream to match audio policy logic to share same direct output stream for clients on same session. This is also more consistent with current volume and effect handling as all MMAP clients sharing the same output stream have the same volume and use case. - start/stop the HAL when the stream is started/stopped with the initial client handle (returned when the stream is opened) but do not create a track. AAudioService implementation will always send an additional start command before first client starts and a stop command after last client stops, in both shared and exclusive mode. - start/stop a track only if the start/stop stream command is received with a handle different from the initial handle. - Allow more than one active client from the same UID on a MMAP input in audio policy. Bug: 62950008 Test: verify playback and capture in mmap mode Merged-In: I86151bbb637ff172d2fd5f813056eab13a7bcd3c Change-Id: I86151bbb637ff172d2fd5f813056eab13a7bcd3c
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
b336e89d57d51b80b8bf5f0a0caf7667209ffb1d |
|
06-Jul-2017 |
Phil Burk <philburk@google.com> |
aaudio: MMAP input not implement pause flush They should return AAUDIO_ERROR_UNIMPLEMENTED just like the legacy streams. Bug: 63351465 Test: CTS test_aaudio.cpp testPauseAndFlushNotSupported Change-Id: I42c8d45517bf0d808e648287579b9fb0c0cb3ae0
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
ec89b2e2f8c84a7d3936db1a888034f4a4b0df16 |
|
21-Jun-2017 |
Phil Burk <philburk@google.com> |
aaudio: fix CTS for MMAP mode Improve calculation of buffer capacity based on requested minimum. Adjust timing of start() to reduce underflows. Track ServiceEndpoints based on requested deviceId. Fix getFramesRead() and flush() behavior. Fix timeouts due to ClockModel lateness bug. Misc cleanup. Bug: 37755299 Test: test_aaudio.cpp Change-Id: I637c16e87fbe14b6f28c60aeea0b9dfed965ecd0
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
a2f296e06bee54cc83130a17f136cab1006f55d5 |
|
22-Jun-2017 |
Eric Laurent <elaurent@google.com> |
aaudio: implement IPlayer for MMAP playback streams Make AudioStreamInternal derive from PlayerBase to provide playback and volume control via IPlayer interface. Bug: 62027849 Test: verify aaudio playback in MMAP mode and registration of aaudio players in AudioService when active Change-Id: Ia0878d46637c0a954d8a6259868a2d3bccf19119
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
9dca9824da74d50be02bc81f539cc77b7bde678a |
|
26-May-2017 |
Phil Burk <philburk@google.com> |
aaudio: remove deprecated aaudio_audio_format_t Should be using aaudio_format_t Bug: 62141619 Test: compile and run CTS test_aaudio.cpp Change-Id: Ibbba2769dfd8bcd9c108d87c19fe1fad2ba43df1 Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
cf5f6d2825d9a8430a291042ca9c6f68e5b666d0 |
|
26-May-2017 |
Phil Burk <philburk@google.com> |
aaudio: reduce logspam, improve critical logs This will make AAudio less annoying and easier to debug. Bug: 62080950 Test: look in logcat Change-Id: Id7ae26a212f83ea8be0b285bd20334eb48607be8 Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
87c9f646a94259d7c321c3b3d5947fa1778f5ac2 |
|
17-May-2017 |
Phil Burk <philburk@google.com> |
aaudio: lower latency using MMAP capture MMAP can be enabled by setting system properties. Bug: 38267780 Test: input_monitor.cpp Change-Id: I5e86fd1d9baef4fe59837ccbca7971acbb54d8b5 Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
5204d315c6c6f53188f8d1414dd1b55b6c90142b |
|
05-May-2017 |
Phil Burk <philburk@google.com> |
aaudio: validate audio data format Also lots of minor cleanup Fix underscores in some headers Refactor getTimestamp() Bug: 34127069 Bug: 38227780 Test: CTS test_aaudio.cpp Change-Id: I6fdb50eb00a41688df871018ced91d5f5f055f8a Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
e2fbb59e729f6c3cade3b531f6f6411417ccbf40 |
|
02-May-2017 |
Phil Burk <philburk@google.com> |
aaudio: add setPerformanceMode() The performance mode affects the latency and the implementation of the data path. MMAP is still disabled for now. Bug: 37867485 Test: write_sine.cpp Change-Id: I9bf5d5d13d1047d5ace69bd5ebdce7b6d65c14e7 Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
4c5129b410884ec0400cbe65fce56d0ade12d11b |
|
29-Apr-2017 |
Phil Burk <philburk@google.com> |
aaudio: Fix getFramesWritten() for callback mode. Plus other small fixes for CTS and cleanup Bug: 37910599 Test: test_aaudio.cpp Change-Id: I65a23daf99e9de857d3ce9fd12e9f11c614e298e Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
e572f469de5dca1078a79d3d80e5b04f96ae7505 |
|
20-Apr-2017 |
Phil Burk <philburk@google.com> |
aaudio: apply volume in the MMAP data path The volume scaling is in AudioStreamInternal and not the mixer because we will need volume scaling in EXCLUSIVE mode too. Bug: 37518243 Test: play a tone using NativeOboe app then press volume keys Change-Id: Ibbac9770ea4493f8ade64681be86f109a92803cd Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
71f35bb687476694882a617ba4a810a0bb56fe23 |
|
14-Apr-2017 |
Phil Burk <philburk@google.com> |
aaudio: fix SHARED MMAP mode in server plus other bugs Fixed some buffer miscalculations, and some NPEs in the close() code. Added debugging and some general cleanup. Fixed data conversion. Fixed start/pause/flush in server. Added reference counting in server for endpoints. Programs can now be ran more than once. General code cleanup. Reconnect with service if server dies. Move stop() logic into server for better synchronization. Add sleep to prevent race condition when closing an MMAP stream. Bug: 33398120 Test: two write_sine_callback.cpp can be run simultaneously Change-Id: Ibb006215a498868c222228d675ff961d7e0bf514 Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
c0c70e3c7dd10bc2c0caffcab1f3f5fb406b35fb |
|
09-Feb-2017 |
Phil Burk <philburk@google.com> |
AAudioService: integrated with audioserver Call the MmapStreamInterface from AudioFlinger instead of the FakeHAL. Fix sending timestamps from the thread. Add shared mode in service. Bug: 35260844 Bug: 33398120 Test: CTS test_aaudio.cpp Change-Id: I44c7e4ecae4ce205611b6b73a72e0ae8a5b243e5 Signed-off-by: Phil Burk <philburk@google.com> (cherry picked from commit 7f6b40d78b1976c78d1300e8a51fda36eeb50c5d)
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
e4d7bb418df0fdc4c708c334ba3601f5ed8d89b3 |
|
28-Mar-2017 |
Phil Burk <philburk@google.com> |
libaaudio: implement callback Use AudioTrack and AudioRecord TRANSFER_CALLBACK. Add FixedBlockAdapter to provide fixed size callbacks. Bug: 36489240 Test: CTS test_aaudio.cpp Change-Id: Id2034dd640f878dd27fee6b43ad80a01c627dfd6 Signed-off-by: Phil Burk <philburk@google.com> (cherry picked from commit c8f372c22a0e4c667a3ad3c1ec569032574c1d64)
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
3316d5e6d375a4f09c681205e9094d30a0bfc4a2 |
|
15-Feb-2017 |
Phil Burk <philburk@google.com> |
libaaudio: changes for API council Removed typedefs like aaudio_sample_rate_t Removed use of handles. Just pass back opaque pointers. Simplified gettersi in Stream. Removed getters from Builder. Update libaaudio.map.txt Test: CTS test_aaudio.cpp Change-Id: I63eaec3e5a8ecc516cfc1f950f4b4f54df1bd518 Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|
f53e613b3dedab3ecada2c93d8846233c442d129 |
|
09-Feb-2017 |
Phil Burk <philburk@google.com> |
libaaudio: change name from liboboe Bug: 34749573 Test: CTS test_aaudio.cpp Change-Id: I7e2b621488047f0798ca6f2fc00d2b5fed2bf015 Signed-off-by: Phil Burk <philburk@google.com>
/frameworks/av/media/libaaudio/src/client/AudioStreamInternal.h
|