summaryrefslogtreecommitdiff
path: root/src/com/android/camera/CaptureModule.java
diff options
context:
space:
mode:
authorJay Wang <jaywang@codeaurora.org>2016-09-19 14:15:42 -0700
committerJay Wang <jaywang@codeaurora.org>2016-09-27 15:54:48 -0700
commitaff5be78e5eaa1c5329bbdda0e669ca4f099d420 (patch)
tree3ceba72f8a973aea20716066eddaf984ba3b17a8 /src/com/android/camera/CaptureModule.java
parent6b4a36b3b4f55c8dd2e18d8f84c4106ce0590f50 (diff)
SnapdragonCamera: Add exif thumbnail to Camera2 captures
Add embedded thumbnails for Camera2 captures. CRs-Fixed: 1068516 Change-Id: I5c0fdb3ddee3dd676a6b1ab91e5e7c33322e49b1
Diffstat (limited to 'src/com/android/camera/CaptureModule.java')
-rw-r--r--src/com/android/camera/CaptureModule.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index d4d83813f..95c780944 100644
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -260,6 +260,8 @@ public class CaptureModule implements CameraModule, PhotoController,
private Size mVideoPreviewSize;
private Size mVideoSize;
private Size mVideoSnapshotSize;
+ private Size mPictureThumbSize;
+ private Size mVideoSnapshotThumbSize;
private MediaRecorder mMediaRecorder;
private boolean mIsRecordingVideo;
@@ -1166,6 +1168,8 @@ public class CaptureModule implements CameraModule, PhotoController,
Log.d(TAG, "captureStillPicture no location - getRecordLocation: " + getRecordLocation());
}
captureBuilder.set(CaptureRequest.JPEG_ORIENTATION, CameraUtil.getJpegRotation(id, mOrientation));
+ captureBuilder.set(CaptureRequest.JPEG_THUMBNAIL_SIZE, mPictureThumbSize);
+ captureBuilder.set(CaptureRequest.JPEG_THUMBNAIL_QUALITY, (byte)80);
captureBuilder.set(CaptureRequest.CONTROL_MODE, CaptureRequest.CONTROL_MODE_AUTO);
addPreviewSurface(captureBuilder, null, id);
captureBuilder.set(CaptureRequest.CONTROL_AF_MODE, mControlAFMode);
@@ -1267,6 +1271,8 @@ public class CaptureModule implements CameraModule, PhotoController,
mCameraDevice[id].createCaptureRequest(CameraDevice.TEMPLATE_VIDEO_SNAPSHOT);
captureBuilder.set(CaptureRequest.JPEG_ORIENTATION, CameraUtil.getJpegRotation(id, mOrientation));
+ captureBuilder.set(CaptureRequest.JPEG_THUMBNAIL_SIZE, mVideoSnapshotThumbSize);
+ captureBuilder.set(CaptureRequest.JPEG_THUMBNAIL_QUALITY, (byte)80);
applyVideoSnapshot(captureBuilder, id);
captureBuilder.addTarget(mVideoSnapshotImageReader.getSurface());
@@ -2289,6 +2295,8 @@ public class CaptureModule implements CameraModule, PhotoController,
SurfaceHolder.class);
mSupportedMaxPictureSize = prevSizes[0];
mPreviewSize = getOptimalPreviewSize(mPictureSize, prevSizes, screenSize.x, screenSize.y);
+ Size[] thumbSizes = mSettingsManager.getSupportedThumbnailSizes(getMainCameraId());
+ mPictureThumbSize = getOptimalPreviewSize(mPictureSize, thumbSizes, 0, 0); // get largest thumb size
}
public boolean isRecordingVideo() {
@@ -2322,6 +2330,8 @@ public class CaptureModule implements CameraModule, PhotoController,
if (is4kSize(mVideoSize) && is4kSize(mVideoSnapshotSize)) {
mVideoSnapshotSize = getMaxPictureSizeLessThan4k();
}
+ Size[] thumbSizes = mSettingsManager.getSupportedThumbnailSizes(getMainCameraId());
+ mVideoSnapshotThumbSize = getOptimalPreviewSize(mVideoSnapshotSize, thumbSizes, 0, 0); // get largest thumb size
}
private boolean is4kSize(Size size) {