summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2013-12-10 16:07:43 -0800
committerSteve Kondik <shade@chemlab.org>2013-12-10 16:07:43 -0800
commit0df1be90307d969efe0efd713b79667e41f26729 (patch)
treea49d17de97192ffd69ce3c8f4f51e6da56a5d6b5
parent4370e3dd2ff3766eba012fe3b109b7ace4008a32 (diff)
downloadandroid_packages_apps_Gallery2-0df1be90307d969efe0efd713b79667e41f26729.tar.gz
android_packages_apps_Gallery2-0df1be90307d969efe0efd713b79667e41f26729.tar.bz2
android_packages_apps_Gallery2-0df1be90307d969efe0efd713b79667e41f26729.zip
camera: Fix various issues with HFR
Change-Id: Icca780589a8245219566c29f2cf3d3a1d4d8b3f7
-rw-r--r--src/com/android/camera/VideoModule.java32
1 files changed, 22 insertions, 10 deletions
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index 9f360f0ba..89bf38b6a 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -802,12 +802,14 @@ public class VideoModule implements CameraModule,
mEffectParameter = null;
}
// Read time lapse recording interval.
- if (ApiHelper.HAS_TIME_LAPSE_RECORDING) {
+ if (ApiHelper.HAS_TIME_LAPSE_RECORDING && !mEnableHFR) {
String frameIntervalStr = mPreferences.getString(
CameraSettings.KEY_VIDEO_TIME_LAPSE_FRAME_INTERVAL,
mActivity.getString(R.string.pref_video_time_lapse_frame_interval_default));
mTimeBetweenTimeLapseFrameCaptureMs = Integer.parseInt(frameIntervalStr);
mCaptureTimeLapse = (mTimeBetweenTimeLapseFrameCaptureMs != 0);
+ } else if (mEnableHFR) {
+ mCaptureTimeLapse = false;
}
// TODO: This should be checked instead directly +1000.
if (mCaptureTimeLapse) quality += 1000;
@@ -2114,15 +2116,17 @@ public class VideoModule implements CameraModule,
// 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);
+ if (Util.isVideoSnapshotSupported(mParameters)) {
+ 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);
}
- Log.v(TAG, "Video snapshot size is " + optimalSize.width + "x" +
- optimalSize.height);
// Set JPEG quality.
int jpegQuality = Integer.parseInt(mPreferences.getString(
@@ -2133,7 +2137,15 @@ public class VideoModule implements CameraModule,
// Enable HFR mode for WVGA
List<String> hfrModes = mParameters.getSupportedVideoHighFrameRateModes();
if (hfrModes != null) {
- mParameters.setVideoHighFrameRate(mEnableHFR ? hfrModes.get(hfrModes.size() - 1) : "off");
+ if (mEnableHFR) {
+ int hfr = Integer.parseInt(hfrModes.get(hfrModes.size() - 1));
+ mParameters.setVideoHighFrameRate(String.valueOf(hfr));
+ mUI.overrideSettings(CameraSettings.KEY_VIDEO_TIME_LAPSE_FRAME_INTERVAL, "0");
+
+ } else {
+ mParameters.setVideoHighFrameRate("off");
+ mUI.overrideSettings(CameraSettings.KEY_VIDEO_TIME_LAPSE_FRAME_INTERVAL, null);
+ }
}
// Set Video HDR.