[libcamera-devel,v4,03/21] libcamera: StreamConfiguration: Add frameSize field

Message ID 20200708134417.67747-4-paul.elder@ideasonboard.com
State Superseded
Headers show
Series
  • Clean up formats in v4l2-compat and pipeline handlers
Related show

Commit Message

Paul Elder July 8, 2020, 1:43 p.m. UTC
In addition to the stride field, we want the pipeline handler to be able
to declare the frame size for the configuration. Add a frameSize field
to StreamConfiguration for this purpose.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

---
No change in v4

New in v3
---
 include/libcamera/stream.h |  1 +
 src/libcamera/stream.cpp   | 17 ++++++++++++++---
 2 files changed, 15 insertions(+), 3 deletions(-)

Patch

diff --git a/include/libcamera/stream.h b/include/libcamera/stream.h
index 1a68bd2..f502b35 100644
--- a/include/libcamera/stream.h
+++ b/include/libcamera/stream.h
@@ -43,6 +43,7 @@  struct StreamConfiguration {
 	PixelFormat pixelFormat;
 	Size size;
 	unsigned int stride;
+	unsigned int frameSize;
 
 	unsigned int bufferCount;
 
diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp
index 6df5882..6d6e279 100644
--- a/src/libcamera/stream.cpp
+++ b/src/libcamera/stream.cpp
@@ -279,7 +279,8 @@  SizeRange StreamFormats::range(const PixelFormat &pixelformat) const
  * handlers provide StreamFormats.
  */
 StreamConfiguration::StreamConfiguration()
-	: pixelFormat(0), stride(0), bufferCount(0), stream_(nullptr)
+	: pixelFormat(0), stride(0), frameSize(0), bufferCount(0),
+	  stream_(nullptr)
 {
 }
 
@@ -287,8 +288,8 @@  StreamConfiguration::StreamConfiguration()
  * \brief Construct a configuration with stream formats
  */
 StreamConfiguration::StreamConfiguration(const StreamFormats &formats)
-	: pixelFormat(0), stride(0), bufferCount(0), stream_(nullptr),
-	  formats_(formats)
+	: pixelFormat(0), stride(0), frameSize(0), bufferCount(0),
+	  stream_(nullptr), formats_(formats)
 {
 }
 
@@ -315,6 +316,16 @@  StreamConfiguration::StreamConfiguration(const StreamFormats &formats)
  * the camera is configured.
  */
 
+/**
+ * \var StreamConfiguration::frameSize
+ * \brief Frame size for the stream, in bytes
+ *
+ * The frameSize value reports the number of bytes necessary to contain one
+ * frame of an image buffer for this stream. The value is valid after
+ * successfully validating the configuration with a call to
+ * CameraConfiguration::validate().
+ */
+
 /**
  * \var StreamConfiguration::bufferCount
  * \brief Requested number of buffers to allocate for the stream