[PATCH v4 09/20] libcamera: converter: Add function to check if a stream was configured
Jacopo Mondi
jacopo.mondi at ideasonboard.com
Mon Dec 16 19:08:46 CET 2024
Hi Stefan
On Mon, Dec 16, 2024 at 04:40:49PM +0100, Stefan Klug wrote:
> Add a isConfigured() function to be able to check if a given stream was
> configured in the converter. This is useful in pipelines to either query
> device or stream specific crop bounds depending on whether the stream is
> configured or not.
>
> Signed-off-by: Stefan Klug <stefan.klug at ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
Thanks
j
>
> ---
>
> Changes in v4:
> - Added this patch
> ---
> include/libcamera/internal/converter.h | 1 +
> include/libcamera/internal/converter/converter_v4l2_m2m.h | 1 +
> src/libcamera/converter.cpp | 7 +++++++
> src/libcamera/converter/converter_v4l2_m2m.cpp | 8 ++++++++
> 4 files changed, 17 insertions(+)
>
> diff --git a/include/libcamera/internal/converter.h b/include/libcamera/internal/converter.h
> index 04187a2a96e8..afea4624041b 100644
> --- a/include/libcamera/internal/converter.h
> +++ b/include/libcamera/internal/converter.h
> @@ -56,6 +56,7 @@ public:
>
> virtual int configure(const StreamConfiguration &inputCfg,
> const std::vector<std::reference_wrapper<StreamConfiguration>> &outputCfgs) = 0;
> + virtual bool isConfigured(const Stream *stream) const = 0;
> virtual int exportBuffers(const Stream *stream, unsigned int count,
> std::vector<std::unique_ptr<FrameBuffer>> *buffers) = 0;
>
> diff --git a/include/libcamera/internal/converter/converter_v4l2_m2m.h b/include/libcamera/internal/converter/converter_v4l2_m2m.h
> index 402a803959b9..1ccbfc7c2d4e 100644
> --- a/include/libcamera/internal/converter/converter_v4l2_m2m.h
> +++ b/include/libcamera/internal/converter/converter_v4l2_m2m.h
> @@ -50,6 +50,7 @@ public:
> int configure(const StreamConfiguration &inputCfg,
> const std::vector<std::reference_wrapper<StreamConfiguration>>
> &outputCfg) override;
> + bool isConfigured(const Stream *stream) const override;
> int exportBuffers(const Stream *stream, unsigned int count,
> std::vector<std::unique_ptr<FrameBuffer>> *buffers) override;
>
> diff --git a/src/libcamera/converter.cpp b/src/libcamera/converter.cpp
> index 73c02fdcf4bb..09ebf4f57d12 100644
> --- a/src/libcamera/converter.cpp
> +++ b/src/libcamera/converter.cpp
> @@ -126,6 +126,13 @@ Converter::~Converter()
> * \return 0 on success or a negative error code otherwise
> */
>
> +/**
> + * \fn Converter::isConfigured()
> + * \brief Check if a given stream is configured
> + * \param[in] stream The output stream
> + * \return True if the \a stream is configured or false otherwise
> + */
> +
> /**
> * \fn Converter::exportBuffers()
> * \brief Export buffers from the converter device
> diff --git a/src/libcamera/converter/converter_v4l2_m2m.cpp b/src/libcamera/converter/converter_v4l2_m2m.cpp
> index 342aa32dab52..83daca15b37e 100644
> --- a/src/libcamera/converter/converter_v4l2_m2m.cpp
> +++ b/src/libcamera/converter/converter_v4l2_m2m.cpp
> @@ -437,6 +437,14 @@ int V4L2M2MConverter::configure(const StreamConfiguration &inputCfg,
> return 0;
> }
>
> +/**
> + * \copydoc libcamera::Converter::isConfigured
> + */
> +bool V4L2M2MConverter::isConfigured(const Stream *stream) const
> +{
> + return streams_.find(stream) != streams_.end();
> +}
> +
> /**
> * \copydoc libcamera::Converter::exportBuffers
> */
> --
> 2.43.0
>
More information about the libcamera-devel
mailing list