[PATCH v2 1/4] apps: cam: sdl_texture: Take list of buffers in span
Kieran Bingham
kieran.bingham at ideasonboard.com
Fri Apr 25 14:01:43 CEST 2025
Quoting Barnabás Pőcze (2025-04-25 11:47:00)
> A non-owning span is sufficient, so use that instead of a vector.
>
> Signed-off-by: Barnabás Pőcze <barnabas.pocze at ideasonboard.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham 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;
> };
> --
> 2.49.0
>
More information about the libcamera-devel
mailing list