• Home
  • History
  • Annotate
  • only in /frameworks/av/media/libaaudio/src/utility/
History log of /frameworks/av/media/libaaudio/src/utility/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
51f07177574ec2afd19b4390ab64ff8014489a9b 27-Apr-2018 Phil Burk <philburk@google.com> aaudio: use fmin and fmax to block Nan

This prevents NaN from creating noise that does not respond to
Volume changes.

Bug: 69224661
Test: adb shell aaudio_loopback -c2 -C2 -tm -m2 -s20 -Pl -pl
Change-Id: I8604f5af42cbf5637f7ea4e975f53db990cdf9de
AudioUtilities.cpp
7f68013dd65638b6688d17f53641d2f8f7fc2e09 12-Mar-2018 Phil Burk <philburk@google.com> audio: check for negative sizes in conversion

Check for negative parameters in AAudioConvert_framesToBytes().

Bug: 74548911
Test: run CTS
Change-Id: I42903b9c7f710a34a8689431e57c084a9959d0e0
AudioUtilities.cpp
AudioUtilities.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
AudioUtilities.cpp
AudioUtilities.h
67fdd894bf7e09a544348a9f8298427bc9b3fe85 24-Jan-2018 Phil Burk <philburk@google.com> aaudio: fix sessionId conversion

Was not handling negative IDs correctly.
Update test to allow negative IDs.

Bug: 72333892
Test: CTS has test_session_id
Change-Id: I1ca57026d6202f7d54c8efd51b14854be6cc69e4
AudioUtilities.cpp
AudioUtilities.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
AudioUtilities.cpp
AudioUtilities.h
6a784e71ca122347789faa73367877d41831592f 24-Jan-2018 Kevin Rocard <krocard@google.com> Merge changes from topic "audio-hal-v4-tmp"

* changes:
Audio V4: Split system and vendor Audio.h
Audio V4: Use the framework audio.h instead of the HAL's
eaef9b9c7b3c6c4d4435ce5e32e9fe952a2f69fe 18-Jan-2018 Phil Burk <philburk@google.com> aaudio: use AAUDIO_INPUT_PRESET_VOICE_RECOGNITION

Change default for InputPreset to restore low latency.

Bug: 72049948
Test: see bug, adb shell aaudio_loopback -te -pl -n1 -x -X
Change-Id: Ie987c2e65d9338353ec6e23598442394d2a2e4a9
AudioUtilities.cpp
6d7582e9ad858301b3eeff7b187af6c34808cb7e 12-Jan-2018 Kevin Rocard <krocard@google.com> Audio V4: Use the framework audio.h instead of the HAL's

Using the legacy HAL interface was not needed. Only the system audio
header types are used by aaudio.

Test: compile
Bug: 38184704
Change-Id: I321635ef79732eb20864d1349e6a13911ece8da5
Signed-off-by: Kevin Rocard <krocard@google.com>
AudioUtilities.h
4e1af9fc9c1108d4514e92774f750bcd434dbbcc 04-Jan-2018 Phil Burk <philburk@google.com> aaudio: implement sessionId for effects

If a sessionID other than AAUDIO_SESSION_ID_NONE is requested
then legacy data path will be forced.

SessionID is implemented for MMAP data path but not used.
It is easier to implement it now then try to figure
it out later.

Bug: 33268927
Test: test_session_id.cpp will be moved to CTS when stable
Change-Id: I3ea67f57c1cbe24a512980f1352b917ab3cb6387
AudioUtilities.cpp
AudioUtilities.h
d4ccc624201d5c74ff6e14db1b68743b41fe795c 21-Dec-2017 Phil Burk <philburk@google.com> aaudio: implement new USAGE, CONTENT_TYPE and INPUT_PRESET

Pass these audio attributes to AudioFlinger.

Bug: 68052449
Bug: 62104146
Test: test_attributes.cpp will be moved to CTS when ready
Change-Id: Ib8804614d95dcf1b85e51ec1f5569892e017a991
AudioUtilities.cpp
AudioUtilities.h
823267338b2bee8c279306c07775feabfc2434a5 16-Dec-2017 Yi Kong <yikong@google.com> Merge "Use %d for int32_t" am: 240201e27b am: 63c04ff2b7
am: 6428a76641

Change-Id: I8b601680923641d7aa7f7aabed4e072fb77a24e5
6428a766411880964e0c6609606d0f814bf5b674 16-Dec-2017 Yi Kong <yikong@google.com> Merge "Use %d for int32_t" am: 240201e27b
am: 63c04ff2b7

Change-Id: Ie30c55232b8b228fab1de5d827dc1bcf29c0f4a7
0f414de66cda78cd019df9f791cb17889cfc8bca 15-Dec-2017 Yi Kong <yikong@google.com> Use %d for int32_t

Discovered by the upcoming compiler update.

Test: build
Change-Id: I0314ae298bc84fb07fda8736a827642c849afdc9
AudioUtilities.cpp
bba0900e3c6314235ae12440ad1cee43f12a57f8 29-Nov-2017 Phil Burk <philburk@google.com> aaudio: optimize float to int conversion

Use new techniques from audio_utils/primitives.h

Test: change volume while running
Test: test_linear_ramp.cpp
Test: adb shell write_sine_callback -pl -fi -x -s20
Test: adb shell write_sine_callback -pl -ff -x -s20
Change-Id: Ib7dab07f351cf97a8cbda9608091188dec41d04c
AudioUtilities.cpp
9eba210059bb8d8502988fc9fd0cecf223c9114f 20-Nov-2017 Phil Burk <philburk@google.com> aaudio: fix ramp for volume smoothing

It was using numSamples instead of numFrames.
So timing was off.

Bug: 68804159
Test: raise and lower volume without clicking
Test: test_linear_ramp.cpp
Change-Id: I18b10dadbc47ab9cbe9c5aefd4e6197c50a0bedc
inearRamp.h
6392485cb6f83d8cdcdc42786be4879d43470814 02-Nov-2017 Phil Burk <philburk@google.com> Merge "aaudio: fix loss of sync with HW FIFO index" into oc-mr1-dev
am: 1a55036ab9

Change-Id: I569320e6fc3ff010b2301ab8cf9036b1f13908ad
999e110dac3783df71e5606be1d86f1b122145c0 26-Oct-2017 Phil Burk <philburk@google.com> aaudio: fix loss of sync with HW FIFO index

This fixes a problem with intermittent severe distortion
and variable latency after restarting a stream.

Bug: 68003241
Test: write_sine_callback -pl -m2 -n2 -s5 -c2 -l100
Merged-In: Id7418adb86f2869ac74936cfbd365815a0a0e923
Change-Id: Id7418adb86f2869ac74936cfbd365815a0a0e923
onotonicCounter.h
73af62a5ff0577eec6ad1be2b45fc9a15eaba920 26-Oct-2017 Phil Burk <philburk@google.com> aaudio: fix loss of sync with HW FIFO index

This fixes a problem with intermittent severe distortion
and variable latency after restarting a stream.

Bug: 68003241
Test: write_sine_callback -pl -m2 -n2 -s5 -c2 -l100
Change-Id: Id7418adb86f2869ac74936cfbd365815a0a0e923
onotonicCounter.h
02cc0ecc732a33a33570ec490c44a686354c512b 15-Oct-2017 Elliott Hughes <enh@google.com> resolve merge conflicts of 58fc59b91c to oc-mr1-dev-plus-aosp

Test: I solemnly swear I tested this conflict resolution.
Exempt-From-Owner-Approval: weekend merge conflict resolution
Change-Id: I70002ccad145f7b5fa4854d6aa192322b07849e9
5fa7dcf26a5bec668532e086a973683edfb657a8 15-Oct-2017 Dan Albert <danalbert@google.com> Merge "Add missing includes."
am: fe4ab105da

Change-Id: Ib95769338491b8cd3f5b1640a7839dfaff301da0
cb2e7fb2a42542c3406678c4fd4ccfab9ceb8748 11-Oct-2017 Dan Albert <danalbert@google.com> Add missing includes.

Test: mma
Bug: None
Exempt-From-Owner-Approval: trivial cleanup
Merged-In: I97b9e5e1b6e8b3126a8668460a8c99e4ef1a907d
Change-Id: I97b9e5e1b6e8b3126a8668460a8c99e4ef1a907d
udioClock.h
36967fb1a52f44cef9b5bdcca0f646aa136e285a 11-Oct-2017 Dan Albert <danalbert@google.com> Add missing includes.

Test: mma
Bug: None
Change-Id: I97b9e5e1b6e8b3126a8668460a8c99e4ef1a907d
udioClock.h
523b3047af443d0a51141ddabd328d52be5a23b0 13-Sep-2017 Phil Burk <philburk@google.com> aaudio: keep track of streams using strong pointers

Maintain strong pointer to service stream during service calls.
Use simple AAudioStreamTracker instead of complex HandleTracker.

Bug: 65280854
Test: affects all MMAP streams, run all CTS tests, etcetera
Change-Id: I3d2ed8b588ea39c216dacd4dea503b11c33f36f3
andleTracker.cpp
andleTracker.h
2d5ba532cc80b3408b9eb5d47d3144bf93ece8cd 06-Sep-2017 Phil Burk <philburk@google.com> aaudio: prevent noise upon disconnect

Also clean up the state machine handling in the data callback.
Prevent error callback sometimes being called twice for the same error.

Bug: 63342351
Bug: 63087953
Test: add sleep(2) to write_sine_callback.cpp before the requestStop()
Change-Id: I27737bcb0371052741f50bda9f65c5994ccf6fd9
AudioUtilities.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
AudioUtilities.h
7328a80ffc83729cc6252c79e0851a31af59c653 30-Aug-2017 Phil Burk <philburk@google.com> aaudio: prevent retrograde motion in Legacy timestamps

Use MonotonicCounter for timestamp position.

Bug: 63918065
Test: write_sine_callback.cpp and test_timestamps.cpp
Change-Id: Iea58384e2d96adcfad586e8c522024baaecccb8c
onotonicCounter.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
AudioUtilities.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
AudioUtilities.cpp
AudioUtilities.h
940083c3049e269f6c150d5477eccb6bad32b129 18-Jul-2017 Phil Burk <philburk@google.com> aaudio: fix intermittent hang and position error

Fix hang caused by recursive mutex.
Fix disconnect caused by getPosition() failing, which was
just because the stream wasn't ready yet.

Bug: 63775537
Bug: 63709749
Test: run "aaudio_loopback -pl -Pl -c2 -n6 -te -m" many times
Change-Id: Ic1d54360b55cfc8ecc1809584c262bc0976c58bb
AudioUtilities.cpp
4501b3510f9b2af2ff63a0471de24e3feea1d0a8 30-Jun-2017 Phil Burk <philburk@google.com> aaudio: improved dumpsys

Add more information about various streams and endpoints.

Bug: 38396780
Test: adb shell dumpsys media.aaudio
Change-Id: I5cc116574bfc3aa93703c182d933dbdfcbefad7a
andleTracker.cpp
47c5e530b01b620a4f65efa121a938789a6823b4 27-Jun-2017 Andy Hung <hunga@google.com> AAudioService: add dumpsys capability

Test: adb shell dumpsys media.aaudio
Bug: 38396780
Change-Id: I8b5c421bdd1b3228d8140816a68740709aa9757b
AudioUtilities.h
andleTracker.cpp
andleTracker.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
AudioUtilities.cpp
94e16458f4665d3c167d0e2c905a3f4ec9e7a3e7 06-Jun-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "aaudio: reserve some error codes" into oc-dev
17fff38dd9d467bc5fb6cd5b9a6b183951c7750d 16-May-2017 Phil Burk <philburk@google.com> aaudio: reserve some error codes

These codes were unused or redundant.

Bug: 37755198
Test: CTS test_aaudio_misc.cpp
Change-Id: I46797b9fba9406b9c98d4b9aa49f0cacbec332b9
Signed-off-by: Phil Burk <philburk@google.com>
AudioUtilities.cpp
897011a94008cb9ab73f8db397bbd87c57f5cf27 31-May-2017 Glenn Kasten <gkasten@google.com> Merge "aaudio: remove deprecated aaudio_audio_format_t" into oc-dev
d04aeea00bdaa999821e1a15c437ea648bd07195 23-May-2017 Phil Burk <philburk@google.com> aaudio: AAudio_setMMapPolicy()

Controls whether MMAP data path is used NEVER, AUTO or ALWAYS
For testing only. To improve code coverage in CTS.

Bug: 38268547
Test: write_sine.cpp
Change-Id: Iad97876fb6f1d0c653262161b7b5519d83d16ac5
Signed-off-by: Phil Burk <philburk@google.com>
AudioUtilities.cpp
AudioUtilities.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>
AudioUtilities.cpp
AudioUtilities.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>
AudioUtilities.cpp
c8f69a08a409fd163873d725c63f8d60259ae21d 12-May-2017 Phil Burk <philburk@google.com> aaudio: control MMAP mode using system properties

To facilitate testing of MMAP mode.

Bug: 38268547
Test: set properties, see framesPerBurst in write_sine_callback.cpp
Change-Id: I6e15c563215017f6a5020d89ac312ff8331afc4f
Signed-off-by: Phil Burk <philburk@google.com>
AudioUtilities.cpp
AudioUtilities.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>
AudioUtilities.cpp
ixedBlockAdapter.cpp
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>
AudioUtilities.cpp
AudioUtilities.h
inearRamp.cpp
inearRamp.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>
AudioUtilities.cpp
7473345009b12576d8a768c93cc29a6b404eafd8 19-Apr-2017 Phil Burk <philburk@google.com> aaudio: remove AAUDIO_FORMAT_PCM_I8_24 and I32

They were not supported and we may not support them.

Bug: 30210002
Test: test_aaudio.cpp
Change-Id: Ib8a5d416b93df87e4b73e03789eacf0fd3f77f8e
Signed-off-by: Phil Burk <philburk@google.com>
AudioUtilities.cpp
a4eb0d86a29be2763be5fac51727858d5095794b 13-Apr-2017 Phil Burk <philburk@google.com> aaudio: merge contents of AAudioDefinitions.h into AAudio.h

As requested by native API council.

Bug: 30210002
Bug: 33398120
Test: CTS test_aaudio
Change-Id: I5ea7c53d09469221263d84cf6f82082e67c2523b
Signed-off-by: Phil Burk <philburk@google.com>
AudioUtilities.cpp
AudioUtilities.h
udioClock.h
andleTracker.cpp
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)
ixedBlockAdapter.cpp
ixedBlockAdapter.h
ixedBlockReader.cpp
ixedBlockReader.h
ixedBlockWriter.cpp
ixedBlockWriter.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>
AudioUtilities.cpp
AudioUtilities.h
udioClock.h
andleTracker.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>
AudioUtilities.cpp
AudioUtilities.h
udioClock.h
andleTracker.cpp
andleTracker.h
onotonicCounter.h
EADME.md