cam: sdl: Use uint32_t in place of SDL_PixelFormatEnum

The SDL_PixelFormatEnum type has been introduced in libsdl by
1a4c0d4e17e6 ("Fixed bug 4377 - SDL_PIXELFORMAT enum is anonymous, which
prevents its use in a templated function") which is only available after
release 2.0.10 of the library.

Debian 10 ships libsdl at version 2.0.9 and building cam with sdl
support there fails with error:
./src/cam/sdl_texture.h:27:8: error: ‘SDL_PixelFormatEnum’ does not name
a type; did you mean ‘SDL_PixelFormat’?

Fix that by using the base type uint32_t in place of
SDL_PixelFormatEnum.

Reported-by: https://buildbot.libcamera.org/#/builders/6/builds/355
Fixes: 11554a259f ("cam: sdl_sink: Add SDL sink with initial YUYV support")
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Reviewed-by: Eric Curtin <ecurtin@redhat.com>
This commit is contained in:
Jacopo Mondi 2022-07-14 20:14:26 +02:00
parent a5877e0307
commit e9b6b36282
2 changed files with 3 additions and 4 deletions

View file

@ -9,7 +9,7 @@
#include <iostream>
SDLTexture::SDLTexture(const SDL_Rect &rect, SDL_PixelFormatEnum pixelFormat,
SDLTexture::SDLTexture(const SDL_Rect &rect, uint32_t pixelFormat,
const int pitch)
: ptr_(nullptr), rect_(rect), pixelFormat_(pixelFormat), pitch_(pitch)
{

View file

@ -14,8 +14,7 @@
class SDLTexture
{
public:
SDLTexture(const SDL_Rect &rect, SDL_PixelFormatEnum pixelFormat,
const int pitch);
SDLTexture(const SDL_Rect &rect, uint32_t pixelFormat, const int pitch);
virtual ~SDLTexture();
int create(SDL_Renderer *renderer);
virtual void update(const libcamera::Span<uint8_t> &data) = 0;
@ -24,6 +23,6 @@ public:
protected:
SDL_Texture *ptr_;
const SDL_Rect rect_;
const SDL_PixelFormatEnum pixelFormat_;
const uint32_t pixelFormat_;
const int pitch_;
};