summaryrefslogtreecommitdiffstats
path: root/core/java/android/hardware
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2010-09-21 16:23:48 -0700
committerJames Dong <jdong@google.com>2010-12-01 15:38:06 -0800
commitdd0b16c26834d9a58b9865a467c7a26ea14482f3 (patch)
tree21b183a13133ff571e79d260f4e5266567336748 /core/java/android/hardware
parent407b4e91fe7627545b8110e683953353236b4543 (diff)
downloadframeworks_base-dd0b16c26834d9a58b9865a467c7a26ea14482f3.zip
frameworks_base-dd0b16c26834d9a58b9865a467c7a26ea14482f3.tar.gz
frameworks_base-dd0b16c26834d9a58b9865a467c7a26ea14482f3.tar.bz2
Add two methods to Camera.java
o getSupportedVideoSizes() allows us to retrieve the list of the supported video sizes from the camera o getPreferredPreviewSizeForVideoRecording() allows us to retrieve the preferred/recommended preview size for camcorder applications bug - 3237021 Change-Id: I52fc9938d389bb411406320b0309775b6f44f4dc
Diffstat (limited to 'core/java/android/hardware')
-rw-r--r--core/java/android/hardware/Camera.java45
1 files changed, 44 insertions, 1 deletions
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index f3b2c81..fe4b900 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -1021,6 +1021,9 @@ public class Camera {
private static final String KEY_ZOOM_SUPPORTED = "zoom-supported";
private static final String KEY_SMOOTH_ZOOM_SUPPORTED = "smooth-zoom-supported";
private static final String KEY_FOCUS_DISTANCES = "focus-distances";
+ private static final String KEY_VIDEO_SIZE = "video-size";
+ private static final String KEY_PREFERRED_PREVIEW_SIZE_FOR_VIDEO =
+ "preferred-preview-size-for-video";
// Parameter key suffix for supported values.
private static final String SUPPORTED_VALUES_SUFFIX = "-values";
@@ -1398,7 +1401,7 @@ public class Camera {
/**
* Returns the dimensions setting for preview pictures.
*
- * @return a Size object with the height and width setting
+ * @return a Size object with the width and height setting
* for the preview picture
*/
public Size getPreviewSize() {
@@ -1418,6 +1421,46 @@ public class Camera {
}
/**
+ * Gets the supported video frame sizes that can be used by
+ * MediaRecorder.
+ *
+ * If the returned list is not null, the returned list will contain at
+ * least one Size and one of the sizes in the returned list must be
+ * passed to MediaRecorder.setVideoSize() for camcorder application if
+ * camera is used as the video source. In this case, the size of the
+ * preview can be different from the resolution of the recorded video
+ * during video recording.
+ *
+ * @return a list of Size object if camera has separate preview and
+ * video output; otherwise, null is returned.
+ * @see #getPreferredPreviewSizeForVideo()
+ */
+ public List<Size> getSupportedVideoSizes() {
+ String str = get(KEY_VIDEO_SIZE + SUPPORTED_VALUES_SUFFIX);
+ return splitSize(str);
+ }
+
+ /**
+ * Returns the preferred or recommended preview size (width and height)
+ * in pixels for video recording. Camcorder applications should
+ * set the preview size to a value that is not larger than the
+ * preferred preview size. In other words, the product of the width
+ * and height of the preview size should not be larger than that of
+ * the preferred preview size. In addition, we recommend to choose a
+ * preview size that has the same aspect ratio as the resolution of
+ * video to be recorded.
+ *
+ * @return the preferred preview size (width and height) in pixels for
+ * video recording if getSupportedVideoSizes() does not return
+ * null; otherwise, null is returned.
+ * @see #getSupportedVideoSizes()
+ */
+ public Size getPreferredPreviewSizeForVideo() {
+ String pair = get(KEY_PREFERRED_PREVIEW_SIZE_FOR_VIDEO);
+ return strToSize(pair);
+ }
+
+ /**
* Sets the dimensions for EXIF thumbnail in Jpeg picture. If
* applications set both width and height to 0, EXIF will not contain
* thumbnail.