From fb588ee269d1fd40776c4286e7b6f7a2a9f0b552 Mon Sep 17 00:00:00 2001 From: junjiez Date: Wed, 19 Dec 2018 14:43:55 +0800 Subject: SnapdraongCamera:HEIF improvement 1.Remove JPEG output config when HEIF is enabled. 2.Close heifWrite after unlock focus to ensure the data is arrived. CRs-Fixed: 2371414 Change-Id: Ic72630a690cf2f5af9bcafaee1d5bf013b66cbe5 --- src/com/android/camera/CaptureModule.java | 49 ++++++++++++++++--------------- 1 file changed, 25 insertions(+), 24 deletions(-) (limited to 'src/com/android/camera/CaptureModule.java') diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index b2ebc34be..464e065eb 100755 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -1614,7 +1614,9 @@ public class CaptureModule implements CameraModule, PhotoController, mPreviewRequestBuilder[id].addTarget(surs); list.add(surs); } - list.add(mImageReader[id].getSurface()); + if (mSettingsManager.getSavePictureFormat() == SettingsManager.JPEG_FORMAT) { + list.add(mImageReader[id].getSurface()); + } if (mSaveRaw) { list.add(mRawImageReader[id].getSurface()); } @@ -2227,14 +2229,9 @@ public class CaptureModule implements CameraModule, PhotoController, } else if(id == getMainCameraId() && mPostProcessor.isFilterOn()) { // Case of post filtering captureStillPictureForFilter(captureBuilder, id); } else { - if (mImageReader[id] != null) { - captureBuilder.addTarget(mImageReader[id].getSurface()); - } - if (mSaveRaw && mRawImageReader[id] != null) { captureBuilder.addTarget(mRawImageReader[id].getSurface()); } - if (mSettingsManager.getSavePictureFormat() == SettingsManager.HEIF_FORMAT) { long captureTime = System.currentTimeMillis(); mNamedImages.nameNewImage(captureTime); @@ -2261,6 +2258,10 @@ public class CaptureModule implements CameraModule, PhotoController, e.printStackTrace(); } } + } else { + if (mImageReader[id] != null) { + captureBuilder.addTarget(mImageReader[id].getSurface()); + } } if(mPaused || !mCamerasOpened) { @@ -2379,13 +2380,20 @@ public class CaptureModule implements CameraModule, PhotoController, @Override public void onCaptureSequenceCompleted(CameraCaptureSession session, int sequenceId, long frameNumber) { + if(mLongshotActive) { + captureStillPicture(getMainCameraId()); + } else { + mLongshoting = false; + mNumFramesArrived.getAndSet(0); + unlockFocus(getMainCameraId()); + } if (mSettingsManager.getSavePictureFormat() == SettingsManager.HEIF_FORMAT) { if (mHeifImage != null) { try { - mHeifOutput.removeSurface(mHeifImage.getInputSurface()); - session.updateOutputConfiguration(mHeifOutput); mHeifImage.getWriter().stop(3000); mHeifImage.getWriter().close(); + mHeifOutput.removeSurface(mHeifImage.getInputSurface()); + session.updateOutputConfiguration(mHeifOutput); mActivity.getMediaSaveService().addHEIFImage(mHeifImage.getPath(), mHeifImage.getTitle(),mHeifImage.getDate(),null,mPictureSize.getWidth(),mPictureSize.getHeight(), mHeifImage.getOrientation(),null,mContentResolver,mOnMediaSavedListener,mHeifImage.getQuality(),"heifs"); @@ -2397,13 +2405,6 @@ public class CaptureModule implements CameraModule, PhotoController, } } } - if(mLongshotActive) { - captureStillPicture(getMainCameraId()); - } else { - mLongshoting = false; - mNumFramesArrived.getAndSet(0); - unlockFocus(getMainCameraId()); - } } }; @@ -2456,13 +2457,18 @@ public class CaptureModule implements CameraModule, PhotoController, public void onCaptureSequenceCompleted(CameraCaptureSession session, int sequenceId, long frameNumber) { Log.d(TAG, "captureStillPictureForCommon onCaptureSequenceCompleted: " + id); + if (mUI.getCurrentProMode() != ProMode.MANUAL_MODE) { + unlockFocus(id); + } else { + enableShutterAndVideoOnUiThread(id); + } if (mSettingsManager.getSavePictureFormat() == SettingsManager.HEIF_FORMAT) { if (mHeifImage != null) { try { - mHeifOutput.removeSurface(mHeifImage.getInputSurface()); - mCaptureSession[id].updateOutputConfiguration(mHeifOutput); mHeifImage.getWriter().stop(3000); mHeifImage.getWriter().close(); + mHeifOutput.removeSurface(mHeifImage.getInputSurface()); + mCaptureSession[id].updateOutputConfiguration(mHeifOutput); mActivity.getMediaSaveService().addHEIFImage(mHeifImage.getPath(), mHeifImage.getTitle(),mHeifImage.getDate(),null,mPictureSize.getWidth(),mPictureSize.getHeight(), mHeifImage.getOrientation(),null,mContentResolver,mOnMediaSavedListener,mHeifImage.getQuality(),"heif"); @@ -2474,11 +2480,6 @@ public class CaptureModule implements CameraModule, PhotoController, } } } - if (mUI.getCurrentProMode() != ProMode.MANUAL_MODE) { - unlockFocus(id); - } else { - enableShutterAndVideoOnUiThread(id); - } } }, mCaptureCallbackHandler); } @@ -2568,10 +2569,10 @@ public class CaptureModule implements CameraModule, PhotoController, if (mSettingsManager.getSavePictureFormat() == SettingsManager.HEIF_FORMAT) { if (mLiveShotImage != null) { try { - mLiveShotOutput.removeSurface(mLiveShotImage.getInputSurface()); - mCurrentSession.updateOutputConfiguration(mLiveShotOutput); mLiveShotImage.getWriter().stop(3000); mLiveShotImage.getWriter().close(); + mLiveShotOutput.removeSurface(mLiveShotImage.getInputSurface()); + mCurrentSession.updateOutputConfiguration(mLiveShotOutput); mActivity.getMediaSaveService().addHEIFImage(mLiveShotImage.getPath(), mLiveShotImage.getTitle(),mLiveShotImage.getDate(), null,mVideoSize.getWidth(),mVideoSize.getHeight(), -- cgit v1.2.3