[libcamera-devel] [RFC PATCH v4 08/21] android: Add skeletal still and manual request templates
Paul Elder
paul.elder at ideasonboard.com
Fri Jul 16 12:56:18 CEST 2021
Add skeletal still and manual request templates so that we can expand
them for FULL support.
Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
---
src/android/camera_capabilities.cpp | 18 ++++++++++++++++++
src/android/camera_capabilities.h | 2 ++
src/android/camera_device.cpp | 7 +++++--
3 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/src/android/camera_capabilities.cpp b/src/android/camera_capabilities.cpp
index 09b3d82d..21e31cf2 100644
--- a/src/android/camera_capabilities.cpp
+++ b/src/android/camera_capabilities.cpp
@@ -1443,3 +1443,21 @@ std::unique_ptr<CameraMetadata> CameraCapabilities::requestTemplateVideo() const
return previewTemplate;
}
+
+std::unique_ptr<CameraMetadata> CameraCapabilities::requestTemplateStill() const
+{
+ std::unique_ptr<CameraMetadata> stillTemplate = requestTemplatePreview();
+ if (!stillTemplate)
+ return nullptr;
+
+ return stillTemplate;
+}
+
+std::unique_ptr<CameraMetadata> CameraCapabilities::requestTemplateManual() const
+{
+ std::unique_ptr<CameraMetadata> manualTemplate = requestTemplatePreview();
+ if (!manualTemplate)
+ return nullptr;
+
+ return manualTemplate;
+}
diff --git a/src/android/camera_capabilities.h b/src/android/camera_capabilities.h
index cf68539b..52a203c8 100644
--- a/src/android/camera_capabilities.h
+++ b/src/android/camera_capabilities.h
@@ -34,6 +34,8 @@ public:
std::unique_ptr<CameraMetadata> requestTemplatePreview() const;
std::unique_ptr<CameraMetadata> requestTemplateVideo() const;
+ std::unique_ptr<CameraMetadata> requestTemplateStill() const;
+ std::unique_ptr<CameraMetadata> requestTemplateManual() const;
private:
LIBCAMERA_DISABLE_COPY_AND_MOVE(CameraCapabilities)
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 678cde23..692d0a5b 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -487,7 +487,7 @@ const camera_metadata_t *CameraDevice::constructDefaultRequestSettings(int type)
* for the torch mode we currently do not support.
*/
captureIntent = ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE;
- requestTemplate = capabilities_.requestTemplatePreview();
+ requestTemplate = capabilities_.requestTemplateStill();
break;
case CAMERA3_TEMPLATE_VIDEO_RECORD:
captureIntent = ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_RECORD;
@@ -497,9 +497,12 @@ const camera_metadata_t *CameraDevice::constructDefaultRequestSettings(int type)
captureIntent = ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT;
requestTemplate = capabilities_.requestTemplateVideo();
break;
+ case CAMERA3_TEMPLATE_MANUAL:
+ captureIntent = ANDROID_CONTROL_CAPTURE_INTENT_MANUAL;
+ requestTemplate = capabilities_.requestTemplateManual();
+ break;
/* \todo Implement templates generation for the remaining use cases. */
case CAMERA3_TEMPLATE_ZERO_SHUTTER_LAG:
- case CAMERA3_TEMPLATE_MANUAL:
default:
LOG(HAL, Error) << "Unsupported template request type: " << type;
return nullptr;
--
2.27.0
More information about the libcamera-devel
mailing list