Ignore subsequent headers after decoding the headers once
Bug: 130569201
Test: atest android.media.cts.DecoderTest#testDecodeOgg
Change-Id: Ifa8b67f00d16bfaa5e11097ef3b61ea3f183ced0
Add pre processing effect management for concurrent capture scenarii.
When several clients on the same input stream have enabled audio effects,
only the effects attached to the top priotity client are active.
Other effects are suspended.
Add AudioFlinger API to suspend/restore audio effects build on top
of exisiting internal effect suspend mechanism.
RecordThread now supports more than one effect chain.
AOSP pre processing implementation supports more than one effect session
per input.
Refactor AudioPolicyManager::closeAllInputs() to call closeInput() on
all inputs instead of partially duplicated code.
Bug: 128419018
Test: make
Change-Id: I685286da4c2905a8894a4354679f9787b1400621
For a2dp hybrid mode, device retrieval is done through type / code pair.
When the device is connected, getDeviceDescriptor is called with allowToCreate
boolean. As a result, HwModuleCollection::createDevice will be called, invoking
getModuleForDeviceTypes as done laterly in setDeviceConnectionState.
This CL removes double call to these function.
Bug: 130284799
Test: make
Change-Id: I188f11e9325cfc6af2ae872e00485e00ccd9096b
Signed-off-by: Francois Gaffie <francois.gaffie@renault.com>
AudioPolicy used to hide activity of stream patch to prevent changing
the volume.
This CL replaces the filtering of the stream patch activity on the policy
by a full volume range within audio flinger.
It updates also product strategies example for automotive to add associated
strategy and full range volume.
Bug: 130284799
Test: make
Signed-off-by: François Gaffie <francois.gaffie@renault.com>
Change-Id: I6e77dc2cbed0289f0a1341f7597b1c25abee5f7d
No need to filter anymore the remote submix to engine as
both configurable and default engine take care of legacy remote
submix address (aka "0") and wont only care about type.
Bug: 130284799
Test: AudioPolicyEmulatorTests --gtest_filter=*.DynamicPolicyMixRecordInjectionTest.*
AudioPolicyEmulatorTests --gtest_filter=*.DynamicPolicyMixPlaybackReRoutingTest.*
Change-Id: Ia90c65ccfc51220a2344cecec2fbba7f2bad776a
Signed-off-by: François Gaffie <francois.gaffie@renault.com>
Reduce log spam and error logging as part of the Green Log effort.
Replace logging of addresses with integer IDs.
Bug: 36785118
Bug: 122073229
Bug: 130569151
Test: Open an AAudio stream at 44100 and look at logcat.
Test: adb shell write_sine_callback -pl -r44100
Test: adb logcat | grep -i aaudio | grep " E "
Test: Should see no "E" logs from AAudio.
Test: Should see no addresses from AAudio.
Change-Id: I1d4e0bc349095f818fad52603d2bb8e7317d3681
Merged-In: I1d4e0bc349095f818fad52603d2bb8e7317d3681
(cherry picked from commit 7ba46558fb)
Remove effect specific mutex (mEffectLock) in AudioPolicyService: Due to
concurrent capture (among other reasons), it is necessary that the audio
policy manager state preserved by mLock includes audio effects
registration and enabling.
Moved all audio policy API calls from audio flinger out of locked regions
for audio flinger, thread and effects mutexes to avoid cross deadlocks
between audioflinger and audio policy manager:
- centralized audio policy API calls in EffectModule::updatePolicyState()
- the enabled state now reflects the state requested by the controlling
handle, not the actual effect processing state: a suspended effect is
now considered enabled.
A new audio policy manager API moveEffectsToIo() is added to atomically
handle moving effects to a new input or output without having to call
unregister > register > enable sequence.
Also fix assert in setStreamVolume to match volume group refactoring
in audio policy manager.
Bug: 128419018
Test: CTS tests for audio effects.
Test: manual tests with Duo calls, Play Music, Youtube, notifications
with and without Bluetooth and wired headset.
Change-Id: I8bd3af81026c55b6be283b3a9b41fe4998e060fd
Add cpu hint for c2 sw codecs as well as omx.
bug: 130669553
test: manually test that when playing YouTube 1080pHDR
content, adb logcat shows traces from SchedulingPolicyService:
SchedulingPolicyService: Moving xxxx to group 5
Change-Id: Ie7afeb207fc0a898669bc7b98b270982471e6b65
- RAW capability can exist for multi-camera even if physical cameras are
of different sizes/capabilities.
- FOV for all processes streams must be the same regardless of logical
or physical streams.
- All metadata tags related to pixelArray/preCorrectionActiveArray/activeArray
needs to be mapped properly by the camera HAL.
- Do distortion correction mapping for physical subcamera as well.
Test: Build and read docs, camera CTS, ITS.
Bug: 118906351
Bug: 126220135
Change-Id: I29a61fc3a603561c1d74dc2261600ce4cd3d34cd
mkv support audio codec as bellow:
codecID: A_MPEG/L2 (mp2 audio)
codecID: A_PCM/INT/LIT and A_PCM/INT/BIG (pcm audio)
codecID: A_MS/ACM
We can check the supported type in MKVWave2MIME function,
including mp2, mp3, pcm, adpcm.wma
Bug: 128470241
Test: play the files with new supported codecs and check
if they can be played normally.
Change-Id: Id92303b42ef763d1ce08a3c96265eda69622c79d
(cherry picked from commit 7f20f58a4b)
These things are ceaseless: /
code reviews, design docs - /
off-by-one errors making a mess
Test: atest CtsCameraTestCases
Bug: 129561652
Change-Id: I807d7ad4740ffe267053fe5da2080f9ecb45aa72
The default namespace need access to libdl_android.so from platform
namespace for libgraphicsenv.so
Bug: http://b/130373059
Test: boot a sailfish with the change wait until it gets to setup wizard
Change-Id: I55faa4b42f863dfbcc3b959d113cf481c7e2e337
Seperate Buffers out before we add complex logic to them. Also add
missing documentation.
Bug: 130223947
Test: builds
Change-Id: I8f992cb36499401ee2c6d729aa52f3888a7bcea5
Crash was because of uninitialized (invalid) number of channels.
Initialized channels to default value and ensured
that during set config channel and channel mask value
are updated per the input config.
Test: BT playback with Spotify, GPM (Sailfish)
Bug: 129804987
Bug: 130013184
Change-Id: I71069b13a90e02bfc3b5cb9bf69c4c65c10ae36f
NuMediaExtractor does limited read-ahead, then fails the current
read immediately if an error was encountered during the read-ahead.
This prevents reading the first buffer when there's an error reading
the second buffer, making it impossible to reproduce some behaviors
that *can* be reproduced with stagefright or by talking to the
service directly.
This change make it behave more like the underlying mediaextractor.
In addition, this fixes the behavior of advance(), which is supposed
to return false if no more samples are left. Prior to this change,
advance would return true, but then the next read would fail.
Bug: 121204004
Test: manual, CTS
Change-Id: I8f906945713717ee6be9dff30165635e03389153
(cherry picked from commit 70ad09df0f)
am: fd93c075bd -s ours
am skip reason: change_id Ide46cd23b0a9f4295f0dca2fea23379a76b836ee with SHA1 1631f06feb is in history
Change-Id: I088f4a488e05b2b4630ad12b9c6dbf12a0f956d2
am: ceb63ffd42 -s ours
am skip reason: change_id I690ea3cb942d1fdc96b46048e271557d48000f43 with SHA1 9aeb1770d4 is in history
Change-Id: I0c45a6d053855ba84910f5b75870fdb4593def07