Message ID | 20241216154124.203650-10-stefan.klug@ideasonboard.com |
---|---|
State | Accepted |
Headers | show |
Series |
|
Related | show |
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@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo.mondi@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 >
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@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> > > --- > > 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 >
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 */
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@ideasonboard.com> --- 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(+)