[RFC PATCH v1 1/5] apps: cam: sdl_texture: Take list of buffers in span
Barnabás Pőcze
barnabas.pocze at ideasonboard.com
Mon Apr 21 17:51:05 CEST 2025
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;
};
--
2.49.0
More information about the libcamera-devel
mailing list