Merge "graphics: reorder PixelFormat" into oc-dev

This commit is contained in:
Chia-I Wu 2017-04-27 16:54:03 +00:00 committed by Android (Google) Code Review
commit 0875af5cbe
2 changed files with 195 additions and 195 deletions

View file

@ -98,7 +98,7 @@ bd366b83d8d565d0e8bfabff3adfcab0259d75b4e2a9f8e1b91e11d1593a2ffb android.hardwar
17971eb8a482893dadcfc16e0583f492d42a034ef95d9b0b709417af30838396 android.hardware.graphics.allocator@2.0::IAllocator
60bf42a4898e4fb70dbd720b263aeafd7f35f5e1a5effeabb4d5d659878a5f18 android.hardware.graphics.bufferqueue@1.0::IGraphicBufferProducer
b8a75617b9ec12bea641f3a73d4025a33e8b9a2f9169dd46094af56adf9249c5 android.hardware.graphics.bufferqueue@1.0::IProducerListener
1ceedd1f8efa45aedce9578d629bbf0fa9dc56fdd86657c5d7e8641fc438f90a android.hardware.graphics.common@1.0::types
3e7aa6cbfca575299bc511f618373576def6e07c5bf082d2b2f638be0d0d347c android.hardware.graphics.common@1.0::types
b3aac6c3817f039964fcd62268274b3039e17bd7d0d5b40b4d1d1c7b19a1f866 android.hardware.graphics.composer@2.1::IComposer
b19d00eb8a8b3b0034a0321f22e8f32162bf4c2aebbce6da22c025f56e459ea2 android.hardware.graphics.composer@2.1::IComposerCallback
e992684e690dfe67a8cbeab5005bfa3fa9c2bf3d4b0b75657fb1f0c2d5dd2bae android.hardware.graphics.composer@2.1::IComposerClient

View file

@ -37,15 +37,10 @@ enum PixelFormat : int32_t {
RGB_565 = 4,
BGRA_8888 = 5,
/**
* The following formats use 10bit integers for R, G, and B and
* 2 bits for alpha. This is used to improve color precision on
* wide-color devices, e.g. Display-P3 or scRGB.
*
* When used with ANativeWindow, the dataSpace field describes the color
* space of the buffer.
*/
RGBA_1010102 = 0x2B,
/** Legacy formats (deprecated), used by ImageFormat.java */
YCBCR_422_SP = 0x10, // NV16
YCRCB_420_SP = 0x11, // NV21
YCBCR_422_I = 0x14, // YUY2
/**
* The following formats use a 16bit float per color component.
@ -55,100 +50,6 @@ enum PixelFormat : int32_t {
*/
RGBA_FP16 = 0x16,
/**
* 0x101 - 0x1FF
*
* This range is reserved for pixel formats that are specific to the HAL
* implementation. Implementations can use any value in this range to
* communicate video pixel formats between their HAL modules. These formats
* must not have an alpha channel. Additionally, an EGLimage created from a
* gralloc buffer of one of these formats must be supported for use with the
* GL_OES_EGL_image_external OpenGL ES extension.
*/
/**
* Android YUV format:
*
* This format is exposed outside of the HAL to software decoders and
* applications. EGLImageKHR must support it in conjunction with the
* OES_EGL_image_external extension.
*
* YV12 is a 4:2:0 YCrCb planar format comprised of a WxH Y plane followed
* by (W/2) x (H/2) Cr and Cb planes.
*
* This format assumes
* - an even width
* - an even height
* - a horizontal stride multiple of 16 pixels
* - a vertical stride equal to the height
*
* y_size = stride * height
* c_stride = ALIGN(stride/2, 16)
* c_size = c_stride * height/2
* size = y_size + c_size * 2
* cr_offset = y_size
* cb_offset = y_size + c_size
*
* When used with ANativeWindow, the dataSpace field describes the color
* space of the buffer.
*/
YV12 = 0x32315659, // YCrCb 4:2:0 Planar
/**
* Android Y8 format:
*
* This format is exposed outside of the HAL to the framework.
* The expected gralloc usage flags are SW_* and HW_CAMERA_*,
* and no other HW_ flags will be used.
*
* Y8 is a YUV planar format comprised of a WxH Y plane,
* with each pixel being represented by 8 bits.
*
* It is equivalent to just the Y plane from YV12.
*
* This format assumes
* - an even width
* - an even height
* - a horizontal stride multiple of 16 pixels
* - a vertical stride equal to the height
*
* size = stride * height
*
* When used with ANativeWindow, the dataSpace field describes the color
* space of the buffer.
*/
Y8 = 0x20203859,
/**
* Android Y16 format:
*
* This format is exposed outside of the HAL to the framework.
* The expected gralloc usage flags are SW_* and HW_CAMERA_*,
* and no other HW_ flags will be used.
*
* Y16 is a YUV planar format comprised of a WxH Y plane,
* with each pixel being represented by 16 bits.
*
* It is just like Y8, but has double the bits per pixel (little endian).
*
* This format assumes
* - an even width
* - an even height
* - a horizontal stride multiple of 16 pixels
* - a vertical stride equal to the height
* - strides are specified in pixels, not in bytes
*
* size = stride * height * 2
*
* When used with ANativeWindow, the dataSpace field describes the color
* space of the buffer, except that dataSpace field
* HAL_DATASPACE_DEPTH indicates that this buffer contains a depth
* image where each sample is a distance value measured by a depth camera,
* plus an associated confidence value.
*/
Y16 = 0x20363159,
/**
* Android RAW sensor format:
*
@ -195,6 +96,93 @@ enum PixelFormat : int32_t {
*/
RAW16 = 0x20,
/**
* Android binary blob graphics buffer format:
*
* This format is used to carry task-specific data which does not have a
* standard image structure. The details of the format are left to the two
* endpoints.
*
* A typical use case is for transporting JPEG-compressed images from the
* Camera HAL to the framework or to applications.
*
* Buffers of this format must have a height of 1, and width equal to their
* size in bytes.
*
* When used with ANativeWindow, the mapping of the dataSpace field to
* buffer contents for BLOB is as follows:
*
* dataSpace value | Buffer contents
* -------------------------------+-----------------------------------------
* HAL_DATASPACE_JFIF | An encoded JPEG image
* HAL_DATASPACE_DEPTH | An android_depth_points buffer
* HAL_DATASPACE_SENSOR | Sensor event data.
* Other | Unsupported
*
*/
BLOB = 0x21,
/**
* Android format indicating that the choice of format is entirely up to the
* device-specific Gralloc implementation.
*
* The Gralloc implementation should examine the usage bits passed in when
* allocating a buffer with this format, and it should derive the pixel
* format from those usage flags. This format will never be used with any
* of the GRALLOC_USAGE_SW_* usage flags.
*
* If a buffer of this format is to be used as an OpenGL ES texture, the
* framework will assume that sampling the texture will always return an
* alpha value of 1.0 (i.e. the buffer contains only opaque pixel values).
*
* When used with ANativeWindow, the dataSpace field describes the color
* space of the buffer.
*/
IMPLEMENTATION_DEFINED = 0x22,
/**
* Android flexible YCbCr 4:2:0 formats
*
* This format allows platforms to use an efficient YCbCr/YCrCb 4:2:0
* buffer layout, while still describing the general format in a
* layout-independent manner. While called YCbCr, it can be
* used to describe formats with either chromatic ordering, as well as
* whole planar or semiplanar layouts.
*
* struct android_ycbcr (below) is the the struct used to describe it.
*
* This format must be accepted by the gralloc module when
* USAGE_SW_WRITE_* or USAGE_SW_READ_* are set.
*
* This format is locked for use by gralloc's (*lock_ycbcr) method, and
* locking with the (*lock) method will return an error.
*
* When used with ANativeWindow, the dataSpace field describes the color
* space of the buffer.
*/
YCBCR_420_888 = 0x23,
/**
* Android opaque RAW format:
*
* This format is exposed outside of the camera HAL to applications.
*
* RAW_OPAQUE is a format for unprocessed raw image buffers coming from an
* image sensor. The actual structure of buffers of this format is
* implementation-dependent.
*
* This format must be accepted by the gralloc module when used with the
* following usage flags:
* - GRALLOC_USAGE_HW_CAMERA_*
* - GRALLOC_USAGE_SW_*
* - GRALLOC_USAGE_RENDERSCRIPT
*
* When used with ANativeWindow, the dataSpace field should be
* HAL_DATASPACE_ARBITRARY, as raw image sensor buffers require substantial
* extra metadata to define.
*/
RAW_OPAQUE = 0x24,
/**
* Android RAW10 format:
*
@ -299,93 +287,6 @@ enum PixelFormat : int32_t {
*/
RAW12 = 0x26,
/**
* Android opaque RAW format:
*
* This format is exposed outside of the camera HAL to applications.
*
* RAW_OPAQUE is a format for unprocessed raw image buffers coming from an
* image sensor. The actual structure of buffers of this format is
* implementation-dependent.
*
* This format must be accepted by the gralloc module when used with the
* following usage flags:
* - GRALLOC_USAGE_HW_CAMERA_*
* - GRALLOC_USAGE_SW_*
* - GRALLOC_USAGE_RENDERSCRIPT
*
* When used with ANativeWindow, the dataSpace field should be
* HAL_DATASPACE_ARBITRARY, as raw image sensor buffers require substantial
* extra metadata to define.
*/
RAW_OPAQUE = 0x24,
/**
* Android binary blob graphics buffer format:
*
* This format is used to carry task-specific data which does not have a
* standard image structure. The details of the format are left to the two
* endpoints.
*
* A typical use case is for transporting JPEG-compressed images from the
* Camera HAL to the framework or to applications.
*
* Buffers of this format must have a height of 1, and width equal to their
* size in bytes.
*
* When used with ANativeWindow, the mapping of the dataSpace field to
* buffer contents for BLOB is as follows:
*
* dataSpace value | Buffer contents
* -------------------------------+-----------------------------------------
* HAL_DATASPACE_JFIF | An encoded JPEG image
* HAL_DATASPACE_DEPTH | An android_depth_points buffer
* HAL_DATASPACE_SENSOR | Sensor event data.
* Other | Unsupported
*
*/
BLOB = 0x21,
/**
* Android format indicating that the choice of format is entirely up to the
* device-specific Gralloc implementation.
*
* The Gralloc implementation should examine the usage bits passed in when
* allocating a buffer with this format, and it should derive the pixel
* format from those usage flags. This format will never be used with any
* of the GRALLOC_USAGE_SW_* usage flags.
*
* If a buffer of this format is to be used as an OpenGL ES texture, the
* framework will assume that sampling the texture will always return an
* alpha value of 1.0 (i.e. the buffer contains only opaque pixel values).
*
* When used with ANativeWindow, the dataSpace field describes the color
* space of the buffer.
*/
IMPLEMENTATION_DEFINED = 0x22,
/**
* Android flexible YCbCr 4:2:0 formats
*
* This format allows platforms to use an efficient YCbCr/YCrCb 4:2:0
* buffer layout, while still describing the general format in a
* layout-independent manner. While called YCbCr, it can be
* used to describe formats with either chromatic ordering, as well as
* whole planar or semiplanar layouts.
*
* struct android_ycbcr (below) is the the struct used to describe it.
*
* This format must be accepted by the gralloc module when
* USAGE_SW_WRITE_* or USAGE_SW_READ_* are set.
*
* This format is locked for use by gralloc's (*lock_ycbcr) method, and
* locking with the (*lock) method will return an error.
*
* When used with ANativeWindow, the dataSpace field describes the color
* space of the buffer.
*/
YCBCR_420_888 = 0x23,
/**
* Android flexible YCbCr 4:2:2 formats
*
@ -442,11 +343,110 @@ enum PixelFormat : int32_t {
*/
FLEX_RGBA_8888 = 0x2A,
/** Legacy formats (deprecated), used by ImageFormat.java */
YCBCR_422_SP = 0x10, // NV16
YCRCB_420_SP = 0x11, // NV21
YCBCR_422_I = 0x14, // YUY2
/**
* The following formats use 10bit integers for R, G, and B and
* 2 bits for alpha. This is used to improve color precision on
* wide-color devices, e.g. Display-P3 or scRGB.
*
* When used with ANativeWindow, the dataSpace field describes the color
* space of the buffer.
*/
RGBA_1010102 = 0x2B,
JPEG = 0x100,
/**
* 0x101 - 0x1FF
*
* This range is reserved for pixel formats that are specific to the HAL
* implementation. Implementations can use any value in this range to
* communicate video pixel formats between their HAL modules. These formats
* must not have an alpha channel. Additionally, an EGLimage created from a
* gralloc buffer of one of these formats must be supported for use with the
* GL_OES_EGL_image_external OpenGL ES extension.
*/
/**
* Android Y8 format:
*
* This format is exposed outside of the HAL to the framework.
* The expected gralloc usage flags are SW_* and HW_CAMERA_*,
* and no other HW_ flags will be used.
*
* Y8 is a YUV planar format comprised of a WxH Y plane,
* with each pixel being represented by 8 bits.
*
* It is equivalent to just the Y plane from YV12.
*
* This format assumes
* - an even width
* - an even height
* - a horizontal stride multiple of 16 pixels
* - a vertical stride equal to the height
*
* size = stride * height
*
* When used with ANativeWindow, the dataSpace field describes the color
* space of the buffer.
*/
Y8 = 0x20203859,
/**
* Android Y16 format:
*
* This format is exposed outside of the HAL to the framework.
* The expected gralloc usage flags are SW_* and HW_CAMERA_*,
* and no other HW_ flags will be used.
*
* Y16 is a YUV planar format comprised of a WxH Y plane,
* with each pixel being represented by 16 bits.
*
* It is just like Y8, but has double the bits per pixel (little endian).
*
* This format assumes
* - an even width
* - an even height
* - a horizontal stride multiple of 16 pixels
* - a vertical stride equal to the height
* - strides are specified in pixels, not in bytes
*
* size = stride * height * 2
*
* When used with ANativeWindow, the dataSpace field describes the color
* space of the buffer, except that dataSpace field
* HAL_DATASPACE_DEPTH indicates that this buffer contains a depth
* image where each sample is a distance value measured by a depth camera,
* plus an associated confidence value.
*/
Y16 = 0x20363159,
/**
* Android YUV format:
*
* This format is exposed outside of the HAL to software decoders and
* applications. EGLImageKHR must support it in conjunction with the
* OES_EGL_image_external extension.
*
* YV12 is a 4:2:0 YCrCb planar format comprised of a WxH Y plane followed
* by (W/2) x (H/2) Cr and Cb planes.
*
* This format assumes
* - an even width
* - an even height
* - a horizontal stride multiple of 16 pixels
* - a vertical stride equal to the height
*
* y_size = stride * height
* c_stride = ALIGN(stride/2, 16)
* c_size = c_stride * height/2
* size = y_size + c_size * 2
* cr_offset = y_size
* cb_offset = y_size + c_size
*
* When used with ANativeWindow, the dataSpace field describes the color
* space of the buffer.
*/
YV12 = 0x32315659, // YCrCb 4:2:0 Planar
};
/**