Message ID | 20201006144432.22908-10-jacopo@jmondi.org |
---|---|
State | Accepted |
Headers | show |
Series |
|
Related | show |
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@ideasonboard.com> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@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); >
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);