summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCamera Software Integration <camswint@localhost>2015-11-24 11:28:08 -0800
committerSteve Kondik <steve@cyngn.com>2016-08-03 15:45:45 -0700
commitf10d6c1be19922e657c808773f72f94bd03f0c22 (patch)
tree8cf6570e90344d14b2601aeb112ac38e90e2e306 /src
parent69d1c4dfde72a717cd977ca69fe1cd17f8817087 (diff)
downloadandroid_packages_apps_Snap-f10d6c1be19922e657c808773f72f94bd03f0c22.tar.gz
android_packages_apps_Snap-f10d6c1be19922e657c808773f72f94bd03f0c22.tar.bz2
android_packages_apps_Snap-f10d6c1be19922e657c808773f72f94bd03f0c22.zip
SnapdragonCamera: Improving Burstmode performance
Calling media notify only once after the burst mode is finished. This reduces latency of the processing call back. Change-Id: I5ff4a369705cab4c8cee95f793733d2a0046e1d0 CRs-Fixed: 933866
Diffstat (limited to 'src')
-rw-r--r--src/com/android/camera/PhotoModule.java52
1 files changed, 45 insertions, 7 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index a991e4398..65e2f1496 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -368,12 +368,53 @@ public class PhotoModule
}
private SelfieThread selfieThread;
+ private class MediaSaveNotifyThread extends Thread
+ {
+ private Uri uri;
+ public MediaSaveNotifyThread(Uri uri)
+ {
+ this.uri = uri;
+ }
+ public void setUri(Uri uri)
+ {
+ this.uri = uri;
+ }
+ public void run()
+ {
+ while(mLongshotActive) {
+ try {
+ Thread.sleep(10);
+ } catch(InterruptedException e) {
+ }
+ }
+ mActivity.runOnUiThread(new Runnable() {
+ public void run() {
+ if (uri != null)
+ mActivity.notifyNewMedia(uri);
+ mActivity.updateStorageSpaceAndHint();
+ updateRemainingPhotos();
+ }
+ });
+ mediaSaveNotifyThread = null;
+ }
+ }
+
+ private MediaSaveNotifyThread mediaSaveNotifyThread;
private MediaSaveService.OnMediaSavedListener mOnMediaSavedListener =
new MediaSaveService.OnMediaSavedListener() {
@Override
public void onMediaSaved(Uri uri) {
- if (uri != null) {
- mActivity.notifyNewMedia(uri);
+ if(mLongshotActive) {
+ if(mediaSaveNotifyThread == null) {
+ mediaSaveNotifyThread = new MediaSaveNotifyThread(uri);
+ mediaSaveNotifyThread.start();
+ }
+ else
+ mediaSaveNotifyThread.setUri(uri);
+ } else {
+ if (uri != null) {
+ mActivity.notifyNewMedia(uri);
+ }
}
}
};
@@ -1404,11 +1445,8 @@ public class PhotoModule
onCaptureDone();
}
}
- // Check this in advance of each shot so we don't add to shutter
- // latency. It's true that someone else could write to the SD card in
- // the mean time and fill it, but that could have happened between the
- // shutter press and saving the JPEG too.
- mActivity.updateStorageSpaceAndHint();
+ if(!mLongshotActive)
+ mActivity.updateStorageSpaceAndHint();
mUI.updateRemainingPhotos(--mRemainingPhotos);
long now = System.currentTimeMillis();
mJpegCallbackFinishTime = now - mJpegPictureCallbackTime;