[RFC PATCH v1 1/5] apps: cam: sdl_texture: Take list of buffers in span

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Apr 23 01:36:26 CEST 2025


Hi Barnabás,

Thank you for the patch.

On Mon, Apr 21, 2025 at 05:51:05PM +0200, Barnabás Pőcze wrote:

Missing commit message. With that fixed,

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

> Signed-off-by: Barnabás Pőcze <barnabas.pocze at ideasonboard.com>
> ---
>  src/apps/cam/sdl_texture.h        | 4 ++--
>  src/apps/cam/sdl_texture_mjpg.cpp | 2 +-
>  src/apps/cam/sdl_texture_mjpg.h   | 2 +-
>  src/apps/cam/sdl_texture_yuv.cpp  | 4 ++--
>  src/apps/cam/sdl_texture_yuv.h    | 4 ++--
>  5 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/src/apps/cam/sdl_texture.h b/src/apps/cam/sdl_texture.h
> index 990f83b6e..39e1c7b38 100644
> --- a/src/apps/cam/sdl_texture.h
> +++ b/src/apps/cam/sdl_texture.h
> @@ -7,7 +7,7 @@
>  
>  #pragma once
>  
> -#include <vector>
> +#include <libcamera/base/span.h>
>  
>  #include <SDL2/SDL.h>
>  
> @@ -19,7 +19,7 @@ public:
>  	SDLTexture(const SDL_Rect &rect, uint32_t pixelFormat, const int stride);
>  	virtual ~SDLTexture();
>  	int create(SDL_Renderer *renderer);
> -	virtual void update(const std::vector<libcamera::Span<const uint8_t>> &data) = 0;
> +	virtual void update(libcamera::Span<const libcamera::Span<const uint8_t>> data) = 0;
>  	SDL_Texture *get() const { return ptr_; }
>  
>  protected:
> diff --git a/src/apps/cam/sdl_texture_mjpg.cpp b/src/apps/cam/sdl_texture_mjpg.cpp
> index cace18fc6..ca49a1142 100644
> --- a/src/apps/cam/sdl_texture_mjpg.cpp
> +++ b/src/apps/cam/sdl_texture_mjpg.cpp
> @@ -76,7 +76,7 @@ int SDLTextureMJPG::decompress(Span<const uint8_t> data)
>  	return 0;
>  }
>  
> -void SDLTextureMJPG::update(const std::vector<libcamera::Span<const uint8_t>> &data)
> +void SDLTextureMJPG::update(libcamera::Span<const libcamera::Span<const uint8_t>> data)
>  {
>  	decompress(data[0]);
>  	SDL_UpdateTexture(ptr_, nullptr, rgb_.get(), stride_);
> diff --git a/src/apps/cam/sdl_texture_mjpg.h b/src/apps/cam/sdl_texture_mjpg.h
> index 37bed5f0e..be8a55fe7 100644
> --- a/src/apps/cam/sdl_texture_mjpg.h
> +++ b/src/apps/cam/sdl_texture_mjpg.h
> @@ -14,7 +14,7 @@ class SDLTextureMJPG : public SDLTexture
>  public:
>  	SDLTextureMJPG(const SDL_Rect &rect);
>  
> -	void update(const std::vector<libcamera::Span<const uint8_t>> &data) override;
> +	void update(libcamera::Span<const libcamera::Span<const uint8_t>> data) override;
>  
>  private:
>  	int decompress(libcamera::Span<const uint8_t> data);
> diff --git a/src/apps/cam/sdl_texture_yuv.cpp b/src/apps/cam/sdl_texture_yuv.cpp
> index 480d7a379..80a5ec05d 100644
> --- a/src/apps/cam/sdl_texture_yuv.cpp
> +++ b/src/apps/cam/sdl_texture_yuv.cpp
> @@ -15,7 +15,7 @@ SDLTextureNV12::SDLTextureNV12(const SDL_Rect &rect, unsigned int stride)
>  {
>  }
>  
> -void SDLTextureNV12::update(const std::vector<libcamera::Span<const uint8_t>> &data)
> +void SDLTextureNV12::update(libcamera::Span<const libcamera::Span<const uint8_t>> data)
>  {
>  	SDL_UpdateNVTexture(ptr_, &rect_, data[0].data(), stride_,
>  			    data[1].data(), stride_);
> @@ -27,7 +27,7 @@ SDLTextureYUYV::SDLTextureYUYV(const SDL_Rect &rect, unsigned int stride)
>  {
>  }
>  
> -void SDLTextureYUYV::update(const std::vector<libcamera::Span<const uint8_t>> &data)
> +void SDLTextureYUYV::update(libcamera::Span<const libcamera::Span<const uint8_t>> data)
>  {
>  	SDL_UpdateTexture(ptr_, &rect_, data[0].data(), stride_);
>  }
> diff --git a/src/apps/cam/sdl_texture_yuv.h b/src/apps/cam/sdl_texture_yuv.h
> index 29c756e77..db877f503 100644
> --- a/src/apps/cam/sdl_texture_yuv.h
> +++ b/src/apps/cam/sdl_texture_yuv.h
> @@ -14,7 +14,7 @@ class SDLTextureNV12 : public SDLTexture
>  {
>  public:
>  	SDLTextureNV12(const SDL_Rect &rect, unsigned int stride);
> -	void update(const std::vector<libcamera::Span<const uint8_t>> &data) override;
> +	void update(libcamera::Span<const libcamera::Span<const uint8_t>> data) override;
>  };
>  #endif
>  
> @@ -22,5 +22,5 @@ class SDLTextureYUYV : public SDLTexture
>  {
>  public:
>  	SDLTextureYUYV(const SDL_Rect &rect, unsigned int stride);
> -	void update(const std::vector<libcamera::Span<const uint8_t>> &data) override;
> +	void update(libcamera::Span<const libcamera::Span<const uint8_t>> data) override;
>  };

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list