summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2016-03-25 13:02:27 +0100
committerSteve Kondik <steve@cyngn.com>2016-11-07 11:00:47 -0800
commit28873f767d0cf3197ee33ed1067013364bc7ef03 (patch)
treee9bd59b62344a31f046b3d33dca6bf55b2e72c96
parent8f4b77f87f919e0bb8472180b9ff38b1b6e87f15 (diff)
downloadandroid_packages_apps_Snap-28873f767d0cf3197ee33ed1067013364bc7ef03.tar.gz
android_packages_apps_Snap-28873f767d0cf3197ee33ed1067013364bc7ef03.tar.bz2
android_packages_apps_Snap-28873f767d0cf3197ee33ed1067013364bc7ef03.zip
Protect against multiple shutter callbacks per frame in longshot mode.
Some devices send multiple shutter callbacks for one captured frame in longshot mode. As this causes mismatch between the calculated number of captured frames and the calculated number of JPEGs received for those, which in turn leads to longshot mode never being ended properly, protect against that scenario by discarding all but the first callback. Change-Id: I0c3a270f664a0cd16354fb0a13c5941a52001650
-rwxr-xr-xsrc/com/android/camera/PhotoModule.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index e46c323da..ab0dd83f0 100755
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -1060,6 +1060,11 @@ public class PhotoModule
private final class LongshotShutterCallback
implements CameraShutterCallback {
+ private int mExpectedLongshotSnapNum;
+
+ public LongshotShutterCallback() {
+ mExpectedLongshotSnapNum = mLongshotSnapNum;
+ }
@Override
public void onShutter(CameraProxy camera) {
@@ -1067,6 +1072,9 @@ public class PhotoModule
mShutterLag = mShutterCallbackTime - mCaptureStartTime;
Log.e(TAG, "[KPI Perf] PROFILE_SHUTTER_LAG mShutterLag = " + mShutterLag + "ms");
synchronized(mCameraDevice) {
+ if (mExpectedLongshotSnapNum != mLongshotSnapNum) {
+ return;
+ }
if (++mLongshotSnapNum >= mLongShotMaxSnap &&
(mLongShotMaxSnap != -1)) {