diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/camera/CameraActivity.java | 3 | ||||
-rw-r--r-- | src/com/android/camera/CameraSettings.java | 2 | ||||
-rw-r--r--[-rwxr-xr-x] | src/com/android/camera/SettingsManager.java | 2 | ||||
-rw-r--r-- | src/com/android/camera/imageprocessor/FrameProcessor.java | 12 | ||||
-rw-r--r-- | src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java | 60 | ||||
-rw-r--r--[-rwxr-xr-x] | src/com/android/camera/ui/Camera2FaceView.java | 2 | ||||
-rw-r--r-- | src/com/android/camera/util/CameraUtil.java | 4 |
7 files changed, 74 insertions, 11 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java index 7f155cbd7..ca78ba969 100644 --- a/src/com/android/camera/CameraActivity.java +++ b/src/com/android/camera/CameraActivity.java @@ -129,7 +129,7 @@ public class CameraActivity extends Activity ActionBar.OnMenuVisibilityListener, ShareActionProvider.OnShareTargetSelectedListener { - private static final String TAG = "CAM_Activity"; + private static final String TAG = "CAM_Activity"; private static final String INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE = "android.media.action.STILL_IMAGE_CAMERA_SECURE"; @@ -1467,7 +1467,6 @@ public class CameraActivity extends Activity } else { mSecureCamera = intent.getBooleanExtra(SECURE_CAMERA_EXTRA, false); } - if (mSecureCamera) { // Change the window flags so that secure camera can show when locked Window win = getWindow(); diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index 44f3978f5..541c65704 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -982,6 +982,8 @@ public class CameraSettings { supportedAdvancedFeatures)) { removePreference(group, chromaFlash.getKey()); } + //remove chromaFlash + removePreference(group, chromaFlash.getKey()); } if (sceneMode != null) { diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java index c0a545426..af796c6a7 100755..100644 --- a/src/com/android/camera/SettingsManager.java +++ b/src/com/android/camera/SettingsManager.java @@ -1397,7 +1397,9 @@ public class SettingsManager implements ListMenu.SettingsListener { modes.add("" + i); } } catch(NullPointerException e) { + Log.w(TAG, "Supported instant aec modes is null."); } catch(IllegalArgumentException e) { + Log.w(TAG, "Supported instant aec modes is null."); } return modes; diff --git a/src/com/android/camera/imageprocessor/FrameProcessor.java b/src/com/android/camera/imageprocessor/FrameProcessor.java index b1b415acd..6b0c97732 100644 --- a/src/com/android/camera/imageprocessor/FrameProcessor.java +++ b/src/com/android/camera/imageprocessor/FrameProcessor.java @@ -401,7 +401,11 @@ public class FrameProcessor { } } else { filter.init(mSize.getWidth(), mSize.getHeight(), stride, stride); - filter.addImage(bY, bVU, 0, new Boolean(true)); + if (filter instanceof BeautificationFilter) { + filter.addImage(bY, bVU, 0, new Boolean(false)); + } else { + filter.addImage(bY, bVU, 0, new Boolean(true)); + } needToFeedSurface = true; } bY.rewind(); @@ -485,7 +489,11 @@ public class FrameProcessor { mBY.rewind(); mBVU.rewind(); mFilter.init(mWidth, mHeight, mStride, mStride); - mFilter.addImage(mBY, mBVU, 0, new Boolean(true)); + if (mFilter instanceof BeautificationFilter) { + mFilter.addImage(mBY, mBVU, 0, new Boolean(false)); + } else { + mFilter.addImage(mBY, mBVU, 0, new Boolean(true)); + } mMutureLock.release(); } catch (InterruptedException e) { } diff --git a/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java b/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java index 607908ebf..4682e3947 100644 --- a/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java +++ b/src/com/android/camera/imageprocessor/filter/ChromaflashFilter.java @@ -32,8 +32,10 @@ import android.graphics.Rect; import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraCaptureSession; import android.hardware.camera2.CameraCharacteristics; +import android.hardware.camera2.CameraDevice; import android.hardware.camera2.CaptureRequest; import android.hardware.camera2.CaptureResult; +import android.hardware.camera2.TotalCaptureResult; import android.os.Handler; import android.util.Log; @@ -155,20 +157,33 @@ public class ChromaflashFilter implements ImageFilter{ for (int i = 0; i < NUM_REQUIRED_IMAGE; i++) { if (i == 0) { captureSession.capture(builder.build(), callback, handler); + waitForImage(i); } else if (i == 1) { //To change the setting builder.set(CaptureRequest.CONTROL_AE_LOCK, Boolean.FALSE); + builder.set(CaptureRequest.FLASH_MODE, + CaptureRequest.FLASH_MODE_SINGLE); 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); + builder.set(CaptureRequest.CONTROL_AE_MODE, + CaptureRequest.CONTROL_AE_MODE_ON); + CaptureRequest.Builder AeTunningBuilder = captureSession.getDevice(). + createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW); + CaptureRequest request = builder.build(); + for (CaptureRequest.Key key : request.getKeys()) { + AeTunningBuilder.set(key, request.get(key)); + } + AeTunningBuilder.addTarget(mModule.getPreviewSurfaceForSession( + mModule.getMainCameraId())); + + waitForAeBlock(AeTunningBuilder,builder,callback, + captureSession,handler,5); } else if (i == 3) { captureSession.capture(builder.build(), callback, handler); + waitForImage(i); } else if (i == 4) { //To change the setting builder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF); + builder.set(CaptureRequest.CONTROL_AE_LOCK, Boolean.FALSE); captureSession.capture(builder.build(), callback, handler); waitForImage(i); } else if (i == 5) { @@ -190,6 +205,41 @@ public class ChromaflashFilter implements ImageFilter{ } } + private void waitForAeBlock(final CaptureRequest.Builder tuningBuilder, + final CaptureRequest.Builder captureBuilder, + final CameraCaptureSession.CaptureCallback callback, + final CameraCaptureSession captureSession, + final Handler handler, final int AeTunningTime) { + try{ + captureSession.capture(tuningBuilder.build(), + new CameraCaptureSession.CaptureCallback() { + private boolean mAeStateConverged = false; + + @Override + public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, + TotalCaptureResult result) { + Integer aeState = result.get(CaptureResult.CONTROL_AE_STATE); + Log.d(TAG,"AE tunning onCaptureCompleted aeState = " + aeState); + if (aeState != null && aeState == CaptureResult.CONTROL_AE_STATE_CONVERGED) { + mAeStateConverged = true; + } + Log.d(TAG,"AE tunning completed mAeStateConverged = " + mAeStateConverged); + if(!mAeStateConverged && AeTunningTime >= 2) { + int resetTime = AeTunningTime - 1; + waitForAeBlock(tuningBuilder,captureBuilder,callback, + captureSession,handler,resetTime); + } else { + try{ + captureSession.capture(captureBuilder.build(),callback,handler); + } catch (CameraAccessException e){} + } + } + }, handler); + }catch (CameraAccessException e){ + + } + } + public static boolean isSupportedStatic() { return mIsSupported; } diff --git a/src/com/android/camera/ui/Camera2FaceView.java b/src/com/android/camera/ui/Camera2FaceView.java index 3b6d10541..81be61f81 100755..100644 --- a/src/com/android/camera/ui/Camera2FaceView.java +++ b/src/com/android/camera/ui/Camera2FaceView.java @@ -151,7 +151,9 @@ public class Camera2FaceView extends FaceView { faceBound.offset(-mCameraBound.left, -mCameraBound.top); mRect.set(faceBound); translateMatrix.mapRect(mRect); + if (LOGV) CameraUtil.dumpRect(mRect, "Original rect"); mMatrix.mapRect(mRect); + if (LOGV) CameraUtil.dumpRect(mRect, "Transformed rect"); mPaint.setColor(mColor); mRect.offset(dx, dy); diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java index 3b0d5e6ac..d6c1956d9 100644 --- a/src/com/android/camera/util/CameraUtil.java +++ b/src/com/android/camera/util/CameraUtil.java @@ -526,8 +526,8 @@ public class CameraUtil { //For < 720p, there is no need to do any capping. //By capping the panel size, we are indirectly controlling the preview size being //chosen in getOptimalPreviewSize(). - String uMax = SystemProperties.get("camera.display.umax", ""); - String lMax = SystemProperties.get("camera.display.lmax", ""); + String uMax = PersistUtil.getDisplayUMax(); + String lMax = PersistUtil.getDisplayLMax(); if ((uMax.length() > 0) && (lMax.length() > 0)) { Log.v(TAG,"display uMax "+ uMax + " lMax " + lMax); String uMaxArr[] = uMax.split("x", 2); |