[libcamera-devel] [PATCH v2 09/13] android: camera_device: Make CameraStream configuration nicer
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Wed Oct 7 03:33:57 CEST 2020
Hi Jacopo,
Thank you for the patch.
On Tue, Oct 06, 2020 at 04:44:28PM +0200, Jacopo Mondi wrote:
> 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: Kieran Bingham <kieran.bingham at ideasonboard.com>
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> src/android/camera_device.cpp | 15 +++++----------
> src/android/camera_stream.cpp | 11 ++++++++---
> 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 678dca609003..1e2cbeeb92d1 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 3946a2cdf844..f899be4fe007 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 f46cfd605d03..4c51f0fb3393 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);
>
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list