[v1] libcamera: pipeline: virtual: Don't use span iterator as pointer
diff mbox series

Message ID 20260120144420.264358-1-barnabas.pocze@ideasonboard.com
State New
Headers show
Series
  • [v1] libcamera: pipeline: virtual: Don't use span iterator as pointer
Related show

Commit Message

Barnabás Pőcze Jan. 20, 2026, 2:44 p.m. UTC
Pointer to the contiguous data of a container is to be retrieved
using the `data()` member function. Using `begin()` in contexts
that require pointers is not correct as the iterator may be
something entirely different. So use `data()` where applicable.

Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
---
 src/libcamera/pipeline/virtual/image_frame_generator.cpp  | 5 +++--
 src/libcamera/pipeline/virtual/test_pattern_generator.cpp | 4 ++--
 2 files changed, 5 insertions(+), 4 deletions(-)

Comments

Laurent Pinchart Jan. 20, 2026, 3:18 p.m. UTC | #1
On Tue, Jan 20, 2026 at 03:44:20PM +0100, Barnabás Pőcze wrote:
> Pointer to the contiguous data of a container is to be retrieved
> using the `data()` member function. Using `begin()` in contexts
> that require pointers is not correct as the iterator may be
> something entirely different. So use `data()` where applicable.
> 
> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  src/libcamera/pipeline/virtual/image_frame_generator.cpp  | 5 +++--
>  src/libcamera/pipeline/virtual/test_pattern_generator.cpp | 4 ++--
>  2 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/src/libcamera/pipeline/virtual/image_frame_generator.cpp b/src/libcamera/pipeline/virtual/image_frame_generator.cpp
> index d1545b5d9..5ba76507a 100644
> --- a/src/libcamera/pipeline/virtual/image_frame_generator.cpp
> +++ b/src/libcamera/pipeline/virtual/image_frame_generator.cpp
> @@ -136,8 +136,9 @@ int ImageFrameGenerator::generateFrame(const Size &size, const FrameBuffer *buff
>  
>  	/* Write the scaledY and scaledUV to the mapped frame buffer */
>  	libyuv::NV12Copy(scaledFrameDatas_[frameIndex_].Y.get(), size.width,
> -			 scaledFrameDatas_[frameIndex_].UV.get(), size.width, planes[0].begin(),
> -			 size.width, planes[1].begin(), size.width,
> +			 scaledFrameDatas_[frameIndex_].UV.get(), size.width,
> +			 planes[0].data(), size.width,
> +			 planes[1].data(), size.width,
>  			 size.width, size.height);
>  
>  	/* Proceed to the next image every 4 frames */
> diff --git a/src/libcamera/pipeline/virtual/test_pattern_generator.cpp b/src/libcamera/pipeline/virtual/test_pattern_generator.cpp
> index 745be83b9..12cce9f7e 100644
> --- a/src/libcamera/pipeline/virtual/test_pattern_generator.cpp
> +++ b/src/libcamera/pipeline/virtual/test_pattern_generator.cpp
> @@ -53,8 +53,8 @@ int TestPatternGenerator::generateFrame(const Size &size,
>  
>  	/* Convert the template_ to the frame buffer */
>  	int ret = libyuv::ARGBToNV12(template_.get(), size.width * kARGBSize,
> -				     planes[0].begin(), size.width,
> -				     planes[1].begin(), size.width,
> +				     planes[0].data(), size.width,
> +				     planes[1].data(), size.width,
>  				     size.width, size.height);
>  	if (ret != 0)
>  		LOG(Virtual, Error) << "ARGBToNV12() failed with " << ret;

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/virtual/image_frame_generator.cpp b/src/libcamera/pipeline/virtual/image_frame_generator.cpp
index d1545b5d9..5ba76507a 100644
--- a/src/libcamera/pipeline/virtual/image_frame_generator.cpp
+++ b/src/libcamera/pipeline/virtual/image_frame_generator.cpp
@@ -136,8 +136,9 @@  int ImageFrameGenerator::generateFrame(const Size &size, const FrameBuffer *buff
 
 	/* Write the scaledY and scaledUV to the mapped frame buffer */
 	libyuv::NV12Copy(scaledFrameDatas_[frameIndex_].Y.get(), size.width,
-			 scaledFrameDatas_[frameIndex_].UV.get(), size.width, planes[0].begin(),
-			 size.width, planes[1].begin(), size.width,
+			 scaledFrameDatas_[frameIndex_].UV.get(), size.width,
+			 planes[0].data(), size.width,
+			 planes[1].data(), size.width,
 			 size.width, size.height);
 
 	/* Proceed to the next image every 4 frames */
diff --git a/src/libcamera/pipeline/virtual/test_pattern_generator.cpp b/src/libcamera/pipeline/virtual/test_pattern_generator.cpp
index 745be83b9..12cce9f7e 100644
--- a/src/libcamera/pipeline/virtual/test_pattern_generator.cpp
+++ b/src/libcamera/pipeline/virtual/test_pattern_generator.cpp
@@ -53,8 +53,8 @@  int TestPatternGenerator::generateFrame(const Size &size,
 
 	/* Convert the template_ to the frame buffer */
 	int ret = libyuv::ARGBToNV12(template_.get(), size.width * kARGBSize,
-				     planes[0].begin(), size.width,
-				     planes[1].begin(), size.width,
+				     planes[0].data(), size.width,
+				     planes[1].data(), size.width,
 				     size.width, size.height);
 	if (ret != 0)
 		LOG(Virtual, Error) << "ARGBToNV12() failed with " << ret;