summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2016-03-25 13:02:27 +0100
committerBruno Martins <bgcngm@gmail.com>2018-11-20 12:32:17 +0000
commit3cb2334e9c847bf88fd20a9e030bea106b144f28 (patch)
treeaa2ac5a1f16200d63b3bff0ec16565d7e7416779
parentba56ec209ff1ec039794c550d132c9aa291c95c7 (diff)
downloadandroid_packages_apps_Snap-3cb2334e9c847bf88fd20a9e030bea106b144f28.tar.gz
android_packages_apps_Snap-3cb2334e9c847bf88fd20a9e030bea106b144f28.tar.bz2
android_packages_apps_Snap-3cb2334e9c847bf88fd20a9e030bea106b144f28.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
-rw-r--r--src/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 798e29225..d385162a4 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -1074,6 +1074,11 @@ public class PhotoModule
private final class LongshotShutterCallback
implements CameraShutterCallback {
+ private int mExpectedLongshotSnapNum;
+
+ public LongshotShutterCallback() {
+ mExpectedLongshotSnapNum = mLongshotSnapNum;
+ }
@Override
public void onShutter(CameraProxy camera) {
@@ -1081,6 +1086,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)) {