summaryrefslogtreecommitdiffstats
path: root/graphics
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2010-07-14 16:39:42 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-07-14 16:39:42 -0700
commit172b79e9df9a5689681cf0355921ec2445bc9f6f (patch)
tree9c5d643f03c7a8b170945dbf0ae8e36fc8070e62 /graphics
parent0d60b96a8fecae55907bb07f49a267c23965617e (diff)
parent98704f14eaeef6c9bcb73fea162f4941dd9bbd87 (diff)
downloadframeworks_base-172b79e9df9a5689681cf0355921ec2445bc9f6f.zip
frameworks_base-172b79e9df9a5689681cf0355921ec2445bc9f6f.tar.gz
frameworks_base-172b79e9df9a5689681cf0355921ec2445bc9f6f.tar.bz2
am 98704f14: am 38eea8bf: Merge "Remove the YV16 format for simplicity\'s sake." into gingerbread
Merge commit '98704f14eaeef6c9bcb73fea162f4941dd9bbd87' * commit '98704f14eaeef6c9bcb73fea162f4941dd9bbd87': Remove the YV16 format for simplicity's sake.
Diffstat (limited to 'graphics')
-rw-r--r--graphics/java/android/graphics/ImageFormat.java121
1 files changed, 72 insertions, 49 deletions
diff --git a/graphics/java/android/graphics/ImageFormat.java b/graphics/java/android/graphics/ImageFormat.java
index f126374..3f9f961 100644
--- a/graphics/java/android/graphics/ImageFormat.java
+++ b/graphics/java/android/graphics/ImageFormat.java
@@ -16,61 +16,84 @@
package android.graphics;
-public class ImageFormat
-{
- /* these constants are chosen to be binary compatible with
- * their previous location in PixelFormat.java */
-
- public static final int UNKNOWN = 0;
+public class ImageFormat {
+ /*
+ * these constants are chosen to be binary compatible with their previous
+ * location in PixelFormat.java
+ */
- /** RGB format used for pictures encoded as RGB_565
- * see {@link android.hardware.Camera.Parameters#setPictureFormat(int)}.
- */
- public static final int RGB_565 = 4;
+ public static final int UNKNOWN = 0;
- /**
- * YCbCr formats, used for video. These are not necessarily supported
- * by the hardware.
- */
- public static final int NV16 = 0x10;
+ /**
+ * RGB format used for pictures encoded as RGB_565 see
+ * {@link android.hardware.Camera.Parameters#setPictureFormat(int)}.
+ */
+ public static final int RGB_565 = 4;
-
- /** YCrCb format used for images, which uses the NV21 encoding format.
- * This is the default format for camera preview images, when not
- * otherwise set with
- * {@link android.hardware.Camera.Parameters#setPreviewFormat(int)}.
- */
- public static final int NV21 = 0x11;
+ /**
+ * Planar 4:2:0 YCrCb format. This format assumes an horizontal stride of 16
+ * pixels for all planes and an implicit vertical stride of the image
+ * height's next multiple of two.
+ * y_size = stride * ALIGN(height, 2)
+ * c_size = ALIGN(stride/2, 16) * height
+ * size = y_size + c_size * 2
+ * cr_offset = y_size
+ * cb_offset = y_size + c_size
+ *
+ * Whether this format is supported by the camera hardware can be determined
+ * by
+ * {@link android.hardware.Camera.Parameters#getSupportedPreviewFormats()}.
+ */
+ public static final int YV12 = 0x32315659;
+ /**
+ * YCbCr format, used for video. Whether this format is supported by the
+ * camera hardware can be determined by
+ * {@link android.hardware.Camera.Parameters#getSupportedPreviewFormats()}.
+ */
+ public static final int NV16 = 0x10;
- /** 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 YUY2 = 0x14;
+ /**
+ * YCrCb format used for images, which uses the NV21 encoding format. This
+ * is the default format for camera preview images, when not otherwise set
+ * with {@link android.hardware.Camera.Parameters#setPreviewFormat(int)}.
+ */
+ public static final int NV21 = 0x11;
-
- /**
- * Encoded formats. These are not necessarily supported by the hardware.
- */
- public static final int JPEG = 0x100;
+ /**
+ * 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 YUY2 = 0x14;
+ /**
+ * Encoded formats. These are not necessarily supported by the hardware.
+ */
+ public static final int JPEG = 0x100;
- /**
- * Use this function to retrieve the number of bits per pixel of
- * an ImageFormat.
- * @param format
- * @return the number of bits per pixel of the given format or -1 if the
- * format doesn't exist or is not supported.
- */
- public static int getBitsPerPixel(int format) {
- switch (format) {
- case RGB_565: return 16;
- case NV16: return 16;
- case NV21: return 12;
- case YUY2: return 16;
- }
- return -1;
- }
+ /**
+ * Use this function to retrieve the number of bits per pixel of an
+ * ImageFormat.
+ *
+ * @param format
+ * @return the number of bits per pixel of the given format or -1 if the
+ * format doesn't exist or is not supported.
+ */
+ public static int getBitsPerPixel(int format) {
+ switch (format) {
+ case RGB_565:
+ return 16;
+ case NV16:
+ return 16;
+ case YUY2:
+ return 16;
+ case YV12:
+ return 12;
+ case NV21:
+ return 12;
+ }
+ return -1;
+ }
}