diff options
author | Jay Wang <jaywang@codeaurora.org> | 2016-09-19 14:15:42 -0700 |
---|---|---|
committer | Jay Wang <jaywang@codeaurora.org> | 2016-09-27 11:24:21 -0700 |
commit | 03796fd7939bb14506d5e191216cae81c8f99fbf (patch) | |
tree | a221df947de046b0228b5da8d20e88a84cdd32ef /src/com | |
parent | f1235036ca21bda6b145a4c7660b59b2e8b67e95 (diff) | |
download | android_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.java | 10 | ||||
-rw-r--r-- | src/com/android/camera/SettingsManager.java | 5 |
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); |