From 104e0012f33dfac317a23511dd8b2e832da5af4d Mon Sep 17 00:00:00 2001 From: Angus Kong Date: Wed, 3 Apr 2013 16:56:18 -0700 Subject: Refresh parameters during recording. bug:8504803 Change-Id: I1a1838a8415ed4eccad8c76c37cd61d667d92d66 --- src/com/android/camera/CameraManager.java | 9 +++++++++ src/com/android/camera/NewVideoModule.java | 3 +++ src/com/android/camera/VideoModule.java | 3 +++ 3 files changed, 15 insertions(+) (limited to 'src') diff --git a/src/com/android/camera/CameraManager.java b/src/com/android/camera/CameraManager.java index b354654b6..af4b13f29 100644 --- a/src/com/android/camera/CameraManager.java +++ b/src/com/android/camera/CameraManager.java @@ -72,6 +72,7 @@ public class CameraManager { private static final int SET_PREVIEW_DISPLAY_ASYNC = 22; private static final int SET_PREVIEW_CALLBACK = 23; private static final int ENABLE_SHUTTER_SOUND = 24; + private static final int REFRESH_PARAMETERS = 25; private Handler mCameraHandler; private android.hardware.Camera mCamera; @@ -247,6 +248,10 @@ public class CameraManager { enableShutterSound((msg.arg1 == 1) ? true : false); return; + case REFRESH_PARAMETERS: + mParametersIsDirty = true; + return; + default: throw new RuntimeException("Invalid CameraProxy message=" + msg.what); } @@ -446,6 +451,10 @@ public class CameraManager { return mParameters; } + public void refreshParameters() { + mCameraHandler.sendEmptyMessage(REFRESH_PARAMETERS); + } + public void enableShutterSound(boolean enable) { mCameraHandler.obtainMessage( ENABLE_SHUTTER_SOUND, (enable ? 1 : 0), 0).sendToTarget(); diff --git a/src/com/android/camera/NewVideoModule.java b/src/com/android/camera/NewVideoModule.java index 3fc748593..f8c36c526 100644 --- a/src/com/android/camera/NewVideoModule.java +++ b/src/com/android/camera/NewVideoModule.java @@ -1507,6 +1507,9 @@ public class NewVideoModule implements NewCameraModule, AccessibilityUtils.makeAnnouncement(mUI.getShutterButton(), mActivity.getString(R.string.video_recording_started)); + // The parameters might have been altered by MediaRecorder already. + // We need to force mCameraDevice to refresh before getting it. + mCameraDevice.refreshParameters(); // The parameters may have been changed by MediaRecorder upon starting // recording. We need to alter the parameters if we support camcorder // zoom. To reduce latency when setting the parameters during zoom, we diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index 09a406ce5..2b30ba48f 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -1532,6 +1532,9 @@ public class VideoModule implements CameraModule, AccessibilityUtils.makeAnnouncement(mActivity.getShutterButton(), mActivity.getString(R.string.video_recording_started)); + // The parameters might have been altered by MediaRecorder already. + // We need to force mCameraDevice to refresh before getting it. + mActivity.mCameraDevice.refreshParameters(); // The parameters may have been changed by MediaRecorder upon starting // recording. We need to alter the parameters if we support camcorder // zoom. To reduce latency when setting the parameters during zoom, we -- cgit v1.2.3