summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/hardware/camera3.h82
-rw-r--r--include/hardware/camera_common.h184
-rw-r--r--include/hardware/keyguard.h13
-rw-r--r--include/hardware/keymaster_defs.h48
-rw-r--r--modules/camera/ExampleCamera.cpp2
-rw-r--r--modules/camera/Stream.cpp10
-rw-r--r--modules/gralloc/gralloc.cpp2
-rw-r--r--modules/usbcamera/Stream.cpp10
-rw-r--r--modules/usbcamera/UsbCamera.cpp2
-rw-r--r--tests/camera2/CameraMetadataTests.cpp2
-rw-r--r--tests/camera2/CameraMultiStreamTests.cpp2
-rw-r--r--tests/camera2/CameraStreamFixture.h1
-rw-r--r--tests/camera2/CameraStreamTests.cpp6
-rw-r--r--tests/camera2/camera2.cpp10
14 files changed, 305 insertions, 69 deletions
diff --git a/include/hardware/camera3.h b/include/hardware/camera3.h
index 5fcbf0f..284c78b 100644
--- a/include/hardware/camera3.h
+++ b/include/hardware/camera3.h
@@ -128,6 +128,13 @@
* 3.3: Minor revision of expanded-capability HAL:
*
* - OPAQUE and YUV reprocessing API updates.
+ *
+ * - Basic support for depth output buffers.
+ *
+ * - Addition of data_space field to camera3_stream_t.
+ *
+ * - Addition of rotation field to camera3_stream_t.
+ *
*/
/**
@@ -1365,6 +1372,25 @@ typedef enum camera3_stream_type {
} camera3_stream_type_t;
/**
+ * camera3_stream_rotation_t:
+ *
+ * The required counterclockwise rotation of camera stream.
+ */
+typedef enum camera3_stream_rotation {
+ /* No rotation */
+ CAMERA3_STREAM_ROTATION_0 = 0,
+
+ /* Rotate by 90 degree counterclockwise */
+ CAMERA3_STREAM_ROTATION_90 = 1,
+
+ /* Rotate by 180 degree counterclockwise */
+ CAMERA3_STREAM_ROTATION_180 = 2,
+
+ /* Rotate by 270 degree counterclockwise */
+ CAMERA3_STREAM_ROTATION_270 = 3
+} camera3_stream_rotation_t;
+
+/**
* camera3_stream_t:
*
* A handle to a single camera input or output stream. A stream is defined by
@@ -1482,6 +1508,59 @@ typedef struct camera3_stream {
*/
void *priv;
+ /**
+ * A field that describes the contents of the buffer. The format and buffer
+ * dimensions define the memory layout and structure of the stream buffers,
+ * while dataSpace defines the meaning of the data within the buffer.
+ *
+ * For most formats, dataSpace defines the color space of the image data.
+ * In addition, for some formats, dataSpace indicates whether image- or
+ * depth-based data is requested. See system/core/include/system/graphics.h
+ * for details of formats and valid dataSpace values for each format.
+ *
+ * Version information:
+ *
+ * < CAMERA_DEVICE_API_VERSION_3_3:
+ *
+ * Not defined and should not be accessed. dataSpace should be assumed to
+ * be HAL_DATASPACE_UNKNOWN, and the appropriate color space, etc, should
+ * be determined from the usage flags and the format.
+ *
+ * >= CAMERA_DEVICE_API_VERSION_3_3:
+ *
+ * Always set by the camera service. HAL must use this dataSpace to
+ * configure the stream to the correct colorspace, or to select between
+ * color and depth outputs if supported.
+ */
+ android_dataspace_t data_space;
+
+ /**
+ * The required output rotation of the stream, one of
+ * the camera3_stream_rotation_t values. This must be inspected by HAL along
+ * with stream width and height. For example, if the rotation is 90 degree
+ * and the stream width and height is 720 and 1280 respectively, camera service
+ * will supply buffers of size 720x1280, and HAL should capture a 1280x720 image
+ * and rotate the image by 90 degree counterclockwise.
+ *
+ * <= CAMERA_DEVICE_API_VERSION_3_2:
+ *
+ * Not defined and must not be accessed. HAL must not apply any rotation
+ * on output images.
+ *
+ * >= CAMERA_DEVICE_API_VERSION_3_3:
+ *
+ * Always set by camera service. HAL must inspect this field during stream
+ * configuration and returns -EINVAL if HAL cannot perform such rotation.
+ * HAL must always support CAMERA3_STREAM_ROTATION_0, so a
+ * configure_streams() call must not fail for unsupported rotation if
+ * rotation field of all streams is CAMERA3_STREAM_ROTATION_0.
+ *
+ */
+ int rotation;
+
+ /* reserved for future use */
+ void *reserved[7];
+
} camera3_stream_t;
/**
@@ -2536,6 +2615,9 @@ typedef struct camera3_device_ops {
*
* - Including too many output streams of a certain format.
*
+ * - Unsupported rotation configuration (only applies to
+ * devices with version >= CAMERA_DEVICE_API_VERSION_3_3)
+ *
* Note that the framework submitting an invalid stream
* configuration is not normal operation, since stream
* configurations are checked before configure. An invalid
diff --git a/include/hardware/camera_common.h b/include/hardware/camera_common.h
index 0a907b9..c2d4536 100644
--- a/include/hardware/camera_common.h
+++ b/include/hardware/camera_common.h
@@ -236,10 +236,12 @@ typedef struct camera_info {
const camera_metadata_t *static_camera_characteristics;
/**
- * The total resource "cost" of using this this camera, represented as
- * an integer value in the range [0, 100] where 100 represents total usage
- * of the shared resource that is the limiting bottleneck of the camera
- * subsystem.
+ * The total resource "cost" of using this camera, represented as an integer
+ * value in the range [0, 100] where 100 represents total usage of the shared
+ * resource that is the limiting bottleneck of the camera subsystem. This may
+ * be a very rough estimate, and is used as a hint to the camera service to
+ * determine when to disallow multiple applications from simultaneously
+ * opening different cameras advertised by the camera service.
*
* The camera service must be able to simultaneously open and use any
* combination of camera devices exposed by the HAL where the sum of
@@ -249,12 +251,112 @@ typedef struct camera_info {
* available in the configuration settings exposed for that device through
* the camera metadata.
*
- * Note: The camera service may still attempt to simultaneously open
- * combinations of camera devices with a total resource cost > 100. This
- * may succeed or fail. If this succeeds, combinations of configurations
- * that are not supported should fail during the configure calls. If the
- * total resource cost is <= 100, configuration should never fail due to
- * resource constraints.
+ * The camera service may still attempt to simultaneously open combinations
+ * of camera devices with a total resource cost > 100. This may succeed or
+ * fail. If this succeeds, combinations of configurations that are not
+ * supported due to resource constraints from having multiple open devices
+ * should fail during the configure calls. If the total resource cost is
+ * <= 100, open and configure should never fail for any stream configuration
+ * settings or other device capabilities that would normally succeed for a
+ * device when it is the only open camera device.
+ *
+ * This field will be used to determine whether background applications are
+ * allowed to use this camera device while other applications are using other
+ * camera devices. Note: multiple applications will never be allowed by the
+ * camera service to simultaneously open the same camera device.
+ *
+ * Example use cases:
+ *
+ * Ex. 1: Camera Device 0 = Back Camera
+ * Camera Device 1 = Front Camera
+ * - Using both camera devices causes a large framerate slowdown due to
+ * limited ISP bandwidth.
+ *
+ * Configuration:
+ *
+ * Camera Device 0 - resource_cost = 51
+ * conflicting_devices = null
+ * Camera Device 1 - resource_cost = 51
+ * conflicting_devices = null
+ *
+ * Result:
+ *
+ * Since the sum of the resource costs is > 100, if a higher-priority
+ * application has either device open, no lower-priority applications will be
+ * allowed by the camera service to open either device. If a lower-priority
+ * application is using a device that a higher-priority subsequently attempts
+ * to open, the lower-priority application will be forced to disconnect the
+ * the device.
+ *
+ * If the highest-priority application chooses, it may still attempt to open
+ * both devices (since these devices are not listed as conflicting in the
+ * conflicting_devices fields), but usage of these devices may fail in the
+ * open or configure calls.
+ *
+ * Ex. 2: Camera Device 0 = Left Back Camera
+ * Camera Device 1 = Right Back Camera
+ * Camera Device 2 = Combined stereo camera using both right and left
+ * back camera sensors used by devices 0, and 1
+ * Camera Device 3 = Front Camera
+ * - Due to do hardware constraints, up to two cameras may be open at once. The
+ * combined stereo camera may never be used at the same time as either of the
+ * two back camera devices (device 0, 1), and typically requires too much
+ * bandwidth to use at the same time as the front camera (device 3).
+ *
+ * Configuration:
+ *
+ * Camera Device 0 - resource_cost = 50
+ * conflicting_devices = { 2 }
+ * Camera Device 1 - resource_cost = 50
+ * conflicting_devices = { 2 }
+ * Camera Device 2 - resource_cost = 100
+ * conflicting_devices = { 0, 1 }
+ * Camera Device 3 - resource_cost = 50
+ * conflicting_devices = null
+ *
+ * Result:
+ *
+ * Based on the conflicting_devices fields, the camera service guarantees that
+ * the following sets of open devices will never be allowed: { 1, 2 }, { 0, 2 }.
+ *
+ * Based on the resource_cost fields, if a high-priority foreground application
+ * is using camera device 0, a background application would be allowed to open
+ * camera device 1 or 3 (but would be forced to disconnect it again if the
+ * foreground application opened another device).
+ *
+ * The highest priority application may still attempt to simultaneously open
+ * devices 0, 2, and 3, but the HAL may fail in open or configure calls for
+ * this combination.
+ *
+ * Ex. 3: Camera Device 0 = Back Camera
+ * Camera Device 1 = Front Camera
+ * Camera Device 2 = Low-power Front Camera that uses the same
+ * sensor as device 1, but only exposes image stream
+ * resolutions that can be used in low-power mode
+ * - Using both front cameras (device 1, 2) at the same time is impossible due
+ * a shared physical sensor. Using the back and "high-power" front camera
+ * (device 1) may be impossible for some stream configurations due to hardware
+ * limitations, but the "low-power" front camera option may always be used as
+ * it has special dedicated hardware.
+ *
+ * Configuration:
+ *
+ * Camera Device 0 - resource_cost = 100
+ * conflicting_devices = null
+ * Camera Device 1 - resource_cost = 100
+ * conflicting_devices = { 2 }
+ * Camera Device 2 - resource_cost = 0
+ * conflicting_devices = { 1 }
+ * Result:
+ *
+ * Based on the conflicting_devices fields, the camera service guarantees that
+ * the following sets of open devices will never be allowed: { 1, 2 }.
+ *
+ * Based on the resource_cost fields, only the highest priority application
+ * may attempt to open both device 0 and 1 at the same time. If a higher-priority
+ * application is not using device 1 or 2, a low-priority background application
+ * may open device 2 (but will be forced to disconnect it if a higher-priority
+ * application subsequently opens device 1 or 2).
*
* Version information (based on camera_module_t.common.module_api_version):
*
@@ -281,6 +383,9 @@ typedef struct camera_info {
* The camera service will never simultaneously open any of the devices
* in this list while this camera device is open.
*
+ * The strings pointed to in this field will not be cleaned up by the camera
+ * service, and must remain while this device is plugged in.
+ *
* Version information (based on camera_module_t.common.module_api_version):
*
* CAMERA_MODULE_API_VERSION_2_3 or lower:
@@ -391,7 +496,7 @@ typedef enum camera_device_status {
* device is present. The framework will not call set_torch_mode() to turn on
* torch mode of a camera device if the camera device is not present. At module
* load time, the framework will assume torch modes are in the
- * TORCH_MODE_STATUS_AVAILABLE state if the camera device is present and
+ * TORCH_MODE_STATUS_OFF state if the camera device is present and
* android.flash.info.available is reported as true via get_camera_info() call.
*
* The behaviors of the camera HAL module that the framework expects in the
@@ -400,7 +505,7 @@ typedef enum camera_device_status {
* After camera_module_callbacks::camera_device_status_change() is invoked
* to inform the framework that the camera device is present, the framework
* will assume the camera device's torch mode is in
- * TORCH_MODE_STATUS_AVAILABLE state. The camera HAL module does not need
+ * TORCH_MODE_STATUS_OFF state. The camera HAL module does not need
* to invoke camera_module_callbacks::torch_mode_status_change() unless the
* flash unit is unavailable to use by set_torch_mode().
*
@@ -416,47 +521,49 @@ typedef enum camera_device_status {
* 3. open() is called to open a camera device.
* The camera HAL module must invoke
* camera_module_callbacks::torch_mode_status_change() for all flash units
- * that have entered TORCH_MODE_STATUS_RESOURCE_BUSY state and can not be
+ * that have entered TORCH_MODE_STATUS_NOT_AVAILABLE state and can not be
* turned on by calling set_torch_mode() anymore due to this open() call.
*
* 4. close() is called to close a camera device.
* The camera HAL module must invoke
* camera_module_callbacks::torch_mode_status_change() for all flash units
- * that have entered TORCH_MODE_STATUS_AVAILABLE state and can be turned
+ * that have entered TORCH_MODE_STATUS_OFF state and can be turned
* on by calling set_torch_mode() again because of enough resources freed
* up by this close() call.
*
- * Note that the framework calling set_torch_mode() should not trigger any
- * callbacks except when HAL cannot keep multiple torch modes on
- * simultaneously. In that case, HAL must notify the framework that any
- * previously-on torch mode states have become TORCH_MODE_STATUS_OFF.
- *
+ * Note that the framework calling set_torch_mode() successfully must trigger
+ * TORCH_MODE_STATUS_OFF or TORCH_MODE_STATUS_ON callback for the given camera
+ * device. Additionally it must trigger TORCH_MODE_STATUS_OFF callbacks for
+ * other previously-on torch modes if HAL cannot keep multiple torch modes on
+ * simultaneously.
*/
typedef enum torch_mode_status {
- /**
- * The flash unit is available and the torch mode can be turned on by
- * calling set_torch_mode(). By default, the framework will assume all
- * flash units of all present camera devices are in this state if
- * android.flash.info.available is reported as true via get_camera_info()
- * call.
- */
- TORCH_MODE_STATUS_AVAILABLE = 0,
/**
* The flash unit is no longer available and the torch mode can not be
* turned on by calling set_torch_mode(). If the torch mode is on, it
* will be turned off by HAL before HAL calls torch_mode_status_change().
*/
- TORCH_MODE_STATUS_RESOURCE_BUSY = 1,
+ TORCH_MODE_STATUS_NOT_AVAILABLE = 0,
+
+ /**
+ * A torch mode has become off and available to be turned on via
+ * set_torch_mode(). This may happen in the following
+ * cases:
+ * 1. After the resources to turn on the torch mode have become available.
+ * 2. After set_torch_mode() is called to turn off the torch mode.
+ * 3. After the framework turned on the torch mode of some other camera
+ * device and HAL had to turn off the torch modes of any camera devices
+ * that were previously on.
+ */
+ TORCH_MODE_STATUS_AVAILABLE_OFF = 1,
/**
- * The previously-on torch mode has been turned off by HAL but the flash
- * unit is still available for set_torch_mode(). This may happen after the
- * framework turned on the torch mode of some other camera device and HAL
- * had to turn off the torch modes of any camera devices that were
- * previously on.
+ * A torch mode has become on and available to be turned off via
+ * set_torch_mode(). This can happen only after set_torch_mode() is called
+ * to turn on the torch mode.
*/
- TORCH_MODE_STATUS_OFF = 2,
+ TORCH_MODE_STATUS_AVAILABLE_ON = 2,
} torch_mode_status_t;
@@ -713,18 +820,19 @@ typedef struct camera_module {
* set_torch_mode:
*
* Turn on or off the torch mode of the flash unit associated with a given
- * camera ID. This function is blocking until the operation completes or
- * fails.
+ * camera ID. If the operation is successful, HAL must notify the framework
+ * torch state by invoking
+ * camera_module_callbacks.torch_mode_status_change() with the new state.
*
* The camera device has a higher priority accessing the flash unit. When
* there are any resource conflicts, such as open() is called to open a
* camera device, HAL module must notify the framework through
* camera_module_callbacks.torch_mode_status_change() that the
* torch mode has been turned off and the torch mode state has become
- * TORCH_MODE_STATUS_RESOURCE_BUSY. When resources to turn on torch mode
+ * TORCH_MODE_STATUS_NOT_AVAILABLE. When resources to turn on torch mode
* become available again, HAL module must notify the framework through
* camera_module_callbacks.torch_mode_status_change() that the torch mode
- * state has become available for set_torch_mode() to be called.
+ * state has become TORCH_MODE_STATUS_OFF for set_torch_mode() to be called.
*
* When the framework calls set_torch_mode() to turn on the torch mode of a
* flash unit, if HAL cannot keep multiple torch modes on simultaneously,
diff --git a/include/hardware/keyguard.h b/include/hardware/keyguard.h
index 2d65d4b..88dcad1 100644
--- a/include/hardware/keyguard.h
+++ b/include/hardware/keyguard.h
@@ -53,9 +53,9 @@ struct keyguard_device {
* Returns: 0 on success or an error code less than 0 on error.
* On error, enrolled_password_handle will not be allocated.
*/
- int (*enroll)(const struct keyguard_device *dev, const uint8_t *password_payload,
- const uint8_t password_payload_length, uint8_t **enrolled_password_handle,
- uint8_t *enrolled_password_handle_length);
+ int (*enroll)(const struct keyguard_device *dev, uint32_t uid,
+ const uint8_t *password_payload, size_t password_payload_length,
+ uint8_t **enrolled_password_handle, size_t *enrolled_password_handle_length);
/**
* Verifies provided_password matches enrolled_password_handle.
@@ -70,9 +70,10 @@ struct keyguard_device {
* Returns: 0 on success or an error code less than 0 on error
* On error, verification token will not be allocated
*/
- int (*verify)(const struct keyguard_device *dev, const uint8_t *enrolled_password_handle,
- const uint8_t enrolled_password_handle_length, const uint8_t *provided_password,
- const uint8_t provided_password_length, uint8_t **verification_token);
+ int (*verify)(const struct keyguard_device *dev, uint32_t uid,
+ const uint8_t *enrolled_password_handle, size_t enrolled_password_handle_length,
+ const uint8_t *provided_password, size_t provided_password_length,
+ uint8_t **verification_token, size_t *verification_token_length);
};
typedef struct keyguard_device keyguard_device_t;
diff --git a/include/hardware/keymaster_defs.h b/include/hardware/keymaster_defs.h
index 2e93dc6..a8f73ff 100644
--- a/include/hardware/keymaster_defs.h
+++ b/include/hardware/keymaster_defs.h
@@ -461,6 +461,54 @@ inline keymaster_key_param_t keymaster_param_date(keymaster_tag_t tag, uint64_t
return param;
}
+#define KEYMASTER_SIMPLE_COMPARE(a, b) (a < b) ? -1 : ((a > b) ? 1 : 0)
+inline int keymaster_param_compare(const keymaster_key_param_t* a, const keymaster_key_param_t* b) {
+ int retval = KEYMASTER_SIMPLE_COMPARE(a->tag, b->tag);
+ if (retval != 0)
+ return retval;
+
+ switch (keymaster_tag_get_type(a->tag)) {
+ case KM_INVALID:
+ case KM_BOOL:
+ return 0;
+ case KM_ENUM:
+ case KM_ENUM_REP:
+ return KEYMASTER_SIMPLE_COMPARE(a->enumerated, b->enumerated);
+ case KM_INT:
+ case KM_INT_REP:
+ return KEYMASTER_SIMPLE_COMPARE(a->integer, b->integer);
+ case KM_LONG:
+ return KEYMASTER_SIMPLE_COMPARE(a->long_integer, b->long_integer);
+ case KM_DATE:
+ return KEYMASTER_SIMPLE_COMPARE(a->date_time, b->date_time);
+ case KM_BIGNUM:
+ case KM_BYTES:
+ // Handle the empty cases.
+ if (a->blob.data_length != 0 && b->blob.data_length == 0)
+ return -1;
+ if (a->blob.data_length == 0 && b->blob.data_length == 0)
+ return 0;
+ if (a->blob.data_length == 0 && b->blob.data_length > 0)
+ return 1;
+
+ retval = memcmp(a->blob.data, b->blob.data, a->blob.data_length < b->blob.data_length
+ ? a->blob.data_length
+ : b->blob.data_length);
+ if (retval != 0)
+ return retval;
+ else if (a->blob.data_length != b->blob.data_length) {
+ // Equal up to the common length; longer one is larger.
+ if (a->blob.data_length < b->blob.data_length)
+ return -1;
+ if (a->blob.data_length > b->blob.data_length)
+ return 1;
+ };
+ }
+
+ return 0;
+}
+#undef KEYMASTER_SIMPLE_COMPARE
+
inline void keymaster_free_param_values(keymaster_key_param_t* param, size_t param_count) {
while (param_count-- > 0) {
switch (keymaster_tag_get_type(param->tag)) {
diff --git a/modules/camera/ExampleCamera.cpp b/modules/camera/ExampleCamera.cpp
index ca28b99..d873321 100644
--- a/modules/camera/ExampleCamera.cpp
+++ b/modules/camera/ExampleCamera.cpp
@@ -92,7 +92,7 @@ camera_metadata_t *ExampleCamera::initStaticInfo()
/* android.scaler */
int32_t android_scaler_available_formats[] = {
- HAL_PIXEL_FORMAT_RAW_SENSOR,
+ HAL_PIXEL_FORMAT_RAW16,
HAL_PIXEL_FORMAT_BLOB,
HAL_PIXEL_FORMAT_RGBA_8888,
HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED,
diff --git a/modules/camera/Stream.cpp b/modules/camera/Stream.cpp
index 90ad30b..e0099b6 100644
--- a/modules/camera/Stream.cpp
+++ b/modules/camera/Stream.cpp
@@ -117,10 +117,6 @@ const char* Stream::formatToString(int format)
return "RGB 888";
case HAL_PIXEL_FORMAT_RGB_565:
return "RGB 565";
- case HAL_PIXEL_FORMAT_sRGB_A_8888:
- return "sRGB A 8888";
- case HAL_PIXEL_FORMAT_sRGB_X_8888:
- return "sRGB B 8888";
case HAL_PIXEL_FORMAT_Y8:
return "Y8";
case HAL_PIXEL_FORMAT_Y16:
@@ -133,8 +129,10 @@ const char* Stream::formatToString(int format)
return "NV21";
case HAL_PIXEL_FORMAT_YCbCr_422_I:
return "YUY2";
- case HAL_PIXEL_FORMAT_RAW_SENSOR:
- return "RAW SENSOR";
+ case HAL_PIXEL_FORMAT_RAW10:
+ return "RAW10";
+ case HAL_PIXEL_FORMAT_RAW16:
+ return "RAW16";
case HAL_PIXEL_FORMAT_BLOB:
return "BLOB";
case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED:
diff --git a/modules/gralloc/gralloc.cpp b/modules/gralloc/gralloc.cpp
index bdc789d..a9fbc80 100644
--- a/modules/gralloc/gralloc.cpp
+++ b/modules/gralloc/gralloc.cpp
@@ -217,7 +217,7 @@ static int gralloc_alloc(alloc_device_t* dev,
bpp = 3;
break;
case HAL_PIXEL_FORMAT_RGB_565:
- case HAL_PIXEL_FORMAT_RAW_SENSOR:
+ case HAL_PIXEL_FORMAT_RAW16:
bpp = 2;
break;
default:
diff --git a/modules/usbcamera/Stream.cpp b/modules/usbcamera/Stream.cpp
index a3fefa3..f56866e 100644
--- a/modules/usbcamera/Stream.cpp
+++ b/modules/usbcamera/Stream.cpp
@@ -98,10 +98,6 @@ const char* Stream::formatToString(int format) {
return "RGB 888";
case HAL_PIXEL_FORMAT_RGB_565:
return "RGB 565";
- case HAL_PIXEL_FORMAT_sRGB_A_8888:
- return "sRGB A 8888";
- case HAL_PIXEL_FORMAT_sRGB_X_8888:
- return "sRGB B 8888";
case HAL_PIXEL_FORMAT_Y8:
return "Y8";
case HAL_PIXEL_FORMAT_Y16:
@@ -114,8 +110,10 @@ const char* Stream::formatToString(int format) {
return "NV21";
case HAL_PIXEL_FORMAT_YCbCr_422_I:
return "YUY2";
- case HAL_PIXEL_FORMAT_RAW_SENSOR:
- return "RAW SENSOR";
+ case HAL_PIXEL_FORMAT_RAW10:
+ return "RAW10";
+ case HAL_PIXEL_FORMAT_RAW16:
+ return "RAW16";
case HAL_PIXEL_FORMAT_BLOB:
return "BLOB";
case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED:
diff --git a/modules/usbcamera/UsbCamera.cpp b/modules/usbcamera/UsbCamera.cpp
index ded3e92..82a1145 100644
--- a/modules/usbcamera/UsbCamera.cpp
+++ b/modules/usbcamera/UsbCamera.cpp
@@ -94,7 +94,7 @@ int UsbCamera::initStaticInfo() {
/* android.scaler */
int32_t android_scaler_available_formats[] = {
- HAL_PIXEL_FORMAT_RAW_SENSOR,
+ HAL_PIXEL_FORMAT_RAW16,
HAL_PIXEL_FORMAT_BLOB,
HAL_PIXEL_FORMAT_RGBA_8888,
HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED,
diff --git a/tests/camera2/CameraMetadataTests.cpp b/tests/camera2/CameraMetadataTests.cpp
index 94fa911..da5b748 100644
--- a/tests/camera2/CameraMetadataTests.cpp
+++ b/tests/camera2/CameraMetadataTests.cpp
@@ -169,7 +169,7 @@ TEST_F(CameraMetadataTest, SaneResolutions) {
if (rawResolutionsCount > 0) {
EXPECT_TRUE(
HasElementInArrayFromStaticTag(ANDROID_SCALER_AVAILABLE_FORMATS,
- HAL_PIXEL_FORMAT_RAW_SENSOR));
+ HAL_PIXEL_FORMAT_RAW16));
}
// Required processed sizes.
diff --git a/tests/camera2/CameraMultiStreamTests.cpp b/tests/camera2/CameraMultiStreamTests.cpp
index df8e623..1edc28e 100644
--- a/tests/camera2/CameraMultiStreamTests.cpp
+++ b/tests/camera2/CameraMultiStreamTests.cpp
@@ -208,7 +208,7 @@ public:
void SetUp() {
ASSERT_EQ(OK,
mDevice->createStream(mNativeWindow,
- mWidth, mHeight, mFormat,
+ mWidth, mHeight, mFormat, HAL_DATASPACE_UNKNOWN,
&mStreamId));
ASSERT_NE(-1, mStreamId);
diff --git a/tests/camera2/CameraStreamFixture.h b/tests/camera2/CameraStreamFixture.h
index cc13169..ff110d8 100644
--- a/tests/camera2/CameraStreamFixture.h
+++ b/tests/camera2/CameraStreamFixture.h
@@ -257,6 +257,7 @@ protected:
ASSERT_EQ(OK,
device->createStream(mNativeWindow,
mWidth, mHeight, format,
+ HAL_DATASPACE_UNKNOWN,
&mStreamId));
ASSERT_NE(-1, mStreamId);
diff --git a/tests/camera2/CameraStreamTests.cpp b/tests/camera2/CameraStreamTests.cpp
index 69ee274..a3b8c47 100644
--- a/tests/camera2/CameraStreamTests.cpp
+++ b/tests/camera2/CameraStreamTests.cpp
@@ -166,15 +166,15 @@ static CameraStreamParams TestParameters[] = {
/*mHeapCount*/ 3
},
{
- /*mFormat*/ HAL_PIXEL_FORMAT_RAW_SENSOR,
+ /*mFormat*/ HAL_PIXEL_FORMAT_RAW16,
/*mHeapCount*/ 1
},
{
- /*mFormat*/ HAL_PIXEL_FORMAT_RAW_SENSOR,
+ /*mFormat*/ HAL_PIXEL_FORMAT_RAW16,
/*mHeapCount*/ 2
},
{
- /*mFormat*/ HAL_PIXEL_FORMAT_RAW_SENSOR,
+ /*mFormat*/ HAL_PIXEL_FORMAT_RAW16,
/*mHeapCount*/ 3
},
};
diff --git a/tests/camera2/camera2.cpp b/tests/camera2/camera2.cpp
index 72b7b61..8d637d4 100644
--- a/tests/camera2/camera2.cpp
+++ b/tests/camera2/camera2.cpp
@@ -305,7 +305,7 @@ class Camera2Test: public testing::Test {
}
camera_metadata_ro_entry_t availableSizes;
- if (format == HAL_PIXEL_FORMAT_RAW_SENSOR) {
+ if (format == HAL_PIXEL_FORMAT_RAW16) {
res = find_camera_metadata_ro_entry(mStaticInfo,
ANDROID_SCALER_AVAILABLE_RAW_SIZES,
&availableSizes);
@@ -445,7 +445,7 @@ TEST_F(Camera2Test, Capture1Raw) {
const int32_t *rawResolutions;
size_t rawResolutionsCount;
- int format = HAL_PIXEL_FORMAT_RAW_SENSOR;
+ int format = HAL_PIXEL_FORMAT_RAW16;
getResolutionList(format,
&rawResolutions, &rawResolutionsCount);
@@ -457,7 +457,7 @@ TEST_F(Camera2Test, Capture1Raw) {
<< test_info->test_case_name() << "."
<< test_info->name()
<< " because the optional format was not available: "
- << "RAW_SENSOR" << std::endl;
+ << "RAW16" << std::endl;
return;
}
@@ -581,7 +581,7 @@ TEST_F(Camera2Test, CaptureBurstRaw) {
const int32_t *rawResolutions;
size_t rawResolutionsCount;
- int format = HAL_PIXEL_FORMAT_RAW_SENSOR;
+ int format = HAL_PIXEL_FORMAT_RAW16;
getResolutionList(format,
&rawResolutions, &rawResolutionsCount);
@@ -593,7 +593,7 @@ TEST_F(Camera2Test, CaptureBurstRaw) {
<< test_info->test_case_name() << "."
<< test_info->name()
<< " because the optional format was not available: "
- << "RAW_SENSOR" << std::endl;
+ << "RAW16" << std::endl;
return;
}