summaryrefslogtreecommitdiffstats
path: root/src/com
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 11:24:21 -0700
commit03796fd7939bb14506d5e191216cae81c8f99fbf (patch)
treea221df947de046b0228b5da8d20e88a84cdd32ef /src/com
parentf1235036ca21bda6b145a4c7660b59b2e8b67e95 (diff)
downloadandroid_packages_apps_Snap-03796fd7939bb14506d5e191216cae81c8f99fbf.tar.gz
android_packages_apps_Snap-03796fd7939bb14506d5e191216cae81c8f99fbf.tar.bz2
android_packages_apps_Snap-03796fd7939bb14506d5e191216cae81c8f99fbf.zip
SnapdragonCamera: Add exif thumbnail to Camera2 captures
Add embedded thumbnails for Camera2 captures. CRs-Fixed: 1068516 Change-Id: I5c0fdb3ddee3dd676a6b1ab91e5e7c33322e49b1
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/camera/CaptureModule.java10
-rw-r--r--src/com/android/camera/SettingsManager.java5
2 files changed, 15 insertions, 0 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index 6cedbc650..8f2006a1c 100644
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -254,6 +254,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;
@@ -1124,6 +1126,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);
@@ -1243,6 +1247,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());
@@ -2245,6 +2251,8 @@ public class CaptureModule implements CameraModule, PhotoController,
Size[] prevSizes = mSettingsManager.getSupportedOutputSize(getMainCameraId(),
SurfaceHolder.class);
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() {
@@ -2281,6 +2289,8 @@ public class CaptureModule implements CameraModule, PhotoController,
} else {
mVideoSnapshotSize = mPictureSize;
}
+ Size[] thumbSizes = mSettingsManager.getSupportedThumbnailSizes(getMainCameraId());
+ mVideoSnapshotThumbSize = getOptimalPreviewSize(mVideoSnapshotSize, thumbSizes, 0, 0); // get largest thumb size
}
private void updateMaxVideoDuration() {
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index f4162c79f..374c6eb2b 100644
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -857,6 +857,11 @@ public class SettingsManager implements ListMenu.SettingsListener {
return res;
}
+ public Size[] getSupportedThumbnailSizes(int cameraId) {
+ return mCharacteristics.get(cameraId).get(
+ CameraCharacteristics.JPEG_AVAILABLE_THUMBNAIL_SIZES);
+ }
+
public Size[] getSupportedOutputSize(int cameraId, int format) {
StreamConfigurationMap map = mCharacteristics.get(cameraId).get(
CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);