diff options
Diffstat (limited to 'src/com/android/camera/CaptureModule.java')
-rwxr-xr-x | src/com/android/camera/CaptureModule.java | 58 |
1 files changed, 28 insertions, 30 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index 506c323a7..61aaf9d23 100755 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -294,7 +294,7 @@ public class CaptureModule implements CameraModule, PhotoController, private float mZoomValue = 1f; private FocusStateListener mFocusStateListener; private LocationManager mLocationManager; - private SettingsManager mSettingsManager; + public SettingsManager mSettingsManager; private long SECONDARY_SERVER_MEM; private boolean mLongshotActive = false; private CameraCharacteristics mMainCameraCharacteristics; @@ -1775,7 +1775,9 @@ public class CaptureModule implements CameraModule, PhotoController, * @param width The width of available size for camera preview * @param height The height of available size for camera preview */ - private void setUpCameraOutputs(int imageFormat) { + private void setUpCameraOutputs(boolean isFilterOrZslEnabled) { + int imageFormat = ImageFormat.JPEG; + Log.d(TAG, "setUpCameraOutputs"); CameraManager manager = (CameraManager) mActivity.getSystemService(Context.CAMERA_SERVICE); try { @@ -1784,6 +1786,8 @@ public class CaptureModule implements CameraModule, PhotoController, String cameraId = cameraIdList[i]; CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId); + int [] capabilities = characteristics.get(CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES); + if (isInMode(i)) mCameraIdList.add(i); if(i == getMainCameraId()) { @@ -1798,6 +1802,21 @@ public class CaptureModule implements CameraModule, PhotoController, } mCameraId[i] = cameraId; + // Set ImageFormat for ZSL + if (isFilterOrZslEnabled) { + for (int capability : capabilities) { + // YUV has higher priority + if (capability == CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING) { + Log.d(TAG, "ImageFormat: YUV_420_888"); + imageFormat = ImageFormat.YUV_420_888; + break; + } else if (capability == CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING) { + Log.d(TAG, "ImageFormat: PRIVATE"); + imageFormat = ImageFormat.PRIVATE; + } + } + } + if (isClearSightOn()) { if(i == getMainCameraId()) { // ClearSightImageProcessor.getInstance().init(map, mPictureSize.getWidth(), @@ -2468,15 +2487,11 @@ public class CaptureModule implements CameraModule, PhotoController, mFrameProcessor.onOpen(getFrameProcFilterId(), mPreviewSize); } - if(mPostProcessor.isZSLEnabled()) { - mChosenImageFormat = ImageFormat.PRIVATE; - } else if(mPostProcessor.isFilterOn() || getFrameFilters().size() != 0 || mPostProcessor.isSelfieMirrorOn()) { - mChosenImageFormat = ImageFormat.YUV_420_888; + if(mPostProcessor.isFilterOn() || getFrameFilters().size() != 0 || mPostProcessor.isSelfieMirrorOn()) { + setUpCameraOutputs(true); } else { - mChosenImageFormat = ImageFormat.JPEG; + setUpCameraOutputs(false); } - setUpCameraOutputs(mChosenImageFormat); - } @Override @@ -2497,27 +2512,10 @@ public class CaptureModule implements CameraModule, PhotoController, openProcessors(); Message msg = Message.obtain(); msg.what = OPEN_CAMERA; - if (isBackCamera()) { - switch (getCameraMode()) { - case DUAL_MODE: - case BAYER_MODE: - msg.arg1 = BAYER_ID; - mCameraHandler.sendMessage(msg); - break; - case MONO_MODE: - msg.arg1 = MONO_ID; - mCameraHandler.sendMessage(msg); - break; - case SWITCH_MODE: - msg.arg1 = SWITCH_ID; - mCameraHandler.sendMessage(msg); - break; - } - } else { - int cameraId = SWITCH_ID == -1? FRONT_ID : SWITCH_ID; - msg.arg1 = cameraId; - mCameraHandler.sendMessage(msg); - } + int cameraId = getMainCameraId(); + msg.arg1 = cameraId; + mCameraHandler.sendMessage(msg); + mUI.showSurfaceView(); if (!mFirstTimeInitialized) { initializeFirstTime(); |