diff options
author | Jack Yoo <jyoo@codeaurora.org> | 2016-10-12 09:50:47 -0700 |
---|---|---|
committer | Jack Yoo <jyoo@codeaurora.org> | 2016-10-20 11:24:37 -0700 |
commit | e5638a1b4697191588438be133102f61b67a3985 (patch) | |
tree | b127b3484af48db5d576d320b3807250fc190166 /src/com/android/camera/imageprocessor/filter | |
parent | c250484c375484e70a1c8e64eb8bd956b3f1c15d (diff) | |
download | android_packages_apps_Snap-e5638a1b4697191588438be133102f61b67a3985.tar.gz android_packages_apps_Snap-e5638a1b4697191588438be133102f61b67a3985.tar.bz2 android_packages_apps_Snap-e5638a1b4697191588438be133102f61b67a3985.zip |
SnapdragonCamera: PanoramaUI and filter change
1. Adjusting Panorama UI
2. Adjusting Chormaflash filter
3. Changing Ubifocus focus timeout value
4. ZSL Flash mode change
Change-Id: Ia46fdc827cd5529a8b7c6f5cfafc44bb3cf00d06
CRs-Fixed: 1080317
Diffstat (limited to 'src/com/android/camera/imageprocessor/filter')
-rw-r--r-- | src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java | 57 | ||||
-rw-r--r-- | src/com/android/camera/imageprocessor/filter/UbifocusFilter.java | 10 |
2 files changed, 50 insertions, 17 deletions
diff --git a/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java b/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java index ad4c9933a..e244c1040 100644 --- a/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java +++ b/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java @@ -44,7 +44,7 @@ import java.util.ArrayList; import java.util.List; public class ChromaflashFilter implements ImageFilter{ - public static final int NUM_REQUIRED_IMAGE = 3; + public static final int NUM_REQUIRED_IMAGE = 6; private int mWidth; private int mHeight; private int mStrideY; @@ -105,6 +105,10 @@ public class ChromaflashFilter implements ImageFilter{ @Override public void addImage(ByteBuffer bY, ByteBuffer bVU, int imageNum, Object param) { Log("addImage"); + if(imageNum == 1 || imageNum == 2 || imageNum == 4) { + mImageNum = imageNum; + return; + } int yActualSize = bY.remaining(); int vuActualSize = bVU.remaining(); mImageNum = imageNum; @@ -143,19 +147,46 @@ public class ChromaflashFilter implements ImageFilter{ } @Override - public void manualCapture(CaptureRequest.Builder builder, CameraCaptureSession captureSession, - CameraCaptureSession.CaptureCallback callback, Handler handler) throws CameraAccessException { - for(int i=0; i < NUM_REQUIRED_IMAGE; i++) { - if(i == 1) { - mModule.setFlashModeToPreview(mModule.getMainCameraId(), true); - builder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON); - builder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_SINGLE); - } else { - mModule.setFlashModeToPreview(mModule.getMainCameraId(), false); - builder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON); - builder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF); + public void manualCapture(final CaptureRequest.Builder builder, final CameraCaptureSession captureSession, + final CameraCaptureSession.CaptureCallback callback, final Handler handler) throws CameraAccessException { + new Thread() { + public void run() { + try { + for (int i = 0; i < NUM_REQUIRED_IMAGE; i++) { + if (i == 0) { + captureSession.capture(builder.build(), callback, handler); + } else if (i == 1) { //To change the setting + builder.set(CaptureRequest.CONTROL_AE_LOCK, Boolean.FALSE); + captureSession.capture(builder.build(), callback, handler); + waitForImage(i); + } else if (i == 2) { //To change the setting + builder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON); + builder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_SINGLE); + builder.set(CaptureRequest.CONTROL_AE_LOCK, Boolean.TRUE); + captureSession.capture(builder.build(), callback, handler); + waitForImage(i); + } else if (i == 3) { + captureSession.capture(builder.build(), callback, handler); + } else if (i == 4) { //To change the setting + builder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF); + captureSession.capture(builder.build(), callback, handler); + waitForImage(i); + } else if (i == 5) { + captureSession.capture(builder.build(), callback, handler); + } + } + } catch(CameraAccessException e) {} + + } + }.start(); + } + + private void waitForImage(int index) { + try { + while(mImageNum < index) { + Thread.sleep(50); } - captureSession.capture(builder.build(), callback, handler); + } catch (InterruptedException e) { } } diff --git a/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java b/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java index 57da5c441..f32832dd8 100644 --- a/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java +++ b/src/com/android/camera/imageprocessor/filter/UbifocusFilter.java @@ -64,7 +64,7 @@ public class UbifocusFilter implements ImageFilter { private int mStrideVU; private static String TAG = "UbifocusFilter"; private static final boolean DEBUG = false; - private static final int FOCUS_ADJUST_TIME_OUT = 200; + private static final int FOCUS_ADJUST_TIME_OUT = 400; private static final int META_BYTES_SIZE = 25; private int temp; private static boolean mIsSupported = true; @@ -206,6 +206,8 @@ public class UbifocusFilter implements ImageFilter { float value = (i * step); mModule.setAFModeToPreview(mModule.getMainCameraId(), CaptureRequest.CONTROL_AF_MODE_OFF); mModule.setFocusDistanceToPreview(mModule.getMainCameraId(), value); + Log("Request: " + value); + float focusDistance; try { int count = FOCUS_ADJUST_TIME_OUT; do { @@ -214,15 +216,15 @@ public class UbifocusFilter implements ImageFilter { if(count <= 0) { break; } - } while(Math.abs(mModule.getPreviewCaptureResult().get(CaptureResult.LENS_FOCUS_DISTANCE) - - value) >= 0.5f); + focusDistance = mModule.getPreviewCaptureResult().get(CaptureResult.LENS_FOCUS_DISTANCE); + Log("Taken focus value :"+focusDistance); + } while(Math.abs(focusDistance - value) >= 1f); } catch (InterruptedException e) { } catch (NullPointerException e) { } builder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_OFF); builder.set(CaptureRequest.LENS_FOCUS_DISTANCE, value); captureSession.capture(builder.build(), callback, handler); - Log.d(TAG, "Request: " + value); } } |