This change adds a public Java API to use a SurfaceTexture as the
destination of camera preview frames.
Change-Id: If537fed2df12c5c181e2af5f817985c1bda853fb
Add protection against views disappearing before previously posted
Runnables attempt to show a menu anchored to them.
Change-Id: Ia2a322e76665e61feb5bdb92377d5066cb6d5b04
The problem can occur if a sample is started at the same time as the last AudioTrack callback
for a playing sample is called. At this time, allocateChannel() can be called concurrently with moveToFront()
which can cause an entry in mChannels being used by moveToFront() to be erased temporarily by allocateChannel().
The fix consists in making sure that the SoundPool mutex is held whenever play(), stop() or done() are called.
In addition, other potential weaknesses have been removed by making sure that the channel mutex is held while
starting, stopping and processing the AudioTrack call back.
To that purpose, a mechanism similar to the channel restart method is implemented to avoid stopping channels
from the AudioTrack call back but do it from the restart thread instead.
The sound effects SounPool management in AudioService has also been improved to make sure that the samples have
been loaded when a playback request is received and also to immediately release the SoundPool when the effects are
unloaded without waiting for the GC to occur.
The SoundPool.java class was modified to allow the use of a looper attached to the thread in which the sample
loaded listener is running and not to the thread in which the SoundPool is created.
The maximum number of samples that can be loaded in a SoundPool lifetime as been increased from 255 to 65535.
Change-Id: I368a3bdfda4239f807f857c3e97b70f6b31b0af3
Changed late frame drop policy, now we are dropping only 1 in 8,
late (> 40ms) frames. Dropping every late frame result in lot of noticible
pauses, usually with peaky bitrate activity these pauses become more prominant.
Dropping few frames is still required to allow overall playback chain,
to regain the performance.
Experimentally decided to drop Max one late frame in 8.
Change-Id: If20848d619a76aaf8179b1e5c3155610e3bc85fd
1. Added a mechanism to select the cursor ring content if accessibility is
enabled - This is achieved by sending an event to the WebCore thread
(if accessibility is enabled) to select the content of the cursor when
the latter moves. Added code in WebViewCore to select the given node
and notify the UI thread for the selection markup which is delivered
of the accessibility injector which manages sending accessibility
events. This is relevant for adding accessibility to WebView if
JavaScript is not enabled. (If JS is enabled we inject a screenreader
written in JS).
2. Fixed the event delegation to the accessibility injector since it
should be able to consume key events of interest and perform some
action which leads to sending appropriate accessibility event.
In the previous implementation it was possible that the injector
consumes the event but the latter was bubbled up.
3. Added function to scroll the selection into view while moving it
around based on user commands.
Note: This is a part of two project commmit.
Change-Id: Ibb81d0468726efbe3bf6e3add1b19c69e3206638
The child can only be added to the new viewgroup
after it's been removed from the previous one, which
is delayed if there's an animation.
Change-Id: I9123a2670d0d17b3eb6f8f89085ebab8ca2b800f
support for two common ways of specifying album artist in ogg files.
b/3311831
(cherry-picked from GB because of weird automerger failure)
Change-Id: Ibf12a3d6bc8bbc2ac5ea815de6b33414b8f53f0f
If you test case is declaring a non-primitive constant,
this method would clear out the constant between
individual tests.
Change-Id: I570f2bbbbbb0a170bf63b7473b4aaf84869e93e0
immediately after orientation change
Inflate action view layout resource earlier so that calls to
getActionView are valid immediately after menu inflation.
Change-Id: I8023328b1a77670ac42a783f6e4b46aa5c2a798e