Camera1 API: Support SW encoders for new camera HALs
- Support new set video format/dataspace command in camera service
- HALv3: Select gralloc usage flags based on format
- HALv1: Pass format command directly to HAL layer
- Use format/dataspace command in CameraSource
- Switch all API1 recording to use metadata mode
- Switch all >= HALv2 API1 recording to use kMetadataBufferTypeANWBuffer
Bug: 13222807
Change-Id: I2e609b92c65792611bb1dab09e0c41c363ebbc42
diff --git a/services/camera/libcameraservice/device2/Camera2Device.cpp b/services/camera/libcameraservice/device2/Camera2Device.cpp
index 7aba0ee..88f555b 100644
--- a/services/camera/libcameraservice/device2/Camera2Device.cpp
+++ b/services/camera/libcameraservice/device2/Camera2Device.cpp
@@ -315,7 +315,8 @@
status_t Camera2Device::getStreamInfo(int id,
- uint32_t *width, uint32_t *height, uint32_t *format) {
+ uint32_t *width, uint32_t *height,
+ uint32_t *format, android_dataspace *dataSpace) {
ATRACE_CALL();
ALOGV("%s: E", __FUNCTION__);
bool found = false;
@@ -336,6 +337,7 @@
if (width) *width = (*streamI)->getWidth();
if (height) *height = (*streamI)->getHeight();
if (format) *format = (*streamI)->getFormat();
+ if (dataSpace) *dataSpace = HAL_DATASPACE_UNKNOWN;
return OK;
}
diff --git a/services/camera/libcameraservice/device2/Camera2Device.h b/services/camera/libcameraservice/device2/Camera2Device.h
index a9affa2..a001a91 100644
--- a/services/camera/libcameraservice/device2/Camera2Device.h
+++ b/services/camera/libcameraservice/device2/Camera2Device.h
@@ -63,7 +63,8 @@
uint32_t width, uint32_t height, int format, int *id);
virtual status_t createReprocessStreamFromStream(int outputId, int *id);
virtual status_t getStreamInfo(int id,
- uint32_t *width, uint32_t *height, uint32_t *format);
+ uint32_t *width, uint32_t *height,
+ uint32_t *format, android_dataspace *dataSpace);
virtual status_t setStreamTransform(int id, int transform);
virtual status_t deleteStream(int id);
virtual status_t deleteReprocessStream(int id);