summaryrefslogtreecommitdiff
path: root/src/apps/cam/sdl_sink.cpp
diff options
context:
space:
mode:
authorBarnabás Pőcze <barnabas.pocze@ideasonboard.com>2025-04-18 14:57:36 +0200
committerBarnabás Pőcze <barnabas.pocze@ideasonboard.com>2025-05-15 17:41:36 +0200
commitb24cd1229348764e20a360805b946537d1f8fe13 (patch)
tree0fa91082b26175bd0ccd667e0f19a49c0d90db9c /src/apps/cam/sdl_sink.cpp
parent41b0997114c1e1c09d001cb6241d5ce861e21e61 (diff)
apps: cam: sdl_texture: Add `SDLTexture1Plane`
`SDLTextureYUYV` uses `SDL_PIXELFORMAT_YUY2`, which is a single plane format. To support other single plane formats, replace `SDLTextureYUYV` with `SDLTexture1Plane` that can be instantiated with an arbitrary SDL pixel format and that uses `SDL_UpdateTexture()` to update the texture using exactly a single plane. Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/apps/cam/sdl_sink.cpp')
-rw-r--r--src/apps/cam/sdl_sink.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/apps/cam/sdl_sink.cpp b/src/apps/cam/sdl_sink.cpp
index 8355dd5e..b295675d 100644
--- a/src/apps/cam/sdl_sink.cpp
+++ b/src/apps/cam/sdl_sink.cpp
@@ -22,6 +22,7 @@
#include "../common/event_loop.h"
#include "../common/image.h"
+#include "sdl_texture_1plane.h"
#ifdef HAVE_LIBJPEG
#include "sdl_texture_mjpg.h"
#endif
@@ -74,7 +75,7 @@ int SDLSink::configure(const libcamera::CameraConfiguration &config)
break;
#endif
case libcamera::formats::YUYV:
- texture_ = std::make_unique<SDLTextureYUYV>(rect_, cfg.stride);
+ texture_ = std::make_unique<SDLTexture1Plane>(rect_, SDL_PIXELFORMAT_YUY2, cfg.stride);
break;
default:
std::cerr << "Unsupported pixel format "