[libcamera-devel] [PATCH 1/4] cam: sdl_texture_yuyv: Make line stride configurable

Eric Curtin ecurtin at redhat.com
Mon Aug 8 11:19:52 CEST 2022


Hi Laurent,

Good morning.

On Sun, 7 Aug 2022 at 03:17, Laurent Pinchart
<laurent.pinchart at ideasonboard.com> wrote:
>
> 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.
>

Optionally if you'd like to fix the pitch/stride inconsistency in the
code, pre-existing this change of course.

Reviewed-by: Eric Curtin <ecurtin at redhat.com>

> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
>  src/cam/sdl_sink.cpp         | 2 +-
>  src/cam/sdl_texture_yuyv.cpp | 4 ++--
>  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 19fdfd6dced5..a59d07519e1f 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 637c0900edff..cb51fb0ef478 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 529a72d6a40e..81e51381ec62 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;
>  };
> --
> Regards,
>
> Laurent Pinchart
>



More information about the libcamera-devel mailing list