diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2022-08-06 17:27:37 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2022-08-08 17:13:17 +0300 |
commit | 4b6e624e6a825aebf171dc1cbe6f2d8d6dde867e (patch) | |
tree | 456407e7fae4ec8646e0695cf5aea1908dca3c4b | |
parent | 26c82ce13697e1af5950f4935ecff83c6453f351 (diff) |
cam: sdl_texture_yuyv: Make line stride configurable
The line stride of the texture is currently hardcoded based on the image
width, which may not match the real stride. Use the stride value from
the stream configuration instead.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Eric Curtin <ecurtin@redhat.com>
Tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r-- | src/cam/sdl_sink.cpp | 2 | ||||
-rw-r--r-- | src/cam/sdl_texture_yuyv.cpp | 4 | ||||
-rw-r--r-- | src/cam/sdl_texture_yuyv.h | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/src/cam/sdl_sink.cpp b/src/cam/sdl_sink.cpp index 19fdfd6d..a59d0751 100644 --- a/src/cam/sdl_sink.cpp +++ b/src/cam/sdl_sink.cpp @@ -68,7 +68,7 @@ int SDLSink::configure(const libcamera::CameraConfiguration &config) break; #endif case libcamera::formats::YUYV: - texture_ = std::make_unique<SDLTextureYUYV>(rect_); + texture_ = std::make_unique<SDLTextureYUYV>(rect_, cfg.stride); break; default: std::cerr << "Unsupported pixel format " diff --git a/src/cam/sdl_texture_yuyv.cpp b/src/cam/sdl_texture_yuyv.cpp index 637c0900..cb51fb0e 100644 --- a/src/cam/sdl_texture_yuyv.cpp +++ b/src/cam/sdl_texture_yuyv.cpp @@ -9,8 +9,8 @@ using namespace libcamera; -SDLTextureYUYV::SDLTextureYUYV(const SDL_Rect &rect) - : SDLTexture(rect, SDL_PIXELFORMAT_YUY2, 4 * ((rect.w + 1) / 2)) +SDLTextureYUYV::SDLTextureYUYV(const SDL_Rect &rect, unsigned int stride) + : SDLTexture(rect, SDL_PIXELFORMAT_YUY2, stride) { } diff --git a/src/cam/sdl_texture_yuyv.h b/src/cam/sdl_texture_yuyv.h index 529a72d6..81e51381 100644 --- a/src/cam/sdl_texture_yuyv.h +++ b/src/cam/sdl_texture_yuyv.h @@ -12,6 +12,6 @@ class SDLTextureYUYV : public SDLTexture { public: - SDLTextureYUYV(const SDL_Rect &rect); + SDLTextureYUYV(const SDL_Rect &rect, unsigned int stride); void update(libcamera::Span<const uint8_t> data) override; }; |