Also removed an unnecessary parameter to MtpDatabase.endSendobject()
BUG: 3352142
Change-Id: I6fd812dcba4814956bc8bc1cbd6bd5c868197790
Signed-off-by: Mike Lockwood <lockwood@android.com>
o Removed setMode() methods and related mode constants
o Removed some of the unused the metadata keys
o Updated the javadoc
o part of a multi-project change.
bug - 2433195
Change-Id: I5ed167f1fd6a53cb143b7dc385b149431d434438
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
This will be replaced by a new PTP host API in an upcoming commit.
Change-Id: Ib914194e332b5c090cb8e34ed35bd691bc9f85d1
Signed-off-by: Mike Lockwood <lockwood@android.com>
Currently the media scanner does not create database entries for directories
unless they contain a file that is scanned.
Fixing this so we provide a consistent view of the world to MTP.
Change-Id: Ia776acfeae23192183e7192d63cdc34d830ea889
Signed-off-by: Mike Lockwood <lockwood@android.com>
Otherwise the sdcard daemon that implements the Fuse file system at
/mnt/sdcard won't have write access to the files.
BUG: 3254123
Change-Id: Ib0c306bbc31ec936fd6164f17e7cd1b5dfff21b8
Signed-off-by: Mike Lockwood <lockwood@android.com>
Set resource config_mtpReserveSpaceMegabytes to number of megabytes to reserve.
If MTP has dedicated storage this value should be zero, but if MTP is
sharing storage with the rest of the system, set this to a positive value
to ensure that MTP activity does not result in the storage being
too close to full.
BUG: 3250924
Change-Id: I881c87240da268bad1ea1b99ad03673ab85ffdbf
Signed-off-by: Mike Lockwood <lockwood@android.com>
In particular, make sure the parent is a folder and make sure file
does not already exist.
Change-Id: Ifa870faba3285f03a92025d9e82f93fed78a761c
Signed-off-by: Mike Lockwood <lockwood@android.com>
Return screen size as preferred maximum image size.
Change-Id: I8dc4afb0e49fe45f6925a35aa443d3fc30211453
Signed-off-by: Mike Lockwood <lockwood@android.com>
Use a Mutex wherever atomic operations were used in AudioTrack,
AudioRecord, AudioFlinger and AudioEffect classes.
Change-Id: I6f55b2cabdcd93d64ef19446735b8f33720f8dbc
Now the file copy is done completely within the media process
rather than pushing data to the client via ContProvider.openFile().
File system writes are now interleaved with USB reads, which allows us
to copy the data faster and prevents the camera from timing out during transfer.
File is automatically inserted in the media provider after a successful import
and a Uri is returned to the client.
BUG: 2994234
Change-Id: Ie75c63da76f623343d3d966c6a707aa1ae871972
Signed-off-by: Mike Lockwood <lockwood@android.com>
In this initial implementation we only support fetching one property at a time.
Support depth = 0 (single object) or depth = 1 (all objects in a directory)
Reimplemented GetObjectPropValue on top of GetObjectPropList, since the former
is a special case of the latter.
Change-Id: Ia76ee61741d6ee3902b5c5d9fc094cf86dfaf650
Signed-off-by: Mike Lockwood <lockwood@google.com>
commit 0d5694ba2d399dd0869532a4d6256448185a1be0
Author: Andreas Huber <andih@google.com>
Date: Fri Oct 29 11:59:23 2010 -0700
suspend() and resume() methods on VideoView are back but don't do anything.
They need to be back because they were public before.
Change-Id: Iddfd1021ffcf341f26e8d55ba761fd33701e2425
commit 16192891ed7d349ee97e47d1729d20a2d0d247b8
Author: Andreas Huber <andih@google.com>
Date: Fri Oct 29 11:47:05 2010 -0700
Revert "New API on VideoView widget to suspend/resume a session. Do not release the MediaPlayer client for video suspending/resuming."
This reverts commit 2e1818a4d16c3309660f27286c77d8d1eee95a25.
Conflicts:
api/current.xml
Change-Id: I68dd1d05871044faf3f832d0838aa40bc7f890e5
commit 8f934dc1a3ae4e60f0790fcf97671e063fa20fad
Author: Andreas Huber <andih@google.com>
Date: Fri Oct 29 11:44:16 2010 -0700
Revert "Release mediaplayer if the current state is not suspending. Fix for bug 2480093."
This reverts commit efb882cf75eef39ecaf9f8920ed302a019fa629f.
commit f2ed03550887986f39d36b5dabcd9e919949c7cf
Author: Andreas Huber <andih@google.com>
Date: Fri Oct 29 11:44:08 2010 -0700
Revert "Release MediaPlayer if suspend() returns false."
This reverts commit 047212fd4ea360675e94d3ce83c7f5544f65b268.
commit 441ecce678bd24e9660a72c8627b5bd94433ff8b
Author: Andreas Huber <andih@google.com>
Date: Fri Oct 29 11:40:46 2010 -0700
manually.
Change-Id: I4fdd43c9f7c8b3eedddb31a196da4984e1c58e87
Change-Id: I60d4b10e7a9e4ed8d9a796f1711618f557eb6e89
android_media_Visualizer.cpp:
Delete local reference to jArray in captureCallback() in
the case of waveform capture.
Change-Id: Ia822ab6d9945fff93605f7732e56120c19fd42a5
Added a method to expose the audio session id at AudioSink interface
so that the AudioPlayer in stagefright can retrieve it.
Also:
- Fixed audio effect send level not being initialized in mediaplayer.
- Fixed compilation error when LOGV is enabled in mediaplayer JNI
Change-Id: I4bb55454fd63d646e0e677692d737c4843fb05fb
We cannot rely on the VM automatically freeing local references for us
in a timely manner in JNI code that is not called directly from Java.
Change-Id: I6ee8a9a97cb557b9d3b2ace4e4d20467b436fb9c
Signed-off-by: Mike Lockwood <lockwood@android.com>
There is a problem in AudioEffect and Visualizer native_setup() methods
that causes a crash in the application after the mediaserver process
has crashed and restarted.
The problem is that the native AudioEffect/Visualizer constructor is
called while the JNI is in critical state after calling
GetPrimitiveArrayCritical(). As the mediaserver process just restarted, the
first call to AudioSystem will cause the binder IAudioflinger interface to
be reteived and a callback send to AudioSystem JNI to clear the mediaserver
error state. This will call env->FindClass() and crash due to the JNI being
in critical state.
Also fixed a similar problem in AudioTrack JNI
Change-Id: I4a9026a3e26c7f78d9b4b4bec1aac90fbee2ab62
Windows no longer chokes now that we implement the minimum set of properties
BUG: 2869730
Change-Id: Ie8bd9107610b9b38f060ad8a2f05334a3b4aff9b
Signed-off-by: Mike Lockwood <lockwood@android.com>