summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChih-Chung Chang <chihchung@google.com>2009-09-18 18:37:44 +0800
committerChih-Chung Chang <chihchung@google.com>2009-09-21 04:38:19 +0800
commiteb68c46a40c773eb56ef7bcf8e7ece5c6a5a8d23 (patch)
tree313cb7279eb1e0b2d0ad5496e8a5b328cfc87ebc
parentd163f4babe101b89aaf322c34d3bafeae237f7da (diff)
downloadframeworks_base-eb68c46a40c773eb56ef7bcf8e7ece5c6a5a8d23.zip
frameworks_base-eb68c46a40c773eb56ef7bcf8e7ece5c6a5a8d23.tar.gz
frameworks_base-eb68c46a40c773eb56ef7bcf8e7ece5c6a5a8d23.tar.bz2
Fix 2092386: Support yuyv for camera preview format.
Change-Id: I3ef821fed2132a9faf92983324c7e036d0f5641e
-rw-r--r--api/current.xml11
-rw-r--r--core/java/android/hardware/Camera.java13
-rw-r--r--graphics/java/android/graphics/PixelFormat.java7
3 files changed, 30 insertions, 1 deletions
diff --git a/api/current.xml b/api/current.xml
index 0495764..bb13bf0 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -61135,6 +61135,17 @@
visibility="public"
>
</field>
+<field name="YCbCr_422_I"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="20"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="YCbCr_422_SP"
type="int"
transient="false"
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index 13effe0..a27307a 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -673,6 +673,7 @@ public class Camera {
// Formats for setPreviewFormat and setPictureFormat.
private static final String PIXEL_FORMAT_YUV422SP = "yuv422sp";
private static final String PIXEL_FORMAT_YUV420SP = "yuv420sp";
+ private static final String PIXEL_FORMAT_YUV422I = "yuv422i-yuyv";
private static final String PIXEL_FORMAT_RGB565 = "rgb565";
private static final String PIXEL_FORMAT_JPEG = "jpeg";
@@ -957,7 +958,13 @@ public class Camera {
*/
public List<Integer> getSupportedPreviewFormats() {
String str = get(KEY_PREVIEW_FORMAT + SUPPORTED_VALUES_SUFFIX);
- return splitInt(str);
+ ArrayList<Integer> formats = new ArrayList<Integer>();
+ for (String s : split(str)) {
+ int f = pixelFormatForCameraFormat(s);
+ if (f == PixelFormat.UNKNOWN) continue;
+ formats.add(f);
+ }
+ return formats;
}
/**
@@ -1036,6 +1043,7 @@ public class Camera {
switch(pixel_format) {
case PixelFormat.YCbCr_422_SP: return PIXEL_FORMAT_YUV422SP;
case PixelFormat.YCbCr_420_SP: return PIXEL_FORMAT_YUV420SP;
+ case PixelFormat.YCbCr_422_I: return PIXEL_FORMAT_YUV422I;
case PixelFormat.RGB_565: return PIXEL_FORMAT_RGB565;
case PixelFormat.JPEG: return PIXEL_FORMAT_JPEG;
default: return null;
@@ -1052,6 +1060,9 @@ public class Camera {
if (format.equals(PIXEL_FORMAT_YUV420SP))
return PixelFormat.YCbCr_420_SP;
+ if (format.equals(PIXEL_FORMAT_YUV422I))
+ return PixelFormat.YCbCr_422_I;
+
if (format.equals(PIXEL_FORMAT_RGB565))
return PixelFormat.RGB_565;
diff --git a/graphics/java/android/graphics/PixelFormat.java b/graphics/java/android/graphics/PixelFormat.java
index 221c2f8..c76cee7 100644
--- a/graphics/java/android/graphics/PixelFormat.java
+++ b/graphics/java/android/graphics/PixelFormat.java
@@ -60,6 +60,13 @@ public class PixelFormat
*/
public static final int YCbCr_420_SP= 0x11;
+ /** YCbCr format used for images, which uses YUYV (YUY2) encoding format.
+ * This is an alternative format for camera preview images. Whether this
+ * format is supported by the camera hardware can be determined by
+ * {@link android.hardware.Camera.Parameters#getSupportedPreviewFormats()}.
+ */
+ public static final int YCbCr_422_I = 0x14;
+
/**
* Encoded formats. These are not necessarily supported by the hardware.
*/