summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2016-03-25 13:02:27 +0100
committerDanny Baumann <dannybaumann@web.de>2016-03-28 03:56:22 -0700
commit98a1a3c81d5545e8ba9bb30af405379f335341ee (patch)
tree7bbe113c5f229e254d6ff94231af3bf1cf639e8a
parentd525fe38002a7e5290348de33cb270b6c45a552b (diff)
downloadandroid_packages_apps_Snap-98a1a3c81d5545e8ba9bb30af405379f335341ee.tar.gz
android_packages_apps_Snap-98a1a3c81d5545e8ba9bb30af405379f335341ee.tar.bz2
android_packages_apps_Snap-98a1a3c81d5545e8ba9bb30af405379f335341ee.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 8bea63385..3615d948a 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -969,6 +969,11 @@ public class PhotoModule
private final class LongshotShutterCallback
implements CameraShutterCallback {
+ private int mExpectedLongshotSnapNum;
+
+ public LongshotShutterCallback() {
+ mExpectedLongshotSnapNum = mLongshotSnapNum;
+ }
@Override
public void onShutter(CameraProxy camera) {
@@ -976,6 +981,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)) {