From 511c1ec9863438a2ed94f52349d381a2679a4414 Mon Sep 17 00:00:00 2001 From: Jay Wang Date: Thu, 23 Jun 2016 11:43:04 -0700 Subject: SnapdragonCamera: add jpeg crop parrameter support Add support for crop data when sending JPEG encode requests. CRs-Fixed: 993611 Change-Id: Icbd960160d651a3422c2b8530608fcd5dba97735 --- src/com/android/camera/CaptureModule.java | 6 ++++++ .../codeaurora/snapcam/filter/ClearSightImageProcessor.java | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index baace39f2..ee4bcc724 100644 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -162,6 +162,12 @@ public class CaptureModule implements CameraModule, PhotoController, CaptureRequest.Key BayerMonoLinkSessionIdKey = new CaptureRequest.Key<>("org.codeaurora.qcamera3.dualcam_link_meta_data" + ".related_camera_id", Integer.class); + public static CaptureRequest.Key JpegCropEnableKey = + new CaptureRequest.Key<>("org.codeaurora.qcamera3.jpeg_encode_crop.enable", + Byte.class); + public static CaptureRequest.Key JpegCropRectKey = + new CaptureRequest.Key<>("org.codeaurora.qcamera3.jpeg_encode_crop.rect", + int[].class); public static CameraCharacteristics.Key MetaDataMonoOnlyKey = new CameraCharacteristics.Key<>("org.codeaurora.qcamera3.sensor_meta_data.is_mono_only", Byte.class); diff --git a/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java b/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java index bafbbb8eb..c64a0de2a 100644 --- a/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java +++ b/src/org/codeaurora/snapcam/filter/ClearSightImageProcessor.java @@ -64,6 +64,7 @@ import android.os.SystemProperties; import android.util.Log; import android.view.Surface; +import com.android.camera.CaptureModule; import com.android.camera.MediaSaveService; import com.android.camera.MediaSaveService.OnMediaSavedListener; import com.android.camera.PhotoModule.NamedImages; @@ -712,6 +713,15 @@ public class ClearSightImageProcessor { reprocRequest.set(CaptureRequest.NOISE_REDUCTION_MODE, CaptureRequest.NOISE_REDUCTION_MODE_OFF); + Rect cropRect = image.mImage.getCropRect(); + if(cropRect != null && + !cropRect.isEmpty()) { + // has crop rect. apply to jpeg request + reprocRequest.set(CaptureModule.JpegCropEnableKey, (byte)1); + reprocRequest.set(CaptureModule.JpegCropRectKey, + new int[] {cropRect.left, cropRect.top, cropRect.width(), cropRect.height()}); + } + mImageWriter[camType].queueInputImage(image.mImage); session.capture(reprocRequest.build(), -- cgit v1.2.3