[PATCH v4 09/20] libcamera: converter: Add function to check if a stream was configured
Stefan Klug
stefan.klug at ideasonboard.com
Mon Dec 16 16:40:49 CET 2024
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>
---
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