diff options
author | Nipun Kwatra <nkwatra@google.com> | 2010-09-12 00:25:48 -0700 |
---|---|---|
committer | Nipun Kwatra <nkwatra@google.com> | 2010-09-13 15:23:56 -0700 |
commit | 035376721081f70aaf41d3da31aa50b479624ef0 (patch) | |
tree | 8cee2fc55009c9876352c9fe08c9693a708cd23c /src/com/android/camera | |
parent | 430d55def5d87aa9f35d135eac319eb905912693 (diff) | |
download | LegacyCamera-035376721081f70aaf41d3da31aa50b479624ef0.tar.gz LegacyCamera-035376721081f70aaf41d3da31aa50b479624ef0.tar.bz2 LegacyCamera-035376721081f70aaf41d3da31aa50b479624ef0.zip |
Filter out unsupported time lapse resolutions.
- Filtering out unsupported resolutions.
- Added getSupportedTimeLapseProfiles() to find the list of supported
time lapse profiles.
- added CamcorderProfile quality level values to the
pref_video_time_lapse_quality_entryvalues in arrays.xml
- removed getVideoTimeLapseQuality as can use the quality values directly.
- Use the newly added time lapse profiles for setting resolution values.
Change-Id: I0776a38e0a9bd19fff772878869e1c0504aadc8d
Diffstat (limited to 'src/com/android/camera')
-rw-r--r-- | src/com/android/camera/CameraSettings.java | 43 | ||||
-rw-r--r-- | src/com/android/camera/VideoCamera.java | 41 |
2 files changed, 20 insertions, 64 deletions
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index 6e0c7e14..34c38a52 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -55,16 +55,6 @@ public class CameraSettings { private static final String VIDEO_QUALITY_MMS = "mms"; private static final String VIDEO_QUALITY_YOUTUBE = "youtube"; - private static final String VIDEO_TIME_LAPSE_QUALITY_LOW= "low"; - private static final String VIDEO_TIME_LAPSE_QUALITY_HIGH= "high"; - private static final String VIDEO_TIME_LAPSE_QUALITY_720P = "720p"; - private static final String VIDEO_TIME_LAPSE_QUALITY_1080P = "1080p"; - - public static final int TIME_LAPSE_VIDEO_QUALITY_LOW = 1; - public static final int TIME_LAPSE_VIDEO_QUALITY_HIGH = 2; - public static final int TIME_LAPSE_VIDEO_QUALITY_720P = 3; - public static final int TIME_LAPSE_VIDEO_QUALITY_1080P = 4; - public static final String EXPOSURE_DEFAULT_VALUE = "0"; public static final int CURRENT_VERSION = 4; @@ -145,6 +135,7 @@ public class CameraSettings { private void initPreference(PreferenceGroup group) { ListPreference videoQuality = group.findPreference(KEY_VIDEO_QUALITY); + ListPreference videoTimeLapseQuality = group.findPreference(KEY_VIDEO_TIME_LAPSE_QUALITY); ListPreference pictureSize = group.findPreference(KEY_PICTURE_SIZE); ListPreference whiteBalance = group.findPreference(KEY_WHITE_BALANCE); ListPreference colorEffect = group.findPreference(KEY_COLOR_EFFECT); @@ -175,6 +166,9 @@ public class CameraSettings { } // Filter out unsupported settings / options + if (videoTimeLapseQuality != null) { + filterUnsupportedOptions(group, videoTimeLapseQuality, getSupportedTimeLapseProfiles()); + } if (pictureSize != null) { filterUnsupportedOptions(group, pictureSize, sizeListToStringList( mParameters.getSupportedPictureSizes())); @@ -207,6 +201,21 @@ public class CameraSettings { if (cameraId != null) buildCameraId(group, cameraId); } + private static List<String> getSupportedTimeLapseProfiles() { + ArrayList<String> supportedProfiles = new ArrayList<String>(); + if (CamcorderProfile.hasProfile(CamcorderProfile.QUALITY_TIME_LAPSE_480P)) { + supportedProfiles.add(Integer.toString(CamcorderProfile.QUALITY_TIME_LAPSE_480P)); + } + if (CamcorderProfile.hasProfile(CamcorderProfile.QUALITY_TIME_LAPSE_720P)) { + supportedProfiles.add(Integer.toString(CamcorderProfile.QUALITY_TIME_LAPSE_720P)); + } + if (CamcorderProfile.hasProfile(CamcorderProfile.QUALITY_TIME_LAPSE_1080P)) { + supportedProfiles.add(Integer.toString(CamcorderProfile.QUALITY_TIME_LAPSE_1080P)); + } + + return supportedProfiles; + } + private void buildExposureCompensation( PreferenceGroup group, ListPreference exposure) { int max = mParameters.getMaxExposureCompensation(); @@ -378,20 +387,6 @@ public class CameraSettings { quality) || VIDEO_QUALITY_HIGH.equals(quality); } - public static int getVideoTimeLapseQuality(String quality) { - if (VIDEO_TIME_LAPSE_QUALITY_LOW.equals(quality)) { - return TIME_LAPSE_VIDEO_QUALITY_LOW; - } else if (VIDEO_TIME_LAPSE_QUALITY_HIGH.equals(quality)) { - return TIME_LAPSE_VIDEO_QUALITY_HIGH; - } else if (VIDEO_TIME_LAPSE_QUALITY_720P.equals(quality)) { - return TIME_LAPSE_VIDEO_QUALITY_720P; - } else if (VIDEO_TIME_LAPSE_QUALITY_1080P.equals(quality)) { - return TIME_LAPSE_VIDEO_QUALITY_1080P; - } else { - throw new IllegalArgumentException("Unknown quality" + quality); - } - } - public static int getVidoeDurationInMillis(String quality) { if (VIDEO_QUALITY_MMS.equals(quality)) { return MMS_VIDEO_DURATION * 1000; diff --git a/src/com/android/camera/VideoCamera.java b/src/com/android/camera/VideoCamera.java index e57615d4..31a2aade 100644 --- a/src/com/android/camera/VideoCamera.java +++ b/src/com/android/camera/VideoCamera.java @@ -563,50 +563,11 @@ public class VideoCamera extends NoSearchActivity CameraSettings.KEY_VIDEO_TIME_LAPSE_QUALITY, CameraSettings.DEFAULT_VIDEO_TIME_LAPSE_QUALITY_VALUE); - int quality = CameraSettings.getVideoTimeLapseQuality(qualityStr); - - mProfile = CamcorderProfile.get( - (quality == CameraSettings.TIME_LAPSE_VIDEO_QUALITY_LOW) - ? CamcorderProfile.QUALITY_LOW - : CamcorderProfile.QUALITY_HIGH); + mProfile = CamcorderProfile.get(Integer.parseInt(qualityStr)); mMaxVideoDurationInMs = 0; // No limit mTimeBetweenTimeLapseFrameCaptureMs = 2000; - // TODO: Add new profiles for time lapse instead of setting mProfile - // values here. - switch (quality) { - case CameraSettings.TIME_LAPSE_VIDEO_QUALITY_LOW: - mUseStillCameraForTimeLapse = false; - mProfile.videoFrameWidth = 176; - mProfile.videoFrameHeight = 144; - mEncoderLevel = 0; - break; - - case CameraSettings.TIME_LAPSE_VIDEO_QUALITY_HIGH: - mUseStillCameraForTimeLapse = false; - mProfile.videoFrameWidth = 720; - mProfile.videoFrameHeight = 480; - mEncoderLevel = 0; - break; - - case CameraSettings.TIME_LAPSE_VIDEO_QUALITY_720P: - mUseStillCameraForTimeLapse = false; - mProfile.videoFrameWidth = 1280; - mProfile.videoFrameHeight = 720; - mProfile.videoBitRate = 20000000; - mEncoderLevel = 50; - break; - - case CameraSettings.TIME_LAPSE_VIDEO_QUALITY_1080P: - mUseStillCameraForTimeLapse = true; - mProfile.videoFrameWidth = 1920; - mProfile.videoFrameHeight = 1088; - mProfile.videoBitRate = 20000000; - mEncoderLevel = 50; - break; - } - if (mUseStillCameraForTimeLapse) { // When using still camera for capturing time lapse frames // mProfile.{videoFrameWidth,videoFrameHeight} may correspond to |