| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
playing music, audio is not transfered to BT device.
Added a workarouond to request the A2DP output standby directly to audio hardware when the sink is suspended as it seems that the suspend request often fails.
Also take into account resume requests received while a suspend request is pending.
|
|\
| |
| |
| |
| | |
* changes:
fix [2164183] sometimes device just wants to stay asleep
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When switching rapidily orientation back and forth, surfaces end-up
acquiring the freeze-lock when the first orientation change happens,
but never release it because by the time the 2nd orientation change
comes in, the surface size is back to its original size and
doesn't appear to have resized.
we now always release the freeze-lock when we receive a buffer of the
expected size.
|
|/
|
|
|
|
| |
when running out of memory, a null handle is returned but the error code may not be set.
In that case we need to return NO_MEMORY instead of NO_ERROR, so that the calling code
won't try to dereference the null pointer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This also fixes [2152536] ANR in browser
When SF is enqueuing buffers faster than SF dequeues them.
The update flag in SF is not counted and under some situations SF will only
dequeue the first buffer. The state at this point is not technically
corrupted, it's valid, but just delayed by one buffer.
In the case of the Browser ANR, because the last enqueued buffer was delayed
the resizing of the current buffer couldn't happen.
The system would always fall back onto its feet if anything -else- in
tried to draw, because the "late" buffer would be picked up then.
|
|
|
|
|
|
| |
This reverts commit c131c5671965b69b0dee3e4afa3b3dd5e3c0c405.
Approved by Hiroshi
|
|\
| |
| |
| |
| | |
* changes:
fix [2152536] ANR in browser
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A window is created and the browser is about to render into it the
very first time, at that point it does an IPC to SF to request a new
buffer. Meanwhile, the window manager removes that window from the
list and the shared memory block it uses is marked as invalid.
However, at that point, another window is created and is given the
same index (that just go freed), but a different identity and resets
the "invalid" bit in the shared block. When we go back to the buffer
allocation code, we're stuck because the surface we're allocating for
is gone and we don't detect it's invalid because the invalid bit has
been reset.
It is not sufficient to check for the invalid bit, I should
also check that identities match.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
high).
This change is a complement to the main fix in kernel driver for the same issue (partner change #1250).
It removes clicks sometimes heard after the end of the tones while audio flinger is sending 0s to the audio output stream.
The problem was that the sleep time between two writes was more than the duration of one audio output stream buffer which could cause some underrun.
Also fixed a recent regression in ToneGenerator that made that the end of previous tone was repeated at the beginning of current one under certain timing circumstances when the maximum tone duration was specified.
|
|/
|
|
|
|
| |
we're going to first cut a build without this change.
Approved by Dr. Hiroshi.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When EGLImage extension is not available, SurfaceFlinger will fallback to using
glTexImage2D and glTexSubImage2D instead, which requires 50% more memory and an
extra copy. However this code path has never been exercised and had some bugs
which this patch fix.
Mainly the scale factor wasn't computed right when falling back on glDrawElements.
We also fallback to this mode of operation if a buffer doesn't have the adequate
usage bits for EGLImage usage.
This changes only code that is currently not executed. Some refactoring was needed to
keep the change clean. This doesn't change anything functionaly.
|
|
|
|
| |
b2060030
|
|
|
|
|
|
|
|
|
|
|
| |
The ANR is caused by SurfaceFlinger waiting for buffers of a removed surface to become availlable.
When it is removed from the current list, a Surface is marked as NO_INIT, which causes SF to return
immediately in the above case. For some reason, the surface here wasn't marked as NO_INIT.
This change makes the code more robust by always (irregadless or errors) setting the NO_INIT status
in all code paths where a surface is removed from the list.
Additionaly added more information in the logs, should this happen again.
|
|
|
|
|
|
|
| |
The core logging in BackupManagerService and in the Google backup transport are
still enabled at this point.
Change-Id: I10abfa565bbd1097dd3631051b6aca163e4af33a
|
|\
| |
| |
| |
| | |
* changes:
Fix issue 2153835: AudioFlinger: setParameters() can remain stuck if output thread is terminated.
|
| |
| |
| |
| |
| |
| |
| |
| | |
thread is terminated.
Wait for the parameter set completed condition with a time out in ThreadBase::setParameters().
Also lock AudioFlinger mutex before accessing thread list in AudioFlinger::setParameters() and keep a strong reference
on the thread being used in case it is exited while processing the request.
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* changes:
fix [2152247] Windows sometimes drawn scaled up.
invalidate the surface when the physical changes
introduce the notion of the requested size in the Layer state
remove unused code
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
| | /
| |/
|/| |
* changes:
remove dead code
|
| | |
|
|/
|
|
| |
meet latency timing. Bug 2142215.
|
| |
|
|
|
|
|
|
|
|
| |
We were emitting GL commands, calling composition complete and releasing clients
without ever calling eglSwapBuffers(), which is completely wrong on non-direct
renders. This could cause transient drawing artifacts when unfreezing the
screen (upon orientaion change for instance) and could also block the clients
for ever as they are waiting for their previous buffer to be rendered.
|
|\
| |
| |
| |
| | |
* changes:
Allways dump the list of allocated buffers when an allocation fails.
|
| |
| |
| |
| | |
Hopefully this will help us understand cases of failures such as [2148405]
|
|/ |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Turning off backup in the Settings UI constitutes an opt-out of the whole
mechanism. For privacy reasons we instruct the backend to wipe all of the data
belonging to this device when the user does this. If the attempt fails it is
rescheduled in the future based on the transport's requestBackupTime()
suggestion. If network connectivity changes prompt the transport to indicate a
backup pass is appropriate "now," any pending init operation is processed before
the backup schedule is resumed.
The broadcasts used internally to the backup manager are now fully protected;
third party apps can neither send nor receive them.
(Also a minor logging change; don't log 'appropriate' EOF encountered during
parsing of a backup data stream.)
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
frozen then runtime restart going to list view
Revert "workaround for [2113743] Sholes: frozen then runtime restart going to list view"
This reverts commit 4a06bb4f3355b0ef2b76aa883704da9d154c44ae.
|
|
|
|
| |
create flip chain)
|
|\
| |
| |
| |
| | |
* changes:
fbDev wasn't initialized of hw_get_module failed, but was then used anyway.
|
| | |
|
|/
|
|
|
|
| |
There was a regression introduced in AudioFlinger by change 24114 for suspended output:
The suspended output was not reading and mixing audio tracks.
When the phone is ringing, the A2DP output is suspended if the SCO headset and A2DP headset are the same. As the ringtone is played over the duplicated output, the fact that the A2DP output was not reading data was causing the hardware output to be stalled from time to time.
|
|
|
|
|
|
|
|
|
|
| |
This appears to fix the sim-eng build on the gDapper build machines.
Basic problem is that LayerBuffer::OverlaySource has a constructor that
calls SurfaceFlinger.signalEvent(). SurfaceFlinger lists LayerBuffer
as a friend, but that's not enough to convince gcc that the embedded
OverlaySource class is also a friend. I don't see a way to make them
friendly, so I marked signalEvent() as public.
|
|\
| |
| |
| |
| | |
* changes:
workaround for [2113743] Sholes: frozen then runtime restart going to list view
|
| | |
|
|/
|
|
|
|
| |
Also a little improved debugging output of bad resource identifiers.
Change-Id: I054064ef22855608ffd722e4ccf12ce57d1992b2
|
|\
| |
| |
| |
| | |
* changes:
Fix issue 2127371: Possible race condition in AudioFlinger::openRecord() when a Track is being destroyed.
|
| |
| |
| |
| |
| |
| | |
when a Track is being destroyed.
The fix consists in locking AudioFlinger::mLock mutex in the TrackBase destructor before clearing the strong pointer to the shared memory client. The mutex is not locked in removeclient() any more which implies that we must make sure that the Client destructor is always called from the TrackBase destructor or that we hold the mLock mutex before calling deleting the Client.
|
| | |
|