diff options
author | qimengp <qimengp@codeaurora.org> | 2016-12-19 13:33:49 +0800 |
---|---|---|
committer | qimengp <qimengp@codeaurora.org> | 2017-01-11 16:14:32 +0800 |
commit | b63f401d3f0af836763d80688a579ca991c08170 (patch) | |
tree | 3945979d6ef5817e7d8d22ae267e390baefed119 /src/org/codeaurora/snapcam | |
parent | 15f6d966c807c371a12f68bf9f5f4e7447a9ba8e (diff) | |
download | android_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')
-rwxr-xr-x | src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java | 19 |
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(); } |