| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| | |
Patch by: csheng@marvell.com
Change-Id: I4e3032fb34643902f98e8fd7c8e894b6452324c9
Signed-off-by: Yu Yezhong <yuyezhong@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
AsyncCallbackThread must check for any condition that
has already been satisfied before waiting.
Bug: 11824817
Change-Id: Ic8c2090d521ecd6a30b76ee75635258d35eb1eff
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Change-Id: I158f147295eebcea96e4047d7618069bc48bdd7d
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Commit 9da3d95 surfaced a problem caused by the use of a raw
pointer to a track in offload thread implementation.
Pointers to tracks should always be weak or strong pointers.
Bug: 11708529.
Change-Id: Ic48632532d186c9be8261f73cefdf824b9fbbd2b
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Make sure that when transitioning from one active
offloaded track to the next we flush DSP content
if both tracks are not on the same audio session.
This happens when switching between two applications
playing the same type of content (e.g MP3, stereo, 44.1).
In this case, we reuse the same output thread because the track
formats are compatible.
Bug: 11247103.
Change-Id: I2b9031591149adeb70766da5e0d21ff2933a37e8
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When pausing and resuming during the drain,
the drain sequence number shuold not be modified
otherwise the drain callback will be ignored.
This causes failure to notify end of stream to audio
player and transition to next song.
Bug: 11247103.
Change-Id: I2a35c5cc3fd6aa667cdd257f9e9cc8715cef5159
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Underruns on tracks handled by a direct or offloaded
threads were not properly reported to the applications
causing a failure to automatically recover.
Bug: 11535001.
Change-Id: I7a8696b4d646f78b16710addfe7c108d0dd0038d
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Commit fd47797 fixing issue 11247103 introduced a regression
where the duplicating thread does not exit standby state as
expected. This in turn prevents the tracks sending audio to
other threads to complete their activity cycle normally.
The fix conists in clearing mStandby state also in the specialized
threadLoop_write() method of DuplicatingThread subclass.
Bug: 11451415.
Change-Id: Ie8a92c819a56a2834ea25fa70a8b7b2125721775
|
|\ \ \ \
| |/ / /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This fixes a bug where effects were not properly reenabled after
being moved from one playback thread to another. The effect
is enabled but the audio policy manager sees it as disabled.
Bug: 11181933.
Change-Id: I19cac7acbaf61c546e667fd85ed7d4eda1c716d8
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
mStandby being false was not a reliable indication that
something had been written to audio HAL.
Considering the last track in mActiveTracks vector as the
latest activated track was wrong as this is a SortedVector.
Bug: 11247103.
Change-Id: I397d011c5afcdd779def3fe25aaae7669a472cfc
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Set a work source for the playback wakelock, so that playback is
counted against the requesting app instead of the media server.
Cherrypicked from master.
b/9464621
Change-Id: I7329f88a288a95a582a78005a1c3d16a5a611e31
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
After AudioTrack start checks for pending flush,
allow releaseBuffer on any previously obtained buffer.
For example, this can happen if the resampler has obtained
a buffer but not released the whole buffer yet.
Note that the resampler will be reading obsolete data.
Bug: 11285590
Change-Id: I0614fbb62e43604aac3089cce4b7797c87a306b5
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When a track is terminated before any audio was written,
we should not send a drain request to the HAL. The drain
will be ignored and we will wait the async callback for ever.
Also fix a potential deadlock by not deleting a track with the
thread mutex held: mPreviousTrack changed from a sp to a raw pointer.
Bug: 11247103.
Change-Id: I0a4b47b099204c7c326d45d700234ab8f72d8eae
|
| |/ /
|/| |
| | |
| | |
| | | |
Bug: 11259166
Change-Id: I72526cdfd4e3ff4b06e6a317e577f57cc285205d
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These wakelocks now show up in the client process, where they
might cause wakelock overflows if AudioFlinger threads die often.
The client process should be agnostic of audio flinger threading,
so don't make the wakelock names rely on audioflinger thread names.
Wakelock names now depend only on the audio flinger thread type, and
not the ID itself.
bug: 11200551
Change-Id: Ia1f71b569cb7502d617b77596abc245f461a6ec0
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | | |
Bug: 10888816
Change-Id: I84897dd7d30b370640b54e928f230604b873cb68
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If a pause/flush/resume sequence is fast enough, resume is received while
we are still in PAUSING state in which case it is a NOP. If this happens,
flush is still forwarded to the audio HAL but is not preceeded by a pause
which can cause problems to the audio DSP.
It is necessary to preserve the flush as this sequence is typical to a seek.
The fix consists in forcing a pause/resume when a flush request must be
executed and the audio HAL has not been paused previously.
Bug: 11081559.
Change-Id: Ib84ed26d503a61c05933b923ec556b10cedfe140
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Commit e14a5d6 introduced a bug in ThreadBase::acquireWakeLock() where
the wake lock acquisition return code is not initialized before
being checked causing the wake lock token to be sometines not set
and potential failure to release the wake lock later.
Bug: 10985160.
Change-Id: Iffd40e773ae3bcfec3c148a844d5dbebbf474eaf
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Count wake lock use against the app that initiated the recording,
not against the media server.
b/10985160
Change-Id: Iae6e6c030b7f1c6081d9c79725d6990f60dadaaa
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Volume: add a method to wake up the mediaserver playback
thread when a volume command is received on an offloaded track.
Effects: call effect chain process on offloaded playback threads
asynchronously from writes to allow effect state updates while
waiting for async write callback.
Bug: 10796540.
Change-Id: Id2747ae88783575d1d7ffd6fc86fbd054ab2c739
|
|\ \ \
| | | |
| | | |
| | | | |
klp-dev
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
An audio effect process command is not meant to be called for
playback threads belonging to offloaded playback.
Bug 10933817
Change-Id: Idc7b6a0224791bbf8d61648474d3c288617c498f
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Passing a sp to parent thread to AsyncCallbackThread() constructor
causes a strong reference to be acquired on the OffloadThread inside
its constructor which causes an early launch of the thread loop
with unpredictable consequences.
Pass a wp to parent thread instead.
Also move the creation of the AsyncCallbackThread to
readOutputParameters() where mUseAsyncWrite is initialized which
makes more sense.
Also change the type of AsyncCallbackThread parent thread to PlaybackThread
instead of OffloadThread to allow a broder use of non blocking write which
in theory is not limited to audio offload use case.
Bug: 8174034.
Change-Id: I4b093b022030cd4f5eb8b8e477333e91098a6549
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
commit 5baf2af5 introduced a regression by calling
getOutputForEffect() with AudioFLinger main mutex locked.
The locking order must always be AudioPolicyService mutex then
AudioFlinger then ThreadBase mutex.
Bug: 10916796.
Change-Id: Ide34a2d84dbb06dbb35abd0640d91b01b0ac4d40
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commit 1abbdb4 was not working 100% of the times because
it is possible that the offload thread loop never sleeps
after being created in which case the property is never read.
The loop now reads the property once when starting.
Bug: 10899309.
Change-Id: I2e2ca332f2d7086e59d65f6010378c4d9618ba9e
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
commit cec4abb fixing issue 6720482 had a flaw that
would insert commmands at the wrong position in the
audio policy service command thread queue causing other
commands to be delayed more than expected.
A change in track stop timing introduced by commit bfb1b83
made this issue visible when answering a call.
Bug: 10860012.
Change-Id: Iec769112f14e13d13b64628b808e43663e33771c
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | | |
Bug: 9587132.
Change-Id: Ie9d5f4cca96306d08bc9a2dbd6edd8953096702d
|
|\ \ \ |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It was possible that a resume request signaled by addTrack_l()
while waiting for an async write callback is lost. This is because
mSignalPending was not set and waitingAsyncCallback_l() would pause the
thread loop before executing prepareTracks_l().
The fix consists in using signal_l() method to wake the thread
loop o that mSignalPending is set.
Also make sure that sleepTime is reset to 0 when resuming to make sure
that we write any remaining bytes to the HAL.
Bug: 10810347.
Change-Id: If9a3b22cc3b9e6eb384a56c48c40e6258d0896ad
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
acquireAudioSessionId() should not create session references
if the caller is not listed in the known notification clients.
It happens when the MediaPlayer or AudioTrack is created by the
mediaserver on behalf of a client (e.g CameraService). In this case
releaseAudioSessionId() can be called from a different pid and
the session reference will not be removed.
Also we will not be able to remove the reference if the client
process dies.
Bug: 10606426.
Change-Id: Ibb5e27518daeb484a2e66302e4c6221cbaca5b70
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Offloading of audio effects is now enabled for offloaded
output threads. If an effect not supporting offload is enabled,
the AudioTrack is invalidated so that it can be recreated in PCM
mode.
Fix some issues in effect proxy related to handling of effect
commands to offloaded and non offloaded effects.
Also fixed a bug on capture index in software Visualizer effect.
Bug: 8174034.
Change-Id: Ib23d3c2d5a652361b0aaec7faee09102f2b18fce
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Change-Id: I5a1a79000d53146689b0a198cc5419c36509703f
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Increase offloaded output thread standby delay to 1 second
to allow transition between tracks with going to stanby
if reusing the same audio track (gapless)
- Make sure pause/flush/resume sequence is sent to the HAL
in the right order
- Fix format display in track dump
Bug: 8174034.
Change-Id: I43ef6f8fdbf7427e4eff6cc2d0665d7d1463ea8a
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | | |
Bug: 2801375
Change-Id: I50e15164fe310f69ea019dca5b49171a02bc6992
|
|\ \ \
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
HOTWORD is a special capture audio source that uses
the same audio tuning as VOICE_RECOGNITION but allows an
active capture to be preempted.
Bug: 10640877.
Change-Id: Iea09a11cbcdbacc8d434e5230e7559dcd1b44ac0
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Invalidate offloaded tracks when an effect is enabled
so that the track is recreated in PCM mode and the effect
can be applied.
This is temporary until effect offloading is implemented.
Bug: 8174034.
Change-Id: I77b8b54a10db6cb8334be76d863ea7e720eaad09
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Remove possible race conditions between async callback
thread and offload thread when clearing and setting the
draining and write blocked flags.
Bug: 8174034.
Change-Id: I7af10491f39dc0e7d7414862a9d8e763daa2e2b7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Check that get_presentation_position is non-NULL before calling.
AudioTrack::getTimestamp not implemented for fast tracks.
Fix typo in Track::getTimestamp().
Fix bugs in AudioTrack::getTimestamp after stop:
- getTimestamp while stopped is not allowed.
- stop, start, getTimestamp now returns the correct value.
Change-Id: Ie8d9dc1f28d8927634e04175a68b147ffc2ea8eb
|
| |
| |
| |
| |
| |
| | |
and forwards them to each track's ExtendedAudioBufferProvider::onTimestamp().
Change-Id: I06fb9586bb7e20d5c0289abdc8cac6cd3fd2f6e8
|