diff options
author | Camera Software Integration <camswint@localhost> | 2015-11-24 11:28:08 -0800 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-08-03 15:45:45 -0700 |
commit | f10d6c1be19922e657c808773f72f94bd03f0c22 (patch) | |
tree | 8cf6570e90344d14b2601aeb112ac38e90e2e306 /src/com/android | |
parent | 69d1c4dfde72a717cd977ca69fe1cd17f8817087 (diff) | |
download | android_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/com/android')
-rw-r--r-- | src/com/android/camera/PhotoModule.java | 52 |
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; |