These things are ceaseless: /
code reviews, design docs - /
off-by-one errors making a mess
Test: atest CtsCameraTestCases
Bug: 129561652
Change-Id: I807d7ad4740ffe267053fe5da2080f9ecb45aa72
The haptic intensity for fast track should be initialized, or it will be
HAPTIC_SCALE_MUTE by default, which may result in no haptics.
Bug: 130312331
Test: play haptics stream with FastMixer enabled
Change-Id: If5a1ea12c563c4af1422b2e32451b80e69d2ef58
In call music played on remote is called an "exclusive" preferred
device. It may not be propagated to other client that may play locally.
The client of the exclusive preferred device is not routed as the
exclusive preferred device are ignored from findPreferredDevice helper.
This CL fixes the routing
Bug: 130284799
Test: AudioPolicyEmulatorTests --gtest_filter=FilteringExpliciRoutingTest*
Change-Id: Iec7e14cb170d0f67c8c0b231f8219c133d7d2185
Signed-off-by: François Gaffie <francois.gaffie@renault.com>
Engine is not only responsible of legacy remote submix for input
device selection (aka "0" adress) but also regular remote submix
with a given address. Filtering the remote submixes prevents engine
to select the remote submix for input stream in case a policy mix
rule has been set to record specific sources.
Bug: 130284799
Test: AudioPolicyEmulatorTests --gtest_filter=RecordInjectionSourceMatch/DynamicPolicyMixRecordInjectionTest
Change-Id: Iaafd1195b9ab5c82ad3bd2766061d982a10bb9da
Signed-off-by: Francois Gaffie <francois.gaffie@renault.com>
Clean up session effects in releaseOutput in case stopOutput
is not received before release.
Bug: 124689305
Test: start/stop cast screen while playing music
Change-Id: Ie0588dd3336d56d34c2d717268fcd0918cbf5717
The haptic data will be partially interleaved at the end of the buffer
after processing audio mixing. When processing audio effect, only audio
data will be handled. In that case, haptic data will be missed if there
is any audio effect. Copying haptic data directly from audio effect in
buffer to out buffer could help solve the problem.
Bug: 129956425
Test: play haptic with audio effect.
Change-Id: I2b48bb43bec10167d4eacbcaa5c27959e0d44c32
This reverts commit b4979c59d9.
Reason for revert: reland with fixes:
1) make OMXHarness use OMXClient, not directly IOMX wrappers.
2) fix ref of consumer listener interface in GraphicBufferSource.
bug: 129272021
Test: camera recording, aosp_x86 build
Change-Id: Idaaaf412c65cbe89c95a2cb54f3833ff1fc4c304
To improve camera launch performance, cache the proxy service
interface. System tracing indicates fetching the interface can take
up to 8-10 ms during real camera opens, which is a percent or two
of total camera startup time.
Test: atest CameraCtsTestCases
Bug: 130173970
Change-Id: Icdf5218b04f608b897dcbf2085f971b04a913f3b
This reverts commit 482f60cccc.
Reason for revert: b/130058749 camera recording hang
Bug: 130058749
Change-Id: I358bc9c62c48328c01c8611c7e6f77d16affff54
Using AUDIO_DEVICE_OUT_SPEAKER to replace AUDIO_DEVICE_OUT_SPEAKER_SAFE
for device match.
Bug: 129456342
Test: volume can adjust while previewing ringtone
Change-Id: I3015f811ac6d2e3f3cdd606f453348c4bc526935
Signed-off-by: Robert Lee <lerobert@google.com>
Fix a cross deadlock between thread and effect chain mutex introduced by
commit 446f4df5.
Bug: 130044136
Test: start/stop audio capture for voice communication in 2 different apps
Change-Id: I23bdbd203476d2bc0b3d8d87ab66e1a9c00f7bcd
- Make mediacodec service/libstagefright_omx not dependent
on libgui. Server should only reference bqhelper (which
currently still have a dependency on libgui, but could be
removed later as it's only used internally).
- Make libmedia_omx not dependent on libgui by moving the
IOMX wrapper code into a separately that's only used by
the platform.
- Move ConsumerListener references in GraphicBufferSource
to implementation only, so that other libs including
GraphicBufferSource doesn't need to link libgui.
- Remove bqhelper references from some client side libs.
- Remove IOMX ipc related code, as IOMX interface is no
longer used for ipc. It's only used as an interface on
client side.
bug: 129272021
test: builds;
atest CtsMediaTestCases -- --module-arg CtsMediaTestCases:size:small
Change-Id: I49d80bf72eba325ee80b223d4a5ba7b0c1ab4d35
As MMAP does not support APC, it is disabled when a render loopback
policy is installed.
Test: adb shell write_sine_callback -pl # mmap is used
adb shell audiorecorder --target /data/file1.raw &
adb shell write_sine_callback -pl # mmap is NOT used
Bug: 129948989
Change-Id: Ia90c24953890de7e19fd99485bf760788f81126d
Signed-off-by: Kevin Rocard <krocard@google.com>
(cherry picked from commit c1dde63140)
For Camera1-HAL3 shim, the camera ID filtering logic is revised to
handle case of multiple logical cameras facing the same direction,
and are backed by same/different set of physical camera IDs.
Example 1 (all facing back):
ID1 = ID3 + ID4
ID2 = ID5 + ID6
Example 2 (all facing back):
ID5 = ID1 + ID2
ID6 = ID3 + ID4
In both examples, only ID1 will be advertised to camera1 app.
Test: Check cameras on devices with multiple logical cameras
Test: Camera CTS
Bug: 113705942
Change-Id: I76f370938b3311bbe7adcac8eddf8b6cf08e4571
This would allow an app that successfully registered an invalid mix to
block all following mixes.
Test: none
Bug: 111453086
Change-Id: I3c1630b7b697dd70e08a5708d1515e097d683401
Signed-off-by: Kevin Rocard <krocard@google.com>
Package name will be cached in ModuleClient when attaching a client. It
will be used when querying permission of capturing hotword.
Test: test with logging.
Bug: 74078996
Bug: 122721589
Change-Id: Icd2911f5d331d243c9eb5d58003ce5525c70c81e
remove use of obsolete method streamToVolumeSource()
and replace it by toVolumeSource() which actually queries
the engine for stream to volume source mapping.
Bug: 129439600
Test: make
Change-Id: Ie4e4e93aa5925315078fa96a957bb3ed71e7dc76
Mute/unmute tracks according to changes in OP_PLAY_AUDIO for
the current usage.
In audio policy: always assign AUDIO_STREAM_ENFORCED_AUDIBLE
to sonification tracks with AUDIBILITY_ENFORCED flag.
Do not mute tracks from root / audio server.
Do not mute UI sounds on AUDIO_STREAM_ENFORCED_AUDIBLE
stream type.
Bug: 112339570
Test: enter DnD, play notifications, verify not heard
Change-Id: Ia5f1118481cf0573101acf2092fbd0ce2cf8c038
The mediaswcodec and mediaextractor use the scudo libraries as a
sanitizer. This has some downsides since it bypasses all of the normal
allocation handlers used by the rest of the system.
Switching from the plain sanitizer to a wrapper library libc_scudo.so
allows the use of the allocation handler code from
bionic/libc/bionic/malloc_common.cpp.
This is a temporary workaround, later versions of Android should
support scudo as a first class native allocator.
NOTE: The two libraries that make up the scudo override combined are
smaller than the libclang_rt.scudo-XXX.so library, so this is a space
win too.
Bug: 123689570
Test: Builds and boots. Verified that scudo is used as the allocator.
Test: Verified that the allocation limit is properly set for mediaextractor.
Test: Ran a few of the CtsMediaTestCases tests.
Change-Id: I3bdf76bfeea503b33da765e093e38818b620a481
This prevents the stream from getting suspended
if not read or written fast enough.
Bug: 129140370
Test: test_full_queue
Change-Id: Icc5ddc72c99fb3c518736f2a50d6c6a0276ee196
The life cycle of an IO profile on remote submix module
associated with a dynamic audio policy is different from other profiles
supporting removable devices with addresses: the profile must not be
cleaned up when the device is disconnected but when the dynamic policy
is unregistered.
Bug: 121200677
Test: phone call while connected to Android auto head unit simulator
Change-Id: I8c9f64697b736dab379a7d85b9d93568139e4e84
Exclude remote submix devices with non "0" (legacy) addresses from devices
returned to Engine by AudioPolicyManagerObserver::getAvailableOutputDevices()
and AudioPolicyManagerObserver::getAvailableInputDevices()
Bug: 129144725
Test: make
Change-Id: If1ce89acb2a35a6bede195f520b4047f92b928bd
Previously, ThreadBase::mLock was only acquired inside
ThreadBase::dumpBase method. That means, dumping of fields of
descendant classes, tracks, and effect chains was performed
without holding ThreadBase::mLock.
This patch changes the way of how dumping is driven. Now only
ThreadBase has a public 'dump' method which is non-virtual.
This method takes the lock and dumps all the fields, tracks, and
effect chains. It calls virtual methods for dumping the contents
of descendant classes.
Bug: 118842894
Test: compare audioflinger dumps A/B
Change-Id: Iaafc75d13935a6a92ca37f9567b7ac7c31374b3e
The dump code was not using AudioMixMatchCriterion class fields
correctly.
Bug: 112151391
Test: 1. run and pause AudioPolicyTest#testMixByUidCapturing
2. adb shell dumpsys media.audio_policy
Change-Id: I5f74a0e6dc1a7039eab1470402179b7f9d1cd962
Make sure the Engine is never aware of remote submix devices with non
"0" (legacy) addresses as the Engine does not have to deal with devices
only used by dynamic audio policies.
Bug: 129144725
Test: make
Change-Id: Ifa19c952e22ac18c5d47e731cbfa41f81fe5c32c
Fix missing log line in the case when there are no effects in
the chain.
Bug: 118842894
Test: adb shell dumpsys media.audio_flinger
Change-Id: I31fe4760caa61610de4f143b3a6ae185efb55baa
1. Change Camera3Device logs to ALOGV
2. In Camera3OutputStream, only log before we mark stream state
to STATE_ABANDONED
3. Also changed BUFFER_ERROR log to ALOGV
Test: manually check log of GCA mode switch
Bug: 125415787
Change-Id: Ibd83b7010932a8be25d85573d9c9dce9c394f6bb
The technique of bouncing lock attempts does not work well
in the case when another lock has higher priority and acquires
the lock frequently. Timed lock works better in this case
because the acquiring thread is then put in a queue and gets
the lock as soon as another thread releases it. The wait time
in the worst case (deadlock) is the same.
Bug: 118842894
Test: Run VOICE_COMMUNICATION capture + AEC effect, dump audioflinger
Change-Id: Idc4fc2b6f5faf6988979f9354dd92441af33e600
Fix use use of mAudioRecordClients instead of
mAudioPlaybackClients in doReleaseOutput().
Test: make.
Change-Id: I5c695582828300c0297f4f58bcba37e17b51bbbd
This makes the libaudioflinger build deterministic between
devices.
A few notes:
- the include-path-for include is obsolete, so it was removed
- the AUDIOSERVER_MULTILIB use was removed, as I believe it's
unused
Bug: 121208203
Test: make
Change-Id: I08eb0d7f53f1fbcef3e14faa3ea75b5326383ef8
Suppress first callback sent by startInput() as the input device is not
yet set and it results in a spurious AudioRecordingConfiguration callback
sent by RecordingActivityMonitor with a null audio device.
Also fix a bug in getInputForAttr() where the wrong audio attributes
were stored in the RecordClientDescriptor resulting in a failure to
create the audio patch when DEFAULT audio source is used.
Bug: 129287962
Test: cts-tradefed run cts-dev -m CtsMediaTestCases -t android.media.cts.AudioRecordingConfigurationTest
Change-Id: Ia67abfa56ea653cf69e68bfabbb3d19a12adc310
Apps were previously forced to set their allowed capture policy from
either their manifest which is not flexible or from each track which is
a very fine grain but difficult when using libraries like exoplayer.
Thus add an application level policy set with AudioManager.
Test: atest android.media.cts.AudioPlaybackCaptureTest
Bug: 111453086
Change-Id: Ic890b5b041affea757fbd3f2707ff2ce18771828
Signed-off-by: Kevin Rocard <krocard@google.com>
The opt-out was only present in the java API but not on the native ones.
Test: atest test_attributes
Change-Id: I1b84f1a428508e00de65e615b59405b9ee2ba009
Signed-off-by: Kevin Rocard <krocard@google.com>
For system application with the new permission CAPTURE_MEDIA_OUTPUT, or
CAPTURE_AUDIO_OUTPUT, allow to capture the audio of playing apps that
allow it.
Test: adb shell audiorecorder --target /data/file1.raw
Test: atest android.media.cts.AudioPlaybackCaptureTest
Bug: 111453086
Change-Id: I5bfca51e48992234508897c595a076d066db26b2
Signed-off-by: Kevin Rocard <krocard@google.com>
This fixes the case when the SwAudioOutputDescriptor is part of
duplicated output. In this case, APM::closeOutput finds the
duplicated output, deactivates all the clients for all outputs,
then calls 'close' on the descriptor. Since there are no active
clients, closing the descriptor does not stop it, leaving
pending 'active count' in the profile.
Bug: 128362999
Test: steps from b/124415601
Change-Id: I8fa60ef50efa74ca8cf6e3312e1075a9ec9c63f3
The physical camera device ID must be present as part
of the capture result extras in case of corresponding
result failure notification.
Bug: 128835627
Test: Camera CTS,
AImageReaderVendorTest
--gtest_filter=AImageReaderVendorTest.LogicalCameraPhysicalStream
Change-Id: I042af8bd85eaadd389b059c2833f352ceb2f40fc
- Fix accessibility service not able to get same policy as regular apps
when not using VOICE_RECOGNITION source b/126785297
- Make sure two captures from same app do not silence each other
(e.g two privacy sensitive captures concurrently)
- Ignore clients in idle state when considering priority active clients in
silencing logic.
- Prevent capture while in call if privileged permission CAPTURE_AUDIO_OUTPUT
is not granted
- Allow capture concurrently with privacy sensitive capture or call if
permission CAPTURE_AUDIO_OUTPUT is granted.
- Do not silence virtual sources when sensor privacy is enabled.
- Consider system persistent service as top app state.
Bug: 128419018
Bug: 126785297
Test: audio smoke tests
Change-Id: I7f8c7c511c674d4d46a815eaa7e9cf95e95cc3f9
Bug: 120407707
Test: CTS
Test: Use camera to take pictures / record videos (sanity)
Merged-In: I7b29c337d0e217d2eb6a62e2c75ccc550d795e61
Change-Id: I7b29c337d0e217d2eb6a62e2c75ccc550d795e61
(cherry picked from commit 7d355db285)
Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
Bug: 120407707
Test: CTS
Test: Use camera to take pictures / record videos (sanity)
Change-Id: I7b29c337d0e217d2eb6a62e2c75ccc550d795e61
Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
Switch to using a dynamically-linked library function to initialize
ICU, not a statically-linked function. This means the knowledge of file
paths stays in the runtime module.
Bug: 120493361
Test: build/boot
Exempt-From-Owner-Approval: It's just a cherry-pick
Merged-In: Ibe1d5ffd50e5cce76b1b01788954dcfb4762b1c6
Change-Id: Ibe1d5ffd50e5cce76b1b01788954dcfb4762b1c6
This CL simplifies call flow to set volume from stream or attributes.
It also removes unused parameter from mute setter and fix a volume
source comparison.
Also refactor logic in setVolumeIndexForAttributes() by removing the
loop on all volume sources on a given output given it was ignoring all
sources not equal to current source anyway.
Bug: 124767636
Test: AudioPolicyTests --gtest_filter=StreamTypeVolumeTest.*
AudioPolicyTests --gtest_filter=AttributeVolume/AttributeVolumeTest.*
AudioPolicyTests --gtest_filter=AudioProductStrategiesPlaybackVolume/AudioProductStrategiesPlaybackVolumeTest.*
Change-Id: Id816de023e917b0c0e34bb0888c8b0ad29029f8b
Signed-off-by: Francois Gaffie <francois.gaffie@renault.com>
The RLIMIT_AS limit was introduced as a security mitigation, but it
isn't exactly what the media processes want to control. It is also
problematic under sanitizers which allocate large amounts of address
space as shadow memory, and is especially problematic under shadow
call stack, which requires 16MB of address space per thread. Instead,
use the newly introduced android_mallopt(M_SET_ALLOCATION_LIMIT_BYTES)
to control the allocator's memory limit directly.
Also remove ASAN/HWASAN/CFI specific hacks; they are no longer
necessary because these tools consume address space using mmap and
not the allocator, and remove the 64-bit pointer check before calling
__scudo_set_rss_limit, since otherwise the limit would stop being
enforced in 32-bit mode with Scudo.
Bug: 118642754
Change-Id: Ie66128626976c0b04d5dafd455c375bbfdccc083
Fix setGroupVolumeIndex() which was applying
volume for all groups if in call and causing the wrong
index to be used.
when DTMF are muted when entering call, voice call was
also muted.
Bug: 128499415
Test: call with voice volume set to 6
Change-Id: Ie1296a7a48fdfba3710acb3d7a7e4f00e7b576a5
Additionally initializey the stream id to invalid negative
value in case the Hal tries to verify it during stream
combination queries.
Bug: 128450197
Test: Camera CTS
Change-Id: Ife058e22ef72ee84be82799ed397ca49cd8ea99f
Switch to using a dynamically-linked library function to initialize
ICU, not a statically-linked function. This means the knowledge of file
paths stays in the runtime module.
Bug: 120493361
Test: build/boot
Change-Id: Ibe1d5ffd50e5cce76b1b01788954dcfb4762b1c6
change from a blanket 'using namespace...' directive to a more
explicit qualification on the entities that prompted adding the using in
the first place.
Bug: 128606338
Test: compilation
Change-Id: Id8c8cfcd18801661b82b73d1c59952d1e75d3c7d
Not required and do not assume it.
Test: no regression with atest CtsNativeMediaAAudioTestCases
Bug: 128615806
Change-Id: I29d77d01aad417cc6aa6f882b7bc0812775e13c6
Output error messages on failure.
Test: CTS effects, dedicated test with bad sessionId
Bug: 128528126
Change-Id: Icdd306c30e8eb818b0a27d6463fa785bac2fb707
Allow at most one effect chain with same sessionId on mPlaybackThreads.
Test: poc, CTS effect tests
Bug: 123237974
Change-Id: Ide46cd23b0a9f4295f0dca2fea23379a76b836ee
This CL allows to generate at build time the ProductStrategy structure
file to ensure it is aligned with audio policy engine configuration file.
Bug: 124767636
Test: build
Change-Id: I1afba9602482a898147c685d4a8b03fbe99c08b1
Signed-off-by: Francois Gaffie <francois.gaffie@renault.com>
Lazy loading of sound files can speed up camera startup more than 60ms,
it gives users a great experience. Many apps do not playSound when camera
open or they may use their own audio files. so we load audio files as needed.
Bug: 128432959
Test: install wechat app,open camera,use systrace to see the uiThread wait time.
Change-Id: I3b3697cf9d0d919b88276f6d8e7fdd84578f4fcd
AudioOutputDescriptor::devices() returns a DeviceVector
by value. That means, the returned vector must be held
as long as we need its elements.
Added a FIXME to consider other devices because the
current code looks suspicious.
Bug: 128327759
Test: make
Change-Id: Ifd3a7c8faf89b2c4fc3400aac0060d0e9e673e73
Volume used to be managed per stream type.
VolumeGroup is a configurable way to manage volume affinity.
This CL allows to switch to VolumeGroup as new volume affinity management.
Bug: 124767636
Test: audio smoke tests
Change-Id: I71fc214f6db3158f0f05920cc3d700b29db1a4bc
Signed-off-by: François Gaffie <francois.gaffie@renault.com>
AudioInputDescriptor and AudioOutputDescriptor used to reference
AudioMix instances using a raw pointer. This isn't safe as AudioMix
was owned by AudioPolicyMix, which is not referenced by descriptors.
Change AudioMix* pointers in Audio{Input|Output}Descriptor to
wp<AudioPolicyMix> which reflects their relationship correctly.
To ensure that code does not operate on AudioMix instances
independently from AudioPolicyMix, and to avoid introducing
a lot of getter / setter methods into AudioPolicyMix, make
the latter to inherit AudioMix. This makes sense because
AudioPolicyMix is essentially a ref-counted version of AudioMix.
Bug: 124899895
Test: build and sanity check on crosshatch,
build crosshatch with USE_CONFIGURABLE_AUDIO_POLICY := 1
Change-Id: Ic508caedefe721ed7e7ba6ee3e9175ba9e8dc23a
The code for clearing software patch connections was missing
a check for a null track pointer.
Bug: 126789266
Bug: 128269566
Test: see repro steps in b/128269566
Change-Id: Ice6887622d5fa2fa3198ce15146bff3cb05f7451
Fix the long (>1s) dequeueBuffer call when a stream is managed by
Camera3BufferManager and its consumer end discards free buffers.
Test: CTS, no more long dequeBuffer call in GCA mode switch
Bug: 126054873
Change-Id: I03d6526b076796bb44f15cc2c4a092ff3d04fc1d
- Renamed libaudiopolicyengineconfig to libaudiopolicyengine_config
in order to match names libaudiopolicyengine_{common|interface}.
- Made libaudiopolicyengine_config static to avoid .so overhead.
- Added a cleanspec for it.
- Added libaudiopolicyengine_common which includes source files
previously included directly into engineconfigurable and
enginedefault libraries.
Bug: 121208203
Test: make & flash crosshatch
Change-Id: If3b7b89fcbd5752ddfdeca6c164a88f55bc35811
Camera service listeners must be able to receive
information about camera access permission changes.
Bug: 121379978
Test: Camera CTS
Change-Id: I2e13fdd35a267901a3caa0e0ce78ab1cea83e7ab
Return buffers managed by HAL buffer manager in disconnect.
Test: kill HAL process and check for buffer leak in cameraserver
Bug: 126889012
Change-Id: I83173c5eaae13ee11eb3f185e7204a2dd8855b4e
Capture from REMOTE_SUBMIX audio source should always be
allowed in concurrency situation.
Also include FM_TUNER as virtual source that should never be
silenced.
Also remove voice call capture sources from privacy senitive sources
as capturing a voice call does not constitute in itself a situation
that should prevent other apps from accessing the mic.
Bug: 121200677
Test: verify music playback in auto projected mode.
Change-Id: Idbd9e9f55f29fb8a8e2b76cea5b85f0d9a555788
When selecting device on a given output stream, check if
an enforced audible sound is active on any other output stream and
not just on this stream.
Bug: 124063442
Test: set property audio.camerasound.force=true and test music + shutter
sound concurrency.
Change-Id: Ic7f548df2b67041d532afc68685cdbeb3cb3f125
Change to new properties + swap audio XML files, and supports following
scenarios:
1) (default) audio_policy_configuration.xml
Using BluetoothAudio HAL (+ A2DP offload if supported)
2) audio_policy_configuration_a2dp_offload_disabled.xml
Using BluetoothAudio HAL only when A2DP offload is supported but
disabled.
3) audio_policy_configuration_bluetooth_legacy_hal.xml
No BluetoothAudio HAL nor A2DP offload
Bug: 126304229
Test: Switch BluetoothAudio HAL and A2DP offload manully
(cherry picked from commit 52982cb595)
Change-Id: I9699368914db37d2fd075cd30c49a5a7c57e8036
Merged-In: I3c17b304a12c1eccd9f97ee50a0b7cf6e4b9a1da
When playing audio-haptic channels, there could be request to mute
haptic channels according to settings. To support that, do not select
haptic output when forcing muting haptic channels.
Test: Play audio-haptic coupled data
Bug: 126401770
Change-Id: Ifb52385c56ec8d67fe031e1877ea35cbe2319600
This was not efficient and leaded to an assert in obtainBuffer.
I'm not sure which condition can lead to a getNextBuffer of size 0,
but it has been observed and is not forbidden by getNextBuffer
documentation.
Test: atest android.media.cts.AudioPlaybackCaptureTest#testCaptureMediaUsage
Bug: 111453086
Change-Id: I5accf7c1d488ff4686272588329bab71d64f67cd
Signed-off-by: Kevin Rocard <krocard@google.com>
Query the package manager to check if the app has not opt-out of its
playback being captured.
Test: adb shell audiorecorder --target /data/file1.raw &
adb shell am start -a android.intent.action.VIEW -d file:///system/media/audio/ringtones/Lollipop.ogg -t audio/ogg
adb dumpsys media.audio_policy # check playback is not recorded
# change media player manifest to allowPlaybackCapture=true
adb dumpsys media.audio_policy # check playback is recorded
kill %1
adb pull /data/file1.raw && sox -r 48000 -e signed -b 16 -c 2 file1.raw file.wav&& audacity file.wav
# check silence then sound
Bug: 111453086
Change-Id: Id6fb7d0e10c02b0473bcbc0786e8360536996f48
Signed-off-by: Kevin Rocard <krocard@google.com>
Change to new properties + swap audio XML files, and supports following
scenarios:
1) (default) audio_policy_configuration.xml
Using BluetoothAudio HAL (+ A2DP offload if supported)
2) audio_policy_configuration_a2dp_offload_disabled.xml
Using BluetoothAudio HAL only when A2DP offload is supported but
disabled.
3) audio_policy_configuration_bluetooth_legacy_hal.xml
No BluetoothAudio HAL nor A2DP offload
Bug: 126304229
Test: Switch BluetoothAudio HAL and A2DP offload manully
(cherry picked from commit baa9e4e167)
Change-Id: I3c17b304a12c1eccd9f97ee50a0b7cf6e4b9a1da
Set bufferSize in @3.4::Stream::bufferSize for JPEG_APP_SEGMENTS stream.
Bug: 124999074
Test: Build
Change-Id: I6f24f4273b0d3d18b1bdbf263fc12ed48e857004