diff options
Diffstat (limited to 'src/com/android/camera/imageprocessor/filter/UbifocusFilter.java')
-rw-r--r-- | src/com/android/camera/imageprocessor/filter/UbifocusFilter.java | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java b/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java index b410e01b4..c68b5091e 100644 --- a/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java +++ b/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java @@ -63,7 +63,7 @@ public class UbifocusFilter implements ImageFilter { private int mStrideY; private int mStrideVU; private static String TAG = "UbifocusFilter"; - private static final boolean DEBUG = true; + private static final boolean DEBUG = false; private static final int FOCUS_ADJUST_TIME_OUT = 200; private static final int META_BYTES_SIZE = 25; private int temp; @@ -76,6 +76,8 @@ public class UbifocusFilter implements ImageFilter { final String[] NAMES = {"00.jpg", "01.jpg", "02.jpg", "03.jpg", "04.jpg", "DepthMapImage.y", "AllFocusImage.jpg"}; + private int mSavedCount = 0; + private static void Log(String msg) { if (DEBUG) { Log.d(TAG, msg); @@ -122,18 +124,24 @@ public class UbifocusFilter implements ImageFilter { } @Override - public void addImage(ByteBuffer bY, ByteBuffer bVU, int imageNum, Object param) { + public void addImage(final ByteBuffer bY, final ByteBuffer bVU, final int imageNum, Object param) { Log("addImage"); if(imageNum == 0) { mModule.setRefocusLastTaken(false); mOrientation = CameraUtil.getJpegRotation(mModule.getMainCameraId(), mModule.getDisplayOrientation()); + mSavedCount = 0; } - saveToPrivateFile(imageNum, nv21ToJpeg(bY, bVU, new Rect(0, 0, mWidth, mHeight), mOrientation)); int yActualSize = bY.remaining(); int vuActualSize = bVU.remaining(); if(nativeAddImage(bY, bVU, yActualSize, vuActualSize, imageNum) < 0) { Log.e(TAG, "Fail to add image"); } + new Thread() { + public void run() { + saveToPrivateFile(imageNum, nv21ToJpeg(bY, bVU, new Rect(0, 0, mWidth, mHeight), mOrientation)); + mSavedCount++; + } + }.start(); } @Override @@ -151,7 +159,12 @@ public class UbifocusFilter implements ImageFilter { saveToPrivateFile(NAMES.length - 1, nv21ToJpeg(mOutBuf, null, new Rect(roi[0], roi[1], roi[0] + roi[2], roi[1] + roi[3]), mOrientation)); mModule.setRefocusLastTaken(true); } - + while(mSavedCount < NUM_REQUIRED_IMAGE) { + try { + Thread.sleep(1); + } catch (Exception e) { + } + } ResultImage result = new ResultImage(mOutBuf, new Rect(roi[0], roi[1], roi[0]+roi[2], roi[1] + roi[3]), mWidth, mHeight, mStrideY); Log("processImage done"); return result; |