summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2020-10-03 13:45:29 +0200
committerJacopo Mondi <jacopo@jmondi.org>2020-10-07 16:07:45 +0200
commit6c8837da5e8f9ba31aed338f8f6bbe578ddd638a (patch)
tree8d880c1a76cf140e5ddb64ecf8ba47c37e152e28 /src
parentfc1fcb5bc9c21cc497bb978b866885787587aa9f (diff)
android: camera_device: Make CameraStream configuration nicer
Loop over the CameraStream instances and use their interface to perform CameraStream configuration. Modify CameraStream::configure() to configure the android stream buffer count and to retrieve the StreamConfiguration by index instead of receiving it as a parameter. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src')
-rw-r--r--src/android/camera_device.cpp15
-rw-r--r--src/android/camera_stream.cpp11
-rw-r--r--src/android/camera_stream.h2
3 files changed, 14 insertions, 14 deletions
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 678dca60..1e2cbeeb 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -1287,17 +1287,12 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)
* StreamConfiguration and set the number of required buffers in
* the Android camera3_stream_t.
*/
- for (unsigned int i = 0; i < stream_list->num_streams; ++i) {
- camera3_stream_t *stream = stream_list->streams[i];
- CameraStream *cameraStream = static_cast<CameraStream *>(stream->priv);
- const StreamConfiguration &cfg = cameraStream->configuration();
-
- int ret = cameraStream->configure(cfg);
- if (ret)
+ for (CameraStream &cameraStream : streams_) {
+ int ret = cameraStream.configure();
+ if (ret) {
+ LOG(HAL, Error) << "Failed to configure camera stream";
return ret;
-
- /* Use the bufferCount confirmed by the validation process. */
- stream->max_buffers = cfg.bufferCount;
+ }
}
/*
diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp
index 3946a2cd..f899be4f 100644
--- a/src/android/camera_stream.cpp
+++ b/src/android/camera_stream.cpp
@@ -38,10 +38,15 @@ Stream *CameraStream::stream() const
return configuration().stream();
}
-int CameraStream::configure(const libcamera::StreamConfiguration &cfg)
+int CameraStream::configure()
{
- if (encoder_)
- return encoder_->configure(cfg);
+ if (encoder_) {
+ int ret = encoder_->configure(configuration());
+ if (ret)
+ return ret;
+ }
+
+ camera3Stream_->max_buffers = configuration().bufferCount;
return 0;
}
diff --git a/src/android/camera_stream.h b/src/android/camera_stream.h
index f46cfd60..4c51f0fb 100644
--- a/src/android/camera_stream.h
+++ b/src/android/camera_stream.h
@@ -114,7 +114,7 @@ public:
const libcamera::StreamConfiguration &configuration() const;
libcamera::Stream *stream() const;
- int configure(const libcamera::StreamConfiguration &cfg);
+ int configure();
int process(const libcamera::FrameBuffer &source,
MappedCamera3Buffer *dest, CameraMetadata *metadata);