| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
is required"
* commit '4361749d74113069aafb0620a1189404205c58d0':
AudioTrack: Never try to use the fast path if resampling is required
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* commit '281dd4e13309973dbb85bce531f884237e0d8fb0':
audioflinger: fix static track end detection
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
If a static track is not a fast track,
prepareTracks_l() must rely on framesReady() to
detect end of buffer and remove the track from the active
track list.
Failing to do so results in the track staying active but
not processed by the mixer because in underrun. This leaves the
mix buffer content uninitialized and causes the effect process
function to accumulate its output onto undefined data.
Bug: 12013676.
Change-Id: I4b0819a9d93141ac3307b8786fc6a451dd585220
|
| |\ \ \ \ \
| | |/ / / /
| | | | | |
| | | | | |
| | | | | | |
* commit '7e92abeafb184e8a34213d7149592e95a72601b0':
audioflinger: fix offload write buffer offset
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Fix current audio HAL write buffer offset calculation
which assumes that the frame size is a multiple of 2.
'
Bug: 12823725.
Change-Id: I0195ed5cfef225a6f114e7dd405a02680bb7254e
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
AsyncCallbackThread must check for any condition that
was already been satisfied before waiting.
Bug: 11824817
Change-Id: I04683a1f355de4f440106cab47fd916aa39d5e35
|
| |\ \ \ \ \
| | |/ / / /
| | | | | |
| | | | | |
| | | | | | |
* commit 'e010f65e6337267cb15f8894c950a3f64370dd36':
audioflinger: Fix for a deadlock in track creation
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
AudioFlinger enters a deadlock (with itself) on trying to free a
RecordTrack or Track object that failed initialization. Clear this
bad object from the caller instead.
Bug: 12423233
Change-Id: I926f2beb922a70f6924e593e2bbf1a5b5df85b16
|
|\ \ \ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Change-Id: I6bd48292310be4e05758a11f617f50585904422d
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Add a specific mutex to protect access to mClients and
mNotificationClients lists. This avoids locking the main AudioFlinger
mutex from inside thread loops and allows not to worry about
cross deadlocks when sending a config event with status reply while
keeping the ThreadBase or AudioFlinger mutex locked.
As a way of consequence, remove notification client list passed to
processConfigEvents_l() and audioConfigChanged() as the list
can now be accessed by locking client mutex only.
Change-Id: I228022204b6709a8bb60cc96d9514a6ffe59b62e
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: Ic65f257bfc4a0eff7bdd3c44fab68a3f17e2bd08
|
|\ \ \ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Merge config events and set parameters messaging mechanism.
- setting parameters now uses the config event mechanism
- config event now allow to wait for a condition and synchronize caller
binder thread with execution thread and return an execution status.
- simplify locking mechanism to avoid unlocking the thread
mutex while processing events.
Change-Id: Ia49cb3e617abec4bacb6c1f9a8cb304c4ed3902e
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
openRecord() now explicitly returns the control block and data buffer
as separate IMemory references. If the IMemory for data buffer
is 0, this means it immediately follows the control block.
Change-Id: Ic098f88f0e037f8fbe30006689e18cacacf09d06
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I401263566ca20fbfb565689c8fa99458d3b283b2
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
AudioRecord constructor was not passing flags through to set().
Server-side check was using wrong kind of channel mask.
Change-Id: Ifaa880ec323771e9fd168262be05f3e539f53390
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I17b30fdb6dbb6454ad0a20dd703fd603a37a8397
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Device change during offload playback is not informed to effect chain
which causes effects still work on unexpected output devices. Add device
change notification in direct output thread.
Original author wjiang <wjiang@codeaurora.org>
CRs-Fixed: 630408
Bug: 14053172
Signed-off-by: Glenn Kasten <gkasten@google.com>
Change-Id: I094a99bdf540479cee2fca6614ec35c2fa7d6046
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I5beb7daf6ff9bc123ff3582f7c294edcaf8652f6
Signed-off-by: Andy Hung <hunga@google.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I759be200fae32969212c52a409f46f2e704081e3
|
|\ \ \ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
LOG_FATAL is compiled out in most builds, so the
assertion checks were not being performed.
Change-Id: I774f0985ab9c5ccecd8989a0f1c940386b73fc35
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
AUDIO_INTERLEAVE_*
AUDIO_STREAM_MIN
AUDIO_SESSION_ALLOCATE
Change-Id: I31dd6f327204685e50716079ce21c4ba206dff11
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
AudioFlinger can miss resuming h/w on a pause->resume transition
if sufficient data isn't available
Bug: 11358524.
Change-Id: Ic3c75256290d3515fd4a96dfcc900909fbe5bc15
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
-Pre-requisite:
Perform seek on the clip. After seek the data remaining till EOS
is little more than the driver and common block buffering.
-Framework state:
Offload thread is waiting for signal from the HAL for a free
buffer. Audio Player calls sink stop on reaching EOS. Audio
track is waiting on obtain buffer for a free space in common
block to send the last buffer. The track is moved to stopping
state as input EOS is reached.
-Issue:
Perform pause/ resume in this state(STOPPING), Audio playback
does not resume.
-Fix
Ensure resume is called in stopping state if frames ready is
greater than zero.
Bug: 12870871
Change-Id: Ib1378c4ee5ce4bea655691e93de0775f7b1d2804
Signed-off-by: Glenn Kasten <gkasten@google.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I8222f00f7ac89d52235af0f64f3fee7a8c471e1e
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: Ibe96c8fb1f0ba7f850c0561f60769ce63aceba5d
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I99752cca74a459c4746ea4718acb0115439e50bd
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This fixes Offload playback regression introduced by adding
flexible format to mSinkBuffer. Test case is AAC file playback.
Bug: 13450717
Change-Id: I0fa11978295ed4793be90c565e5b8abedf156914
Signed-off-by: Andy Hung <hunga@google.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This reverts commit e2a9c29f35e0c09782558542fc4cf9823779590e.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This reverts commit e7e676fd2866fa4898712c4effa9e624e969c182.
Bug: 13450717.
Change-Id: Ib80b0d14428fecce33c62003a1fcf83f71cee03b
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I618d9c99a5f6f8c8d6a9f4b2d19e82c9ddc3b06e
Signed-off-by: Andy Hung <hunga@google.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: Icf97c50040bc127723d56eb4d2fb6e790a7253d9
Signed-off-by: Andy Hung <hunga@google.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I4b65f6ed2f6ca3608b3a5f88f52a93af0b9b1f4a
|
|\ \ \ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This avoids overruns on the client AudioRecord side,
without requiring client to use a large buffer.
It should not increase input latency, since a newly started AudioRecord
always joins the stream starting at the latest data.
Change-Id: Ib2b8de75cc40a6a3d493a1f8b46b41220f69264f
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
AudioMixer::SINK_FORMAT also changes to AudioMixer::MIXER_FORMAT
Change-Id: Ic3f8be77d2c75c082c4fd140bc907e30c304d285
Signed-off-by: Andy Hung <hunga@google.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Path into and out of MixerBuffer is set up, but not
currently enabled.
Change-Id: I9d50752607d22dd2a3d9cc7e053babf8dfb22958
Signed-off-by: Andy Hung <hunga@google.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I4d1d18d716fa3ad8c0e7cc87f5a2823422f504eb
Signed-off-by: Andy Hung <hunga@google.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Updated variable names are
kMinNormalSinkBufferSizeMs
kMaxNormalSinkBufferSizeMs
Change-Id: I91969eae3f8c10275db8778634cbf05fdec0712b
Signed-off-by: Andy Hung <hunga@google.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I1f55630425b8ce36e9df2aaf64e06a8960b69a47
Signed-off-by: Andy Hung <hunga@google.com>
|
|\ \ \ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Other changes related to resampling:
- improve logs
- use correct form of assert
- don't round up max usable circular buffer sizes to power of 2;
this gives more predictable results
- add some FIXMEs
Bug: 13133176
Change-Id: I8d3c90eed4eb0c0c1fbac3c864e179a2806c2301
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Now that the SyncEvent callback is implemented by the
RecordTrack instead of the RecordThread, there is a possibility
that the callback is called after the track deletion.
SyncEvent callback now uses a weak pointer instead of
a raw pointer as cookie. This allows the callback implementer to
acquire a strong reference on the object pointed to by the cookie.
Bug: 13114128.
Change-Id: Id61b8f06044ed1e52c6f7e7c666cdede68340de2
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Remove mReqChannelCount and mReqSampleRate.
Increase number of input frames needed for sample rate converter.
Add TODO comments to investigate later.
Fix bugs in sample rate conversion.
Change-Id: I3aa54b862843d518b6e4ece9a7f52fd27d741629
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I611a63e63acf3eb17e2072c1a77b91fe9e62e36a
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
They are always called while thread mutex is locked,
or in the thread constructor.
Change-Id: I56df71563a52a5cd6cea6fc0914df993519e1b74
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Supports multiple clients both at native sample rate and with resampling.
Change-Id: Icea55b4fd30751761b7debaa3ce016c79e712d8d
|
|\ \ \ \ \ \
| | |_|_|_|/
| |/| | | |
| | | | | | |
Change-Id: I7b1cc71057b2bd4f771e7bcf508a8c3abd6017ce
|