summaryrefslogtreecommitdiffstats
path: root/src/org/codeaurora/snapcam/filter
diff options
context:
space:
mode:
authorqimengp <qimengp@codeaurora.org>2016-12-19 13:33:49 +0800
committerqimengp <qimengp@codeaurora.org>2017-01-11 16:14:32 +0800
commitb63f401d3f0af836763d80688a579ca991c08170 (patch)
tree3945979d6ef5817e7d8d22ae267e390baefed119 /src/org/codeaurora/snapcam/filter
parent15f6d966c807c371a12f68bf9f5f4e7447a9ba8e (diff)
downloadandroid_packages_apps_Snap-b63f401d3f0af836763d80688a579ca991c08170.tar.gz
android_packages_apps_Snap-b63f401d3f0af836763d80688a579ca991c08170.tar.bz2
android_packages_apps_Snap-b63f401d3f0af836763d80688a579ca991c08170.zip
SnapdragonCamera: Fix Dualcamera reprocess before capture timeout
When all of the reprocess result come before capture result, and no reprocess result after capture result anymore, will cause timeout. When all of common capture result come, and all the reprocesses have come, call checkReprocessDone() to trigger clearsightengine. Change-Id: I028de8444cd811c1400c64231a7fecf939ae5c40 CRs-Fixed: 1110019
Diffstat (limited to 'src/org/codeaurora/snapcam/filter')
-rwxr-xr-xsrc/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java b/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java
index 944bf0800..f2d33a856 100755
--- a/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java
+++ b/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java
@@ -29,7 +29,6 @@
package org.codeaurora.snapcam.filter;
-import java.io.IOException;
import java.io.ByteArrayOutputStream;
import java.nio.ByteBuffer;
import java.util.ArrayDeque;
@@ -146,6 +145,7 @@ public class ClearSightImageProcessor {
private boolean mDumpImages;
private boolean mDumpYUV;
private boolean mIsClosing;
+ private int mFinishReprocessNum;
private static ClearSightImageProcessor mInstance;
@@ -480,6 +480,7 @@ public class ClearSightImageProcessor {
switch (msg.what) {
case MSG_START_CAPTURE:
mCaptureDone = false;
+ mFinishReprocessNum = 0;
mHasFailures = false;
mReprocessingPairCount = 0;
mReprocessedBayerCount = 0;
@@ -600,13 +601,20 @@ public class ClearSightImageProcessor {
checkForValidFramePairAndReprocess();
}
- Log.d(TAG, "processNewCaptureEvent - imagestoprocess[bayer] " + mNumImagesToProcess[CAM_TYPE_BAYER] +
- " imagestoprocess[mono]: " + mNumImagesToProcess[CAM_TYPE_MONO]);
-
+ Log.d(TAG, "processNewCaptureEvent - " +
+ "imagestoprocess[bayer] " + mNumImagesToProcess[CAM_TYPE_BAYER] +
+ " imagestoprocess[mono]: " + mNumImagesToProcess[CAM_TYPE_MONO] +
+ " mReprocessingPairCount: " + mReprocessingPairCount +
+ " mNumFrameCount: " + mNumFrameCount +
+ " mFinishReprocessNum" + mFinishReprocessNum);
if (mReprocessingPairCount == mNumFrameCount ||
(mNumImagesToProcess[CAM_TYPE_BAYER] == 0
&& mNumImagesToProcess[CAM_TYPE_MONO] == 0)) {
processFinalPair();
+ if (mReprocessingPairCount != 0 &&
+ mFinishReprocessNum == mReprocessingPairCount * 2) {
+ checkReprocessDone();
+ }
}
}
@@ -809,7 +817,7 @@ public class ClearSightImageProcessor {
Log.d(TAG, "reprocess - setReferenceResult: " + msg.obj);
ClearSightNativeEngine.getInstance().setReferenceResult(isBayer, result);
}
-
+ mFinishReprocessNum++;
checkReprocessDone();
}
@@ -819,6 +827,7 @@ public class ClearSightImageProcessor {
mReprocessingRequests.remove(failure.getRequest());
mReprocessingFrames.delete(msg.arg2);
mHasFailures = true;
+ mFinishReprocessNum++;
checkReprocessDone();
}