diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2020-10-03 13:45:29 +0200 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2020-10-07 16:07:45 +0200 |
commit | 6c8837da5e8f9ba31aed338f8f6bbe578ddd638a (patch) | |
tree | 8d880c1a76cf140e5ddb64ecf8ba47c37e152e28 | |
parent | fc1fcb5bc9c21cc497bb978b866885787587aa9f (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>
-rw-r--r-- | src/android/camera_device.cpp | 15 | ||||
-rw-r--r-- | src/android/camera_stream.cpp | 11 | ||||
-rw-r--r-- | src/android/camera_stream.h | 2 |
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); |