diff options
| author | Chih-Chung Chang <chihchung@google.com> | 2009-09-18 18:37:44 +0800 |
|---|---|---|
| committer | Chih-Chung Chang <chihchung@google.com> | 2009-09-21 04:38:19 +0800 |
| commit | eb68c46a40c773eb56ef7bcf8e7ece5c6a5a8d23 (patch) | |
| tree | 313cb7279eb1e0b2d0ad5496e8a5b328cfc87ebc | |
| parent | d163f4babe101b89aaf322c34d3bafeae237f7da (diff) | |
| download | frameworks_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.xml | 11 | ||||
| -rw-r--r-- | core/java/android/hardware/Camera.java | 13 | ||||
| -rw-r--r-- | graphics/java/android/graphics/PixelFormat.java | 7 |
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. */ |
