From 276874bf64419eb59df7bb9c71fa52364058e982 Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Tue, 14 Dec 2010 12:58:28 +0100 Subject: [PATCH] Landscape preview in landscape orientation on sdk>=8 --- AndroidCameraRecord.java | 3 ++- ...fferedImpl.java => AndroidCameraRecordAPI8Impl.java | 10 ++++++---- AndroidCameraRecordManager.java | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) rename AndroidCameraRecordBufferedImpl.java => AndroidCameraRecordAPI8Impl.java (86%) diff --git a/AndroidCameraRecord.java b/AndroidCameraRecord.java index 84ad452ef..1696efbc7 100644 --- a/AndroidCameraRecord.java +++ b/AndroidCameraRecord.java @@ -167,7 +167,8 @@ public abstract class AndroidCameraRecord { public void setDisplayOrientation(int rotation) { displayOrientation = rotation; } - + protected int getDisplayOrientation() {return displayOrientation;} + protected int rotateCapturedFrame() { if (params.videoDimensionsInverted) { return 1; // always rotate 90° diff --git a/AndroidCameraRecordBufferedImpl.java b/AndroidCameraRecordAPI8Impl.java similarity index 86% rename from AndroidCameraRecordBufferedImpl.java rename to AndroidCameraRecordAPI8Impl.java index ad54341c3..9655428db 100644 --- a/AndroidCameraRecordBufferedImpl.java +++ b/AndroidCameraRecordAPI8Impl.java @@ -30,10 +30,10 @@ import android.util.Log; * @author Guillaume Beraudo * */ -public class AndroidCameraRecordBufferedImpl extends AndroidCameraRecordImplAPI5 { +public class AndroidCameraRecordAPI8Impl extends AndroidCameraRecordImplAPI5 { - public AndroidCameraRecordBufferedImpl(RecorderParams parameters) { + public AndroidCameraRecordAPI8Impl(RecorderParams parameters) { super(parameters); } @@ -66,8 +66,10 @@ public class AndroidCameraRecordBufferedImpl extends AndroidCameraRecordImplAPI5 protected void onSettingCameraParameters(Parameters parameters) { super.onSettingCameraParameters(parameters); // Only on v8 hardware - camera.setDisplayOrientation(90 * rotateCapturedFrame()); + camera.setDisplayOrientation(90 * getPreviewCaptureRotation()); } - + private int getPreviewCaptureRotation() { + return (4 + 1 - displayOrientation) % 4; + } } diff --git a/AndroidCameraRecordManager.java b/AndroidCameraRecordManager.java index 023dcffa4..42a57806d 100644 --- a/AndroidCameraRecordManager.java +++ b/AndroidCameraRecordManager.java @@ -155,7 +155,7 @@ public class AndroidCameraRecordManager { parameters.rotation = rotation; parameters.surfaceView = surfaceView; if (version >= 8) { - recorder = new AndroidCameraRecordBufferedImpl(parameters); + recorder = new AndroidCameraRecordAPI8Impl(parameters); } else if (version >= 5) { recorder = new AndroidCameraRecordImplAPI5(parameters); } else {