AndroidCameraSettings.java revision 8097973089420749dcd1ab4974a629c2466b31cc
1package com.android.ex.camera2.portability;
2
3import android.hardware.Camera;
4
5/**
6 * Created by shkong on 6/2/14.
7 */
8public class AndroidCameraSettings extends CameraSettings {
9
10    public AndroidCameraSettings(CameraCapabilities capabilities, Camera.Parameters params) {
11        CameraCapabilities.Stringifier stringifier = capabilities.getStringifier();
12
13        // Preview
14        Camera.Size paramPreviewSize = params.getPreviewSize();
15        setPreviewSize(new Size(paramPreviewSize.width, paramPreviewSize.height));
16        setPreviewFrameRate(params.getPreviewFrameRate());
17        int[] previewFpsRange = new int[2];
18        params.getPreviewFpsRange(previewFpsRange);
19        setPreviewFpsRange(previewFpsRange[Camera.Parameters.PREVIEW_FPS_MIN_INDEX],
20                previewFpsRange[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]);
21
22
23        // Capture: Focus, flash, zoom, exposure, scene mode.
24        if (capabilities.supports(CameraCapabilities.Feature.ZOOM)) {
25            setZoomRatio(params.getZoomRatios().get(params.getZoom()) / 100f);
26            setZoomIndex(params.getZoom());
27        } else {
28            setZoomRatio(1.0f);
29            setZoomIndex(0);
30        }
31        setExposureCompensationIndex(params.getExposureCompensation());
32        setFlashMode(stringifier.flashModeFromString(params.getFlashMode()));
33        setFocusMode(stringifier.focusModeFromString(params.getFocusMode()));
34        setSceneMode(stringifier.sceneModeFromString(params.getSceneMode()));
35
36        // Video capture.
37        if (capabilities.supports(CameraCapabilities.Feature.VIDEO_STABILIZATION)) {
38            setVideoStabilization(isVideoStabilizationEnabled());
39        }
40
41        // Output: Photo size, compression quality, rotation.
42        setPhotoRotationDegrees(0f);
43        setPhotoJpegCompressionQuality(params.getJpegQuality());
44        Camera.Size paramPictureSize = params.getPictureSize();
45        setPhotoSize(new Size(paramPictureSize.width, paramPictureSize.height));
46    }
47}
48