libcamera: debayer_cpu: Add 32bits/aligned output formats
In order to be more compatible with modern hardware and APIs. This notably allows GL implementations to directly import the buffers more often and seems to be required for Wayland. Further more, as we already enforce a 8 byte stride, these formats work better for clients that don't support padding - such as libwebrtc at the time of writing. Tested devices: - Librem5 - PinePhone - Thinkpad X13s Signed-off-by: Robert Mader <robert.mader@collabora.com> Tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Milan Zamazal <mzamazal@redhat.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
committed by
Kieran Bingham
parent
226ce29483
commit
437e601653
@@ -85,18 +85,28 @@ private:
|
||||
using debayerFn = void (DebayerCpu::*)(uint8_t *dst, const uint8_t *src[]);
|
||||
|
||||
/* 8-bit raw bayer format */
|
||||
template<bool addAlphaByte>
|
||||
void debayer8_BGBG_BGR888(uint8_t *dst, const uint8_t *src[]);
|
||||
template<bool addAlphaByte>
|
||||
void debayer8_GRGR_BGR888(uint8_t *dst, const uint8_t *src[]);
|
||||
/* unpacked 10-bit raw bayer format */
|
||||
template<bool addAlphaByte>
|
||||
void debayer10_BGBG_BGR888(uint8_t *dst, const uint8_t *src[]);
|
||||
template<bool addAlphaByte>
|
||||
void debayer10_GRGR_BGR888(uint8_t *dst, const uint8_t *src[]);
|
||||
/* unpacked 12-bit raw bayer format */
|
||||
template<bool addAlphaByte>
|
||||
void debayer12_BGBG_BGR888(uint8_t *dst, const uint8_t *src[]);
|
||||
template<bool addAlphaByte>
|
||||
void debayer12_GRGR_BGR888(uint8_t *dst, const uint8_t *src[]);
|
||||
/* CSI-2 packed 10-bit raw bayer format (all the 4 orders) */
|
||||
template<bool addAlphaByte>
|
||||
void debayer10P_BGBG_BGR888(uint8_t *dst, const uint8_t *src[]);
|
||||
template<bool addAlphaByte>
|
||||
void debayer10P_GRGR_BGR888(uint8_t *dst, const uint8_t *src[]);
|
||||
template<bool addAlphaByte>
|
||||
void debayer10P_GBGB_BGR888(uint8_t *dst, const uint8_t *src[]);
|
||||
template<bool addAlphaByte>
|
||||
void debayer10P_RGRG_BGR888(uint8_t *dst, const uint8_t *src[]);
|
||||
|
||||
struct DebayerInputConfig {
|
||||
|
||||
Reference in New Issue
Block a user