qcam: Replace explicit DRM FourCCs with libcamera formats
Use the new pixel format constants to replace usage of macros from drm_fourcc.h. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include <tiffio.h>
|
||||
|
||||
#include <libcamera/control_ids.h>
|
||||
#include <libcamera/formats.h>
|
||||
|
||||
using namespace libcamera;
|
||||
|
||||
@@ -181,73 +182,73 @@ void thumbScanlineIPU3(const FormatInfo &info, void *output,
|
||||
}
|
||||
|
||||
static const std::map<PixelFormat, FormatInfo> formatInfo = {
|
||||
{ PixelFormat(DRM_FORMAT_SBGGR10, MIPI_FORMAT_MOD_CSI2_PACKED), {
|
||||
{ formats::SBGGR10_CSI2P, {
|
||||
.bitsPerSample = 10,
|
||||
.pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },
|
||||
.packScanline = packScanlineSBGGR10P,
|
||||
.thumbScanline = thumbScanlineSBGGRxxP,
|
||||
} },
|
||||
{ PixelFormat(DRM_FORMAT_SGBRG10, MIPI_FORMAT_MOD_CSI2_PACKED), {
|
||||
{ formats::SGBRG10_CSI2P, {
|
||||
.bitsPerSample = 10,
|
||||
.pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },
|
||||
.packScanline = packScanlineSBGGR10P,
|
||||
.thumbScanline = thumbScanlineSBGGRxxP,
|
||||
} },
|
||||
{ PixelFormat(DRM_FORMAT_SGRBG10, MIPI_FORMAT_MOD_CSI2_PACKED), {
|
||||
{ formats::SGRBG10_CSI2P, {
|
||||
.bitsPerSample = 10,
|
||||
.pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },
|
||||
.packScanline = packScanlineSBGGR10P,
|
||||
.thumbScanline = thumbScanlineSBGGRxxP,
|
||||
} },
|
||||
{ PixelFormat(DRM_FORMAT_SRGGB10, MIPI_FORMAT_MOD_CSI2_PACKED), {
|
||||
{ formats::SRGGB10_CSI2P, {
|
||||
.bitsPerSample = 10,
|
||||
.pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },
|
||||
.packScanline = packScanlineSBGGR10P,
|
||||
.thumbScanline = thumbScanlineSBGGRxxP,
|
||||
} },
|
||||
{ PixelFormat(DRM_FORMAT_SBGGR12, MIPI_FORMAT_MOD_CSI2_PACKED), {
|
||||
{ formats::SBGGR12_CSI2P, {
|
||||
.bitsPerSample = 12,
|
||||
.pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },
|
||||
.packScanline = packScanlineSBGGR12P,
|
||||
.thumbScanline = thumbScanlineSBGGRxxP,
|
||||
} },
|
||||
{ PixelFormat(DRM_FORMAT_SGBRG12, MIPI_FORMAT_MOD_CSI2_PACKED), {
|
||||
{ formats::SGBRG12_CSI2P, {
|
||||
.bitsPerSample = 12,
|
||||
.pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },
|
||||
.packScanline = packScanlineSBGGR12P,
|
||||
.thumbScanline = thumbScanlineSBGGRxxP,
|
||||
} },
|
||||
{ PixelFormat(DRM_FORMAT_SGRBG12, MIPI_FORMAT_MOD_CSI2_PACKED), {
|
||||
{ formats::SGRBG12_CSI2P, {
|
||||
.bitsPerSample = 12,
|
||||
.pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },
|
||||
.packScanline = packScanlineSBGGR12P,
|
||||
.thumbScanline = thumbScanlineSBGGRxxP,
|
||||
} },
|
||||
{ PixelFormat(DRM_FORMAT_SRGGB12, MIPI_FORMAT_MOD_CSI2_PACKED), {
|
||||
{ formats::SRGGB12_CSI2P, {
|
||||
.bitsPerSample = 12,
|
||||
.pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },
|
||||
.packScanline = packScanlineSBGGR12P,
|
||||
.thumbScanline = thumbScanlineSBGGRxxP,
|
||||
} },
|
||||
{ PixelFormat(DRM_FORMAT_SBGGR10, IPU3_FORMAT_MOD_PACKED), {
|
||||
{ formats::SBGGR10_IPU3, {
|
||||
.bitsPerSample = 16,
|
||||
.pattern = { CFAPatternBlue, CFAPatternGreen, CFAPatternGreen, CFAPatternRed },
|
||||
.packScanline = packScanlineIPU3,
|
||||
.thumbScanline = thumbScanlineIPU3,
|
||||
} },
|
||||
{ PixelFormat(DRM_FORMAT_SGBRG10, IPU3_FORMAT_MOD_PACKED), {
|
||||
{ formats::SGBRG10_IPU3, {
|
||||
.bitsPerSample = 16,
|
||||
.pattern = { CFAPatternGreen, CFAPatternBlue, CFAPatternRed, CFAPatternGreen },
|
||||
.packScanline = packScanlineIPU3,
|
||||
.thumbScanline = thumbScanlineIPU3,
|
||||
} },
|
||||
{ PixelFormat(DRM_FORMAT_SGRBG10, IPU3_FORMAT_MOD_PACKED), {
|
||||
{ formats::SGRBG10_IPU3, {
|
||||
.bitsPerSample = 16,
|
||||
.pattern = { CFAPatternGreen, CFAPatternRed, CFAPatternBlue, CFAPatternGreen },
|
||||
.packScanline = packScanlineIPU3,
|
||||
.thumbScanline = thumbScanlineIPU3,
|
||||
} },
|
||||
{ PixelFormat(DRM_FORMAT_SRGGB10, IPU3_FORMAT_MOD_PACKED), {
|
||||
{ formats::SRGGB10_IPU3, {
|
||||
.bitsPerSample = 16,
|
||||
.pattern = { CFAPatternRed, CFAPatternGreen, CFAPatternGreen, CFAPatternBlue },
|
||||
.packScanline = packScanlineIPU3,
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
|
||||
#include <QImage>
|
||||
|
||||
#include <libcamera/formats.h>
|
||||
|
||||
#define RGBSHIFT 8
|
||||
#ifndef MAX
|
||||
#define MAX(a,b) ((a)>(b)?(a):(b))
|
||||
@@ -29,79 +31,79 @@ int FormatConverter::configure(const libcamera::PixelFormat &format,
|
||||
const QSize &size)
|
||||
{
|
||||
switch (format) {
|
||||
case DRM_FORMAT_NV12:
|
||||
case libcamera::formats::NV12:
|
||||
formatFamily_ = NV;
|
||||
horzSubSample_ = 2;
|
||||
vertSubSample_ = 2;
|
||||
nvSwap_ = false;
|
||||
break;
|
||||
case DRM_FORMAT_NV21:
|
||||
case libcamera::formats::NV21:
|
||||
formatFamily_ = NV;
|
||||
horzSubSample_ = 2;
|
||||
vertSubSample_ = 2;
|
||||
nvSwap_ = true;
|
||||
break;
|
||||
case DRM_FORMAT_NV16:
|
||||
case libcamera::formats::NV16:
|
||||
formatFamily_ = NV;
|
||||
horzSubSample_ = 2;
|
||||
vertSubSample_ = 1;
|
||||
nvSwap_ = false;
|
||||
break;
|
||||
case DRM_FORMAT_NV61:
|
||||
case libcamera::formats::NV61:
|
||||
formatFamily_ = NV;
|
||||
horzSubSample_ = 2;
|
||||
vertSubSample_ = 1;
|
||||
nvSwap_ = true;
|
||||
break;
|
||||
case DRM_FORMAT_NV24:
|
||||
case libcamera::formats::NV24:
|
||||
formatFamily_ = NV;
|
||||
horzSubSample_ = 1;
|
||||
vertSubSample_ = 1;
|
||||
nvSwap_ = false;
|
||||
break;
|
||||
case DRM_FORMAT_NV42:
|
||||
case libcamera::formats::NV42:
|
||||
formatFamily_ = NV;
|
||||
horzSubSample_ = 1;
|
||||
vertSubSample_ = 1;
|
||||
nvSwap_ = true;
|
||||
break;
|
||||
|
||||
case DRM_FORMAT_RGB888:
|
||||
case libcamera::formats::RGB888:
|
||||
formatFamily_ = RGB;
|
||||
r_pos_ = 2;
|
||||
g_pos_ = 1;
|
||||
b_pos_ = 0;
|
||||
bpp_ = 3;
|
||||
break;
|
||||
case DRM_FORMAT_BGR888:
|
||||
case libcamera::formats::BGR888:
|
||||
formatFamily_ = RGB;
|
||||
r_pos_ = 0;
|
||||
g_pos_ = 1;
|
||||
b_pos_ = 2;
|
||||
bpp_ = 3;
|
||||
break;
|
||||
case DRM_FORMAT_ARGB8888:
|
||||
case libcamera::formats::ARGB8888:
|
||||
formatFamily_ = RGB;
|
||||
r_pos_ = 2;
|
||||
g_pos_ = 1;
|
||||
b_pos_ = 0;
|
||||
bpp_ = 4;
|
||||
break;
|
||||
case DRM_FORMAT_RGBA8888:
|
||||
case libcamera::formats::RGBA8888:
|
||||
formatFamily_ = RGB;
|
||||
r_pos_ = 3;
|
||||
g_pos_ = 2;
|
||||
b_pos_ = 1;
|
||||
bpp_ = 4;
|
||||
break;
|
||||
case DRM_FORMAT_ABGR8888:
|
||||
case libcamera::formats::ABGR8888:
|
||||
formatFamily_ = RGB;
|
||||
r_pos_ = 0;
|
||||
g_pos_ = 1;
|
||||
b_pos_ = 2;
|
||||
bpp_ = 4;
|
||||
break;
|
||||
case DRM_FORMAT_BGRA8888:
|
||||
case libcamera::formats::BGRA8888:
|
||||
formatFamily_ = RGB;
|
||||
r_pos_ = 1;
|
||||
g_pos_ = 2;
|
||||
@@ -109,28 +111,28 @@ int FormatConverter::configure(const libcamera::PixelFormat &format,
|
||||
bpp_ = 4;
|
||||
break;
|
||||
|
||||
case DRM_FORMAT_VYUY:
|
||||
case libcamera::formats::VYUY:
|
||||
formatFamily_ = YUV;
|
||||
y_pos_ = 1;
|
||||
cb_pos_ = 2;
|
||||
break;
|
||||
case DRM_FORMAT_YVYU:
|
||||
case libcamera::formats::YVYU:
|
||||
formatFamily_ = YUV;
|
||||
y_pos_ = 0;
|
||||
cb_pos_ = 3;
|
||||
break;
|
||||
case DRM_FORMAT_UYVY:
|
||||
case libcamera::formats::UYVY:
|
||||
formatFamily_ = YUV;
|
||||
y_pos_ = 1;
|
||||
cb_pos_ = 0;
|
||||
break;
|
||||
case DRM_FORMAT_YUYV:
|
||||
case libcamera::formats::YUYV:
|
||||
formatFamily_ = YUV;
|
||||
y_pos_ = 0;
|
||||
cb_pos_ = 1;
|
||||
break;
|
||||
|
||||
case DRM_FORMAT_MJPEG:
|
||||
case libcamera::formats::MJPEG:
|
||||
formatFamily_ = MJPEG;
|
||||
break;
|
||||
|
||||
|
||||
@@ -17,18 +17,20 @@
|
||||
#include <QPainter>
|
||||
#include <QtDebug>
|
||||
|
||||
#include <libcamera/formats.h>
|
||||
|
||||
#include "format_converter.h"
|
||||
|
||||
static const QMap<libcamera::PixelFormat, QImage::Format> nativeFormats
|
||||
{
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)
|
||||
{ libcamera::PixelFormat{ DRM_FORMAT_ABGR8888 }, QImage::Format_RGBA8888 },
|
||||
{ libcamera::formats::ABGR8888, QImage::Format_RGBA8888 },
|
||||
#endif
|
||||
{ libcamera::PixelFormat{ DRM_FORMAT_ARGB8888 }, QImage::Format_RGB32 },
|
||||
{ libcamera::formats::ARGB8888, QImage::Format_RGB32 },
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
|
||||
{ libcamera::PixelFormat{ DRM_FORMAT_RGB888 }, QImage::Format_BGR888 },
|
||||
{ libcamera::formats::RGB888, QImage::Format_BGR888 },
|
||||
#endif
|
||||
{ libcamera::PixelFormat{ DRM_FORMAT_BGR888 }, QImage::Format_RGB888 },
|
||||
{ libcamera::formats::BGR888, QImage::Format_RGB888 },
|
||||
};
|
||||
|
||||
ViewFinder::ViewFinder(QWidget *parent)
|
||||
|
||||
Reference in New Issue
Block a user