| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: I1c46c07aa1483aee4d4ebd8745638a2c462cc1b3
|
|
|
|
| |
Change-Id: I32683bfe0916918757280db89113595867acd5a7
|
|
|
|
| |
Change-Id: I12bf13a62018ce1349bab7be0b0cad7fad13fee8
|
|
|
|
|
|
| |
added buffers should now be labeled properly.
Change-Id: I28aa753fbe89ab89134e7753575319478934c7fa
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The problem is due to a too big difference between the buffer size used at the hardware interface and at the A2DP interface.
When no resampling occurs we don't notice problems but the timing is very tight. As soon as resampling is activated, the AudioTrack underruns.
This is because the AudioTrack buffers are not resized when moving the AudioTrack from hardware to A2DP output.
The AudioTrack buffers are calculated based on a hardware output buffer size of 3072 bytes. Which is much less than the A2DP output buffer size (10240).
The solution consists in creating new tracks with new buffers in AudioFlinger when the A2DP output is opened
instead of just transfering active tracks from hardware output mixer thread to the new A2DP output mixer thread.
To avoid synchronization issues between mixer threads and client processes, this is done by invalidating tracks
by setting a flag in their control block and having AudioTrack release the handle on this track (IAudioTrack)
and create a new IAudioTrack when this flag is detected next time obtainBuffer() or start() is executed.
AudioFlinger modifications:
- invalidate the tracks when setStreamOutput() is called
- make sure that notifications of output opening/closing and change of stream type to output mapping are sent synchronously to client process.
This is necessary so that AudioSystem has the new stream to output mapping when the AudioTrack detects the invalidate flag in the client process.
Previously their were sent when the corresponding thread loop was executed.
AudioTrack modifications:
- move frame count calculation and verification from set() to createTrack() so that is is updated every time a new IAudioTrack is created.
- detect track invalidate flag in obtainBuffer() and start() and create a new IAudioTrack.
AudioTrackShared modifications
- group all flags (out, flowControlFlag, forceReady...) into a single bit filed to save space.
Change-Id: I9ac26b6192230627d35084e1449640caaf7d56ee
|
|
|
|
|
|
| |
Original name INFINITY conflicts with the macro in math.h.
Change-Id: I9845ed84fca17813dd971239a902cc1e0bad1e3e
|
|
|
|
|
|
|
|
| |
Applications can use this API to estimate the distance
between the subject and the camera.
bug:1955650
Change-Id: Ie6c8ea4971759cab6c9bcdda2c5ceb5925791c27
|
|\ |
|
| |
| |
| |
| |
| |
| | |
this fixes the issue where the display is all messed-up sometimes.
Change-Id: I20be91b5166bfff0c6d353a777351842c9df8e95
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Change-Id: I63c3bf786bbe7a0276624e71a4ba80c4a9aaa4bb
|
|\ \ \
| |_|/
|/| |
| | |
| | |
| | |
| | | |
Merge commit '900b6157f5dee2ed7b2c73cf320b2baf293230ff' into kraken
* commit '900b6157f5dee2ed7b2c73cf320b2baf293230ff':
Only hold a weak pointer on SurfaceComposerClients
|
| |\ \
| | | |
| | | |
| | | | |
Change-Id: I0249c6d796b35af9ba08cbccd463a1f5cf779ecd
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Each process maintains an array of active SurfaceComposerClient
objects, so that they can be reused as new surfaces are parceled
across. When a SurfaceComposerClient is disposed, it will remove
itself from this list. However, because the list maintains a strong
reference on the object, a reference cycle is created, and the
client is never deleted.
This patch changes the list to maintain weak pointers on the clients
instead.
Change-Id: I93dc8155fe28b4e350366a3400cdf22a8c77cdd3
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
on droid. This gives the necessary CPU reduction to allow the wallpapers to work on the slower CPU.
Committer: Jason Sams <rjsams@android.com>
On branch droid
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: libs/rs/rsAllocation.cpp
modified: libs/rs/rsAllocation.h
modified: libs/rs/rsContext.cpp
modified: libs/rs/rsContext.h
modified: libs/rs/rsProgram.cpp
modified: libs/rs/rsProgram.h
Delete the old rollo sample which is obsolete.
Fix film init
Begin gl2 support. Renderscript still uses GL1.1 by default. However, 2.0 can be enabled and will render most tests correctly.
Fix film
Beging GL2 user shaders. Switch master to using GL2 by default.
Implement RS tracked defered texture and buffer object uploads.
Committer: Jason Sams <rjsams@android.com>
On branch droid
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: libs/rs/rsAllocation.cpp
modified: libs/rs/rsAllocation.h
modified: libs/rs/rsContext.h
modified: libs/rs/rsProgramFragment.cpp
modified: libs/rs/rsSimpleMesh.cpp
Remove check for surface valid that is no longer valid.
Continue development of es2.0 user shader support for renderscript. This change cleans up ProgramVertex creation and adds support for passing input, output, and constant type info.
Continue es2 shader dev
Conflicts:
graphics/java/android/renderscript/Program.java
graphics/java/android/renderscript/ProgramVertex.java
Place shader logging behind prop to declutter logs.
Fix emulated glColor in es2 mode.
Fix live wallpaper many. Z coordinate was being ignored for draw quad call.
Add argument checking to sampler builder to disallow illegal modes.
Move texture bindings to base program object. Change ProgramFragment creation to require a texture format in 1.0 mode.
Element restructuring. Add support for new basic Element types including the RS objects and vectors(2-4). In theory this paves the way for maintaining type info for RS objects, passing elements for GLSL uiforms/attribs/varyings, and supporting nested structures.
This will break some apps, checkings for other projects will follow to unbreak them.
Disable excessive RS logging.
Add RS support for generic attribs as input to vertex programs.
More complete support for named attribs. Adds user typed attribs as available to programVertex. Non user attribs are not treated like user for GL2 for simplicity.
Support npot on es 2.0 HW.
Change user attribs to look for empty slot rather than using them in order. Prevents conflict with numbered legacy slots.
Fix npot but where mipmap level sizes were rounding in the wrong direction. Should always be floor.
Implement type generation for user uniforms in vertex shader.
Remove excessive logging, fix error in GLSL uniform generation.
Fix RS mipmap generation for 8 bit alpha textures.
Cleanup seperation of Legacy and user attribs. All user programs now use the new names. Legacy vertex attribs are given default names.
Fix some minor bugs with GL state setup that were exposed by Droids driver.
Implement drawSpriteCropped on es2.0
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
ICamera::connect()" into kraken
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
ICamera::connect()
Change-Id: I34ab3e4f07435c62168175e9bb159022c8fb99f4
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
or channel mask
Some variables and structure members should be renamed to reflect the fact that they contain the
number of channels in a track (channel count) or the actual channels used by a track (channel mask).
Especially member "channels" of track control block (struct audio_track_cblk_t) is actually the
number of channels (channels count).
Change-Id: I220c8dede9fc00c8a5693389e790073b6ed307b8
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
into kraken
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
There is a bug in the way notification client list is managed when the client binder
interface dies that makes that the dead client is not removed from the list: the week
reference passed by binderDied() cannot be promoted and compared to the strong
references in the list.
The fix consists in creating a new NotificationClient class that implements the
binder DeathRecipient and holds a strong reference to the IAudioFlingerClient interface.
A new instance of this class is created for each cient and a strong reference to this
object is added to the notification client list maintained by AudioFlinger.
When binderDied() is called on this object, it is removed from the list preventing
AudioFlinger to notify this client for further io changes.
Also added code to disable LifeVibes effects when the client that has enabled the
enhancements dies.
Change-Id: Icedc4af171759e9ae9a575d82d44784b4e8267e8
|
|\ \ \ \ \ |
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- forward setMode() and getInputBufferSize() calls to underlying audio hardware interface.
- Allow capture of more than one output stream (previous implementation was only capturing
the first output opened, namely the hardware output).
- Allow capture of input streams: previous implementation was only simulating input streams
when more than one was open at a time by reading from a file on SD card). Now the default
behavior is to capture PCM data read from input stream if it was successfully opened or
simulate capture otherwise.
Change-Id: I7e2892b25e295fc3c19c7eb0f71bfaea5816b73a
|
|\ \ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
there is a new resize() api, which currently only allows growing.
Change-Id: Ia37b81b73be466d2491ffed7f3a23cd8e113c6fe
|
|\ \ \ \ \ \
| |/ / / / /
| | | | | |
| | | | | | |
changes" into kraken
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
the new TextureMagager class now handle texture creation and upload
as well as EGL image creation and binding to GraphicBuffers. This is
used indirectly by Layer and directly by LayerBuffer
the new BufferManager class handles the set of buffers used for a
Layer (Surface), it abstracts how many buffer there is as well as
the use of EGLimage vs. regular texture ops (glTexImage2D).
Change-Id: I2da1ddcf27758e6731400f6cc4e20bef35c0a39a
|
|\ \ \ \ \ \
| |/ / / / /
| | | | | /
| |_|_|_|/
|/| | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
this hack was used for gpus that don't support cached buffers
for s/w clients. currently we have no gpu with this issue.
this removes quite a bit of complexity.
Change-Id: I72564669f124f92805030e61983711f61c76b6d9
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Change the way zip archives are handled. This is necessary to deal with
very large (~1GB) APK files, for which our current approach of mapping
the entire file falls over.
We now do the classic scavenger hunt for the End Of Central Directory
magic on a buffer of data read from the file, instead of a memory-mapped
section. We use what we find to create a map that covers the Central
Directory only.
If the caller is interested in unpacking the file contents, we have to
do an additional file read to discover the size of the Local File Header
section so we can skip past it.
This is based on Change I745fb15abb in the dalvik tree. Both
implementations share a common ancestry, but the cost of unifying them
outweighs the benefits of wrapping C calls.
Change-Id: Iddacb50fe913917c2845708a530872d65fdbe620
|
|\ \ \ \ \
| |_|/ / /
|/| | / /
| | |/ /
| |/| |
| | | |
| | | | |
Merge commit 'd8c33747afbe98e893e0569f3bf45b67a9e8e728' into kraken
* commit 'd8c33747afbe98e893e0569f3bf45b67a9e8e728':
Add remove method in CameraParameters class.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
bug:2672651
Change-Id: I537c817b5ca6a3d925f22febe9a5769156354d00
|
|\ \ \ \ |
|
| | |/ /
| |/| |
| | | |
| | | |
| | | | |
bug:2612447
Change-Id: I9bc3f5a47ad50722a265d50b1d28fb82a2253dc9
|
|\ \ \ \
| |/ / /
|/| / /
| |/ /
| | |
| | |
| | |
| | |
| | | |
of a pinch zoom." into froyo
Merge commit '56aed6bde0c52658d2cb1207c0cfe8ba0a764c59' into kraken
* commit '56aed6bde0c52658d2cb1207c0cfe8ba0a764c59':
fix [2664345] Flash: Bad flicker at the end of a pinch zoom.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
the window manger puts SurfaceViews up before they have been
rendered into, because of that surfaceflinger doesn't have
anything ready to draw for that surface when an udpate occurs
and responds by filling the surface with black.
With this fix, we only fill those areas of the framebuffer
that would otherwise be undefined (no content at all).
in the Flash case, the "flash" window is not drawn at all
until it has some content, instead the underlaying browser
window is shown.
Change-Id: Ifb610f7f8c27b88edf83e09adc4803fc295c15a1
|
| | |
| | |
| | |
| | | |
Change-Id: I081f0fbdca4b633715ea7c3b3d42f8662d27598a
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
libbinder." into froyo
Merge commit 'ca48c88c3d5733c4405a2fc4f7d9bb7fbba3d43f' into kraken
* commit 'ca48c88c3d5733c4405a2fc4f7d9bb7fbba3d43f':
Make static versions of libutils and libbinder.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fix some small static-initialization-order issues (and a static-
initializers-missing issue) that result from doing so. The static
libraries don't actually get used for anything real at the moment --
they're used for perf tests of bug 2660235.
Bug: 2660235
Change-Id: Iee2f38f79cc93b395e8d0a5a144ed92461f5ada0
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
<= 16
don't use glDrawTexi() anymore
Change-Id: If71334de39114b0edce7771366f8d8dc26f6911e
|
| | |
| | |
| | |
| | | |
Change-Id: I604f58d3fcd2d09ec7998123c627401081345cd6
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Also added a very simple SharedBufferStack unit test.
Change-Id: I253dbbe98a53c966b78d22d4d6dd59f8aefc8c40
|
|\ \ \ \
| |/ / /
| | | |
| | | | |
templtes" into kraken
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
the reason for the above change is that waitForCondition() had become
large over time, mainly to handle error cases, using inlines to
evaluate the condition doesn't buys us much anymore while it increases
code size.
Change-Id: I2595d850832628954b900ab8bb1796c863447bc7
|
|\ \ \ \
| |/ / /
| | | |
| | | | |
incorrectly." into kraken
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
incorrectly.
in the undoDequeue() case, 'tail' was recalculated from 'available' and 'head'
however there was a race between this and retireAndLock(), which could cause
'tail' to be recalculated wrongly.
the interesting thing though is that retireAndLock() shouldn't have any impact
on the value of 'tail', which is client-side only attribute.
we fix the race by saving the value of 'tail' before dequeue() and restore it
in the case of undoDequeue(), since we know it doesn't depend on retireAndLock().
Change-Id: I4bcc4d16b6bc4dd93717ee739c603040b18295a0
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Not complete, only for experimentation at this point.
This includes a reworking of how screen size configurations are matched,
so that if you are on a larger screen we can select configurations for
smaller screens if there aren't any exactly matching the current screen.
The screen size at which we switch to xlarge has been arbitrarily
chosen; the compatibility behavior has not yet been defined.
Change-Id: I1a33b3818eeb51a68fb72397568c39ab040a07f5
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
get rid of the "fake rtti" code, and use polymorphism instead.
also simplify how we log SF's state (using polymorphism)
Change-Id: I2bae7c98de4dd207a3e2b00083fa3fde7c467922
|
| | |
| | |
| | |
| | | |
Change-Id: I83438b40effd21538f1c74396dc665254b9d5ab6
|