Search in sources :

Example 16 with Size

use of android.hardware.Camera.Size in project android_packages_apps_Camera by CyanogenMod.

the class VideoModule method getDesiredPreviewSize.

@TargetApi(ApiHelper.VERSION_CODES.HONEYCOMB)
private void getDesiredPreviewSize() {
    mParameters = mActivity.mCameraDevice.getParameters();
    if (ApiHelper.HAS_GET_SUPPORTED_VIDEO_SIZE) {
        if (mParameters.getSupportedVideoSizes() == null || (!mActivity.getResources().getBoolean(R.bool.usePreferredPreviewSizeForEffects) && effectsActive()) || Util.useProfileVideoSize()) {
            mDesiredPreviewWidth = mProfile.videoFrameWidth;
            mDesiredPreviewHeight = mProfile.videoFrameHeight;
        } else {
            // Driver supports separates outputs for preview and video.
            List<Size> sizes = mParameters.getSupportedPreviewSizes();
            Size preferred = mParameters.getPreferredPreviewSizeForVideo();
            if (mActivity.getResources().getBoolean(R.bool.ignorePreferredPreviewSizeForVideo) || preferred == null) {
                preferred = sizes.get(0);
            }
            int product = preferred.width * preferred.height;
            Iterator<Size> it = sizes.iterator();
            // Remove the preview sizes that are not preferred.
            while (it.hasNext()) {
                Size size = it.next();
                if (size.width * size.height > product) {
                    it.remove();
                }
            }
            Size optimalSize = Util.getOptimalPreviewSize(mActivity, sizes, (double) mProfile.videoFrameWidth / mProfile.videoFrameHeight);
            mDesiredPreviewWidth = optimalSize.width;
            mDesiredPreviewHeight = optimalSize.height;
        }
    } else {
        mDesiredPreviewWidth = mProfile.videoFrameWidth;
        mDesiredPreviewHeight = mProfile.videoFrameHeight;
    }
    Log.v(TAG, "mDesiredPreviewWidth=" + mDesiredPreviewWidth + ". mDesiredPreviewHeight=" + mDesiredPreviewHeight);
}
Also used : Size(android.hardware.Camera.Size) TargetApi(android.annotation.TargetApi)

Example 17 with Size

use of android.hardware.Camera.Size in project android_packages_apps_Camera by CyanogenMod.

the class VideoModule method checkQualityAndStartPreview.

// Verifies that the current preview view size is correct before starting
// preview. If not, resets the surface texture and resizes the view.
private void checkQualityAndStartPreview() {
    readVideoPreferences();
    showTimeLapseUI(mCaptureTimeLapse);
    Size size = mParameters.getPreviewSize();
    if (size.width != mDesiredPreviewWidth || size.height != mDesiredPreviewHeight) {
        resizeForPreviewAspectRatio();
    }
    // Start up preview again
    startPreview();
}
Also used : Size(android.hardware.Camera.Size)

Example 18 with Size

use of android.hardware.Camera.Size in project android_packages_apps_Camera by CyanogenMod.

the class VideoModule method setCameraParameters.

@SuppressWarnings("deprecation")
private void setCameraParameters() {
    mParameters.setPreviewSize(mDesiredPreviewWidth, mDesiredPreviewHeight);
    mParameters.setPreviewFrameRate(mProfile.videoFrameRate);
    // Set video mode
    CameraSettings.setVideoMode(mParameters, true);
    // Set video size before recording starts
    CameraSettings.setEarlyVideoSize(mParameters, mProfile);
    // Set flash mode.
    String flashMode;
    if (mActivity.mShowCameraAppView) {
        flashMode = mPreferences.getString(CameraSettings.KEY_VIDEOCAMERA_FLASH_MODE, mActivity.getString(R.string.pref_camera_video_flashmode_default));
    } else {
        flashMode = Parameters.FLASH_MODE_OFF;
    }
    List<String> supportedFlash = mParameters.getSupportedFlashModes();
    if (isSupported(flashMode, supportedFlash)) {
        mParameters.setFlashMode(flashMode);
    } else {
        flashMode = mParameters.getFlashMode();
        if (flashMode == null) {
            flashMode = mActivity.getString(R.string.pref_camera_flashmode_no_flash);
        }
    }
    // Set white balance parameter.
    String whiteBalance = mPreferences.getString(CameraSettings.KEY_WHITE_BALANCE, mActivity.getString(R.string.pref_camera_whitebalance_default));
    if (isSupported(whiteBalance, mParameters.getSupportedWhiteBalance())) {
        mParameters.setWhiteBalance(whiteBalance);
    } else {
        whiteBalance = mParameters.getWhiteBalance();
        if (whiteBalance == null) {
            whiteBalance = Parameters.WHITE_BALANCE_AUTO;
        }
    }
    // Set zoom.
    if (mParameters.isZoomSupported()) {
        mParameters.setZoom(mZoomValue);
    }
    // Set continuous autofocus.
    List<String> supportedFocus = mParameters.getSupportedFocusModes();
    if (isSupported(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO, supportedFocus)) {
        mParameters.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
    }
    mParameters.set(Util.RECORDING_HINT, Util.TRUE);
    // Enable video stabilization. Convenience methods not available in API
    // level <= 14
    String vstabSupported = mParameters.get("video-stabilization-supported");
    if ("true".equals(vstabSupported)) {
        mParameters.set("video-stabilization", "true");
    }
    // Set picture size.
    // The logic here is different from the logic in still-mode camera.
    // There we determine the preview size based on the picture size, but
    // here we determine the picture size based on the preview size.
    List<Size> supported = mParameters.getSupportedPictureSizes();
    Size optimalSize = Util.getOptimalVideoSnapshotPictureSize(supported, (double) mDesiredPreviewWidth / mDesiredPreviewHeight);
    Size original = mParameters.getPictureSize();
    if (!original.equals(optimalSize)) {
        mParameters.setPictureSize(optimalSize.width, optimalSize.height);
    }
    Log.v(TAG, "Video snapshot size is " + optimalSize.width + "x" + optimalSize.height);
    // Set JPEG quality.
    int jpegQuality = Integer.parseInt(mPreferences.getString(CameraSettings.KEY_VIDEOCAMERA_JPEG, mActivity.getString(R.string.pref_camera_jpeg_default)));
    mParameters.setJpegQuality(jpegQuality);
    // Color effect
    String colorEffect = mPreferences.getString(CameraSettings.KEY_VIDEOCAMERA_COLOR_EFFECT, mActivity.getString(R.string.pref_camera_coloreffect_default));
    if (Util.isSupported(colorEffect, mParameters.getSupportedColorEffects())) {
        mParameters.setColorEffect(colorEffect);
    }
    // Set exposure compensation
    int value = CameraSettings.readExposure(mPreferences);
    int max = mParameters.getMaxExposureCompensation();
    int min = mParameters.getMinExposureCompensation();
    if (value >= min && value <= max) {
        mParameters.setExposureCompensation(value);
    } else {
        Log.w(TAG, "invalid exposure range: " + value);
    }
    // HDR
    if (Util.isVideoHdrSupported(mParameters)) {
        String videohdr = mPreferences.getString(CameraSettings.KEY_VIDEO_HDR, mActivity.getString(R.string.pref_video_hdr_default));
        mParameters.set(mActivity.getString(R.string.videoHdrParam), videohdr);
    }
    CameraSettings.dumpParameters(mParameters);
    mActivity.mCameraDevice.setParameters(mParameters);
    // Keep preview size up to date.
    mParameters = mActivity.mCameraDevice.getParameters();
    updateCameraScreenNailSize(mDesiredPreviewWidth, mDesiredPreviewHeight);
}
Also used : Size(android.hardware.Camera.Size)

Example 19 with Size

use of android.hardware.Camera.Size in project JustAndroid by chinaltz.

the class CameraConfigurationManager method setDesiredCameraParameters.

/**
	 * 设置相机参数
	 * 
	 * @param camera
	 */
void setDesiredCameraParameters(Camera camera, int cameraID) {
    Parameters parameters = camera.getParameters();
    parameters.setPreviewSize(cameraResolution.x, cameraResolution.y);
    parameters.setPictureSize(pictureResolution.x, pictureResolution.y);
    Size size = parameters.getPreviewSize();
    Log.e(TAG, "camera default previewSize: " + size.width + "," + size.height);
    Size size1 = parameters.getPictureSize();
    Log.e(TAG, "camera default pictureSize: " + size1.width + "," + size1.height);
    parameters.setPictureFormat(ImageFormat.JPEG);
    //parameters.setJpegQuality(85);
    parameters.setPreviewFormat(ImageFormat.NV21);
    Log.e(TAG, "camera setPreviewSize: " + cameraResolution.x + "," + cameraResolution.y);
    if (cameraID == 0) {
        //对焦模式
        if (Config.focusMode == 0) {
            parameters.setFocusMode(Parameters.FLASH_MODE_AUTO);
        } else {
            parameters.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
        }
    }
    parameters.setZoom(0);
    setFlash(camera, false);
    //setZoom(parameters);
    camera.setParameters(parameters);
}
Also used : Parameters(android.hardware.Camera.Parameters) Size(android.hardware.Camera.Size)

Example 20 with Size

use of android.hardware.Camera.Size in project libstreaming by fyhertz.

the class VideoQuality method determineClosestSupportedResolution.

/** 
	 * Checks if the requested resolution is supported by the camera.
	 * If not, it modifies it by supported parameters. 
	 **/
public static VideoQuality determineClosestSupportedResolution(Camera.Parameters parameters, VideoQuality quality) {
    VideoQuality v = quality.clone();
    int minDist = Integer.MAX_VALUE;
    String supportedSizesStr = "Supported resolutions: ";
    List<Size> supportedSizes = parameters.getSupportedPreviewSizes();
    for (Iterator<Size> it = supportedSizes.iterator(); it.hasNext(); ) {
        Size size = it.next();
        supportedSizesStr += size.width + "x" + size.height + (it.hasNext() ? ", " : "");
        int dist = Math.abs(quality.resX - size.width);
        if (dist < minDist) {
            minDist = dist;
            v.resX = size.width;
            v.resY = size.height;
        }
    }
    Log.v(TAG, supportedSizesStr);
    if (quality.resX != v.resX || quality.resY != v.resY) {
        Log.v(TAG, "Resolution modified: " + quality.resX + "x" + quality.resY + "->" + v.resX + "x" + v.resY);
    }
    return v;
}
Also used : Size(android.hardware.Camera.Size)

Aggregations

Size (android.hardware.Camera.Size)30 Parameters (android.hardware.Camera.Parameters)4 Point (android.graphics.Point)3 Camera (android.hardware.Camera)3 Uri (android.net.Uri)2 IOException (java.io.IOException)2 TargetApi (android.annotation.TargetApi)1 SharedPreferences (android.content.SharedPreferences)1 Editor (android.content.SharedPreferences.Editor)1 SurfaceTexture (android.graphics.SurfaceTexture)1 Location (android.location.Location)1 Bundle (android.os.Bundle)1 Handler (android.os.Handler)1 Message (android.os.Message)1 Nullable (android.support.annotation.Nullable)1 BinaryBitmap (com.google.zxing.BinaryBitmap)1 PlanarYUVLuminanceSource (com.google.zxing.PlanarYUVLuminanceSource)1 ReaderException (com.google.zxing.ReaderException)1 Result (com.google.zxing.Result)1 HybridBinarizer (com.google.zxing.common.HybridBinarizer)1