apps: cam: sdl_texture: Take list of buffers in span

A non-owning span is sufficient, so use that instead of a vector.

Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Barnabás Pőcze 2025-04-18 14:30:25 +02:00
parent f3a12332f6
commit 02f60006cf
5 changed files with 8 additions and 8 deletions

View file

@ -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:

View file

@ -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_);

View file

@ -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);

View file

@ -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_);
}

View file

@ -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;
};