The VTS test already verifies that the MMap hardware position
never resets or goes back, but the official wording in the AIDL
interface was lacking.
Bug: 350998390
Bug: 363139283
Test: none, doc change
Change-Id: I07b9842f53c89549fe648ee839d875d31a7a849d
Stub output stream is like a /dev/null audio device, however
for synchronous transfers it must block for the duration of
the audio chunk being transferred. Implement more accurate
accounting for the blocking time using the same approach as
employed by the remote submix stream implementation.
Bug: 356719263
Test: atest CtsNativeMediaAAudioTestCases
on aosp_cf_x86_64_auto target
Change-Id: I137aed397246bcf2b5ef6789aa4d2d27ead64467
It was noted that calling 'ABinderProcess_startThreadPool'
results in the audio HAL service having more Binder pool
threads than without it. This is preferred to having
just one thread via 'ABinderProcess_joinThreadPool'
as in the latter case clients may seemingly be blocked
instead of being served by a newly spawned thread from
the pool.
Bug: 357669241
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Ia8ed52b3c5a95cea12d063a0e75ac908af9260f8
Move the cleanup of the stream worker thread from '~StreamCommonImpl'
up to concrete stream implementations. This is because when
the worker thread is stopping, it calls 'DriverInterface::shutdown'
method of the stream. At the time when '~StreamCommonImpl' is
running, the concrete stream class has already been destroyed.
The cleanup actually only happens in the case when the client
did not close the stream properly via 'IStreamCommon.close', or
when the stream creation has failed in the middle.
Bug: 355804294
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Ie86f682af202976ed48d24338b2dffcfd20d9a76
Removing code repeatation and moving this method to base class.
Effect implementations can override enable, disable and reset methods.
Bug: 305866207
Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit
Change-Id: Iceb7ad51185d6f6bd2b6d70a5a1dd51e7bd37276
Calling 'stop' can cause the worker thread to terminate
before it handles the 'halReservedExit' command. This should
be avoided because a proper exit sequence may do cleanups.
Since all stream workers must handle the 'halReservedExit'
command, use of 'stop' should not be needed (if the thread
code gets stuck on a call to drivers, calling 'stop' will
not interrupt this), thus it is being replaced by 'join'.
Bug: 344482249
Test: atest CtsMediaAudioTestCases
Test: atest VtsHalAudioCoreTargetTest
Change-Id: If13f7239423657b80091239ff67e7fe350957e2e
Merged-In: If13f7239423657b80091239ff67e7fe350957e2e
In order to use the time interval for reading from the remote
submix pipe more efficiently, increase the deadline time
to the buffer duration minus a small amount. This should
minimize chances to have discontinuities in the remote submix
input.
Bug: 334363414
Test: atest --test-filter=".*RemoteSubmixTest#testRemoteSubmixRecordingContinuity" CtsMediaAudioTestCases
Change-Id: I02968d09afd8ecdad4d61e635393842d7280e55f
When translating supported channel counts into channel masks,
only use channel layouts for 1 and 2 channels: "mono" and
"stereo", while reporting all other counts via indexed
masks. This helps to support output to multichannel USB Audio
interfaces properly.
Bug: 329571487
Test: repro steps in the bug
Change-Id: Ibbbf71e7f04a6622cccaddeb3f4f140193d7f8fb
Some tests in `VtsHalAudioCoreTargetTest` may run for a long
time because they test all combinations of stream configurations.
As a result, the test was timing out on partners' devices.
The partner has confirmed that increasing the timeout to
30 minutes fixes the problem.
Bug: 350998390
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I5eddd19f14d49e88b71134d040ebfb06a1f2d375
Skip the data path tests for offloading reverb, as offloading
effects don't publish fmqs and don't actually process the data.
Test: VtsHalEnvironmentalReverbTargetTest
Bug: 351751648
Change-Id: Ib5f37c4568d405c6c597eb27fe216e6e345a2eae
1. add createMmapBuffer() for vendor to override and create mmap fd.
2. add refineMmapPosition() for vendor to override and update
latency in mmap case.
3. fix testcases position check in mmap case.
Bug: 274456992
Bug: 345591089
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Ie63fdd47c0ddc563d84699dfdf6d4e9b72b5af43
- create buffer and check the fmq data with frameSize
- check effect state after open/close/command
Bug: 338040049
Test: atest --test-mapping hardware/interfaces/audio/aidl/vts
Change-Id: I45af2faec3cdcef5307fbdcf600a63d7da759261
Validate decrease in variance value when diffusion increases
Bug: 305866207
Test: atest VtsHalEnvironmentalReverbTargetTest
Change-Id: I502693a376a58e9908ff264165a13ca1e727edad
Compare energy values of auxiliary output for different parameters
Remove environmental reverb default implementation from the config file.
Bug: 305866207
Test: atest VtsHalEnvironmentalReverbTargetTest
Change-Id: I261c52ff25dd63d41213f0b40df8627dbb80a95d
In practice, the AoC can crash while the stream is in
any state, thus this should be allowed for correct
handling of error conditions in the framework.
The list of states when `IStreamCallback.onError` can
be received is not enforced in VTS tests, thus no
test regressions are expected.
Bug: 339400414
Test: repro steps for simulating AoC crash in b/339400414
Change-Id: I9a52779f773307882109e159d715072de5af2ece
In aosp/2908743, the intended behavior of the "halReservedExit"
command (stream exit) was inadventedly changed. Instead of
exiting from the thread's loop only when the cookie has
the expected value, it was actually exiting when the cookie
value is any but zero. The intended behavior is as follows:
- the cookie has expected value: do not send reply, exit loop;
- the cookie has unexpected but non-zero value: ignore,
do not send reply (that's the point of using the cookie);
- the cookie has a zero value: ignore, send a reply (this is
for VTS testing).
Bug: 300181540
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I9945eb0ba9042993adac8599b18f241c4f69ca7a
also update VTS data path test skipping for offload effects
Bug: 335547630
Test: atest --test-mapping hardware/interfaces/audio/aidl/vts:presubmit
Change-Id: Ie92f04091658e210dccb7a2d60ebbab14c49fb58
Merged-In: Ie92f04091658e210dccb7a2d60ebbab14c49fb58
Issue a fatal error when the data FMQ detects internal pointers
corruption. This condition indicates some low level problems
and should be diagnosed as fast as possible.
Bug: 338974476
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I962eba620149c7169f0f0a2dad4c4064232966d7
relaxing several parameter checking to align with HIDL
- no need to have stage in use to set bands/channels
- band settings no need to be sorted by frequency
Bug: 328012516
Test: atest VtsHalDynamicsProcessingTargetTest
Change-Id: If12d978ee69ee7f087a7e8758513a9c6bacf817f
Merged-In: If12d978ee69ee7f087a7e8758513a9c6bacf817f
Some audio outputs use A/V sync and requre mode bursts
in order to start reporting the presentation position.
Bug: 300735639
Bug: 328010709
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Icad0942f2ba1dcd6f030a7dc4f37e22fdbd6dd71
According to the definition of the 'PAUSED' state
in StreamDescriptor.aidl, s/w (the client) stops
writing once the buffer is filled up. That means, it is
allowed for an output stream not to consume data
from the MQ while in the paused state, so allow that
in the test.
Also, update the state transition sequence in the test
to flush any data after making a burst while in the 'PAUSED'
state.
Bug: 328010709
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Icb5fd02ca4ede63d7ae33613ab66cb96f3e6df29
The test was using '0' as an "invalid" patch ID value, however
this value is valid in the context of 'IModule.setAudioPatch'
method and means "create a new patch and allocate and ID for it".
Bug: 328010709
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Icd33f3cbd1602ec5aa162fa72fc3ddd59ccffbef