Removed a cross deadlock condition between audioflinger and audio policy
service mutexes.
Audioflinger::createEffect() locks audioflinger mutex and then calls
AudioSystem::getOutputForEffect() which ends up in
AudioPolicyService::getOutputForEffect() which locks audio policy service
mutex. If at the same time, the command thread in audio policy service is
processing a command(set volume, set route...), the mutex is locked and the
command will call one audioflinger method which in turn will attempt to
lock audioflinger mutex.
The fix consists in releasing audioflinger mutex before calling
getOutputForEffect().
Change-Id: Id44e7feb36e0a295731f6aa97cf32d022edd34d0
Since we switched to seeking to the LFH to verify its existence instead
of a huge mmap of the file, we have to guarantee that another seek
doesn't happen before we finish our read on the LFH.
Change-Id: If8135d9cb6f2f5cc4db734eafa4f6b5f6269c62a
+ replace SipAudioCall and its Listener interfaces with real implementations,
+ remove SipAudioCallImpl.java, most of it is has become part of SipAudioCall,
+ add SipSession and its Listener classes to wrap ISipSession and ISipSessionListener,
+ move SipSessionState to SipSession.State,
+ make SipManager keep context and remove the context argument from many methods of its,
+ rename SipManager.getInstance() to newInstance(),
+ rename constant names for action strings and extra keys to follow conventions,
+ set thread names for debugging purpose.
Change-Id: Ie1790dc0e8f49c06c7fc80d33fec0f673a9c3044
it turns out that we cannot return INVALID_OPERATION from glGetError() because the
GL spec says that it must be called in a loop until it returns GL_NO_ERROR.
now, we always return 0 from GL functions called from a thread with no
context bound. This means that glGetError() will return NO_ERROR in this case,
which is better than returning a random value (which could trap the app in a loop).
if this happens in the main thread of a process, we LOG an error message once.
Change-Id: Id59620e675a890286ef62a257c02b06e0fdcaf69
Don't kill processes for excessive wake lock use, even if they
are in the background, as long as they have running services.
Also fix some problems with this, such as not noting the kill
in battery stats.
And add killing of processes for cpu usage as well, along with
some optimizations to computing CPU usage.
And fix BatteryWaster to be better behaving for testing these
cases.
Add new "monitor" command to am to watch as the activity manager
does stuff (so we can catch things at the point of ANR).
Finally some miscellaneous debug output for the stuff here, as
well as in progress debugging of an ANR.
Change-Id: Ib32f55ca50fb7486b4be4eb5e695f8f60c882cd1
This change modifies ViewRoot to wait until the MotionEvent has been
delivered before telling the input dispatcher that it is finished.
The serial ordering guarantee will be required by new features that
may need to transfer touch focus from one window to another.
Change-Id: I0a64d1f0c8bc3f08846f213d6e28ce48b1d48e58
glGetError() will now always return GL_INVALID_OPERATION if called from a thread
with no GL context bound.
Change-Id: I28ba458871db051bb4f5a26668a1fa123526869c
DownloadManager was set up to return file URIs for public API
downloads to external, but to return content URIs for all others.
This included browser downloads, which are on external but don't go
through the public API. Since the new downloads UI uses
DownloadManager, it was affected by this change when the user opened a
file from the UI. Apparently numerous things don't handle content
URIs well, including music preview (clicking on downloaded mp3) and
package installer (clicking on downloaded APK), so this change makes
it generate file URIs for legacy external downloads.
Change-Id: I5c34d8ba188cc8b0d11865262cb451208be78eae
* improved documentation of the default destination on the download
cache and the concomitant consequences
* removed NETWORK_WIMAX flag for setting allowed networks
* changed request headers behavior to support multiple instances of
the same header (as allowed in the HTTP spec), renamed
setRequestHeader() to addRequestHeader()
* accept user-facing strings as CharSequences instead of Strings
* new convenience methods setDestinationInExternalFilesDir() and
setDestinationInExternalPublicDir() for setting a destination in
either shared or app-private external storage directories
* renamed setMediaType() to setMimeType()
Change-Id: I8781e2214d939c340209cab917bbbba264ab919c
Merge commit '5b7328f257a76ff6b7b60872d6a106002ff1f679' into gingerbread
* commit '5b7328f257a76ff6b7b60872d6a106002ff1f679':
docs: add more info about state list drawable and onclick attribute to Button
PackageManagerTests was catching assertion errors and just spitting out
a generic "Hey, there was an error!" message. This eliminates that and
adds some expected outcomes in the assertions.
Change-Id: I27baa3c57c85b0cae4ea76aaf1e2a9b61b2c32b7
- Created sub-package android.media.audiofx for audio effects.
- Hid AudioEffect class contructor, methods and variables not needed by
applications
- Added more javadoc comments for AudioEffect Class
Change-Id: Ibbb40d4e714bb248aa32cf82d7763d74efae96d1
The --product option to aapt is a comma-separated list of characteristics
of the device being built for. For example, --product nosdcard,grayscale
for a device with no SD card and a grayscale screen.
Strings can specify a product="characteristic" option to cause that version
of the string to be used only for that type of device. All such strings
should also specify, at the end of the block, product="default", which
will be used if none of the variations match. For example:
<string name="choose" product="bw">Choose black or white</string>
<string name="choose" product="grayscale">Choose a shade of gray</string>
<string name="choose" product="default">Choose a color</string>
The default characteristic will also be used when no --product option
is specified.
Change-Id: Ie6c1505599e02e15b7818e8be6ec47bc6ce71aaa
It looks like this timing bug has been there forever, and we're just starting to hit it now.
Bug: 3027952
Change-Id: I5c14ccd7f74205dc6930f4282cec0e23eeb54cab
* changes:
SIP: Make SipAudioCallImpl use SimpleSessionDescription instead of javax.sdp.
SDP: Add a simple class to help manipulate session descriptions.
RTP: Add log throttle for "no data".
RTP: Update native part to reflect the API change.
RTP: Add two getters to retrieve the current configuration from AudioStream.
RTP: Extend codec capability and update the APIs.