[libcamera-devel] [PATCH v2 09/20] libcamera: camera: Zero streams before validate()
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Jul 10 10:57:48 CEST 2020
Hi Jacopo,
Thank you for the patch.
On Thu, Jul 09, 2020 at 10:41:17AM +0200, Jacopo Mondi wrote:
> The current implementation of the Camera::configure() method zeroes the
> stream pointers assigned to the StreamConfiguration items before calling
> the pipeline handler configure() operation, just after the
> CameraConfiguration has been validated.
>
> This discards the stream assignment performed at pipeline hander
> validation time, requiring platforms that need to perform that early
> assignment to maintain the association in place with custom data
> structures.
>
> To allow pipeline handlers to use StreamConfiguration::setStream() at
> validate() time, zero the stream assignment before calling validate().
>
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> src/libcamera/camera.cpp | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
> index 69a1b4428e3f..ca88c48b2830 100644
> --- a/src/libcamera/camera.cpp
> +++ b/src/libcamera/camera.cpp
> @@ -753,6 +753,9 @@ int Camera::configure(CameraConfiguration *config)
> if (ret < 0)
> return ret;
>
> + for (auto it : *config)
> + it.setStream(nullptr);
> +
> if (config->validate() != CameraConfiguration::Valid) {
> LOG(Camera, Error)
> << "Can't configure camera with invalid configuration";
> @@ -763,7 +766,6 @@ int Camera::configure(CameraConfiguration *config)
>
> for (unsigned int index = 0; index < config->size(); ++index) {
> StreamConfiguration &cfg = config->at(index);
> - cfg.setStream(nullptr);
> msg << " (" << index << ") " << cfg.toString();
> }
>
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list