temp/libcamera: upgrade to 0.3.1 (MR 5381)

Rebase our downstream patches and drop the one included in the release.

See https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.3.1

Notes:
 - The abi-compliance checker reports 100% binary and source compatibility,
   so this release does not change the SONAME.
 - qcam has been ported to QT6.
 - This release has some notable improvements to the PPP/rkisp1, however
   lower frame rates might be encountered sometimes. This will hopefully
   get fixed in the imx258 driver in Linux 6.11.
 - The swISP got some fixes but nothing major apart from the patch we
   were already carrying.

[ci:skip-build]: already built successfully in CI
This commit is contained in:
Robert Mader 2024-07-25 16:10:05 +02:00 committed by Oliver Smith
parent 343c982087
commit c54777db04
No known key found for this signature in database
GPG key ID: 5AE7F5513E0885CB
6 changed files with 25 additions and 324 deletions

View file

@ -1,297 +0,0 @@
From 437e601653e69c82f5396979d99e7b9b5bb6086b Mon Sep 17 00:00:00 2001
From: Robert Mader <robert.mader@collabora.com>
Date: Tue, 18 Jun 2024 08:31:59 +0200
Subject: [PATCH] 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>
---
src/libcamera/software_isp/debayer_cpu.cpp | 75 +++++++++++++++++-----
src/libcamera/software_isp/debayer_cpu.h | 10 +++
2 files changed, 69 insertions(+), 16 deletions(-)
diff --git a/src/libcamera/software_isp/debayer_cpu.cpp b/src/libcamera/software_isp/debayer_cpu.cpp
index c038eed4..f8d2677d 100644
--- a/src/libcamera/software_isp/debayer_cpu.cpp
+++ b/src/libcamera/software_isp/debayer_cpu.cpp
@@ -74,6 +74,8 @@ DebayerCpu::~DebayerCpu()
*dst++ = blue_[curr[x] / (div)]; \
*dst++ = green_[(prev[x] + curr[x - p] + curr[x + n] + next[x]) / (4 * (div))]; \
*dst++ = red_[(prev[x - p] + prev[x + n] + next[x - p] + next[x + n]) / (4 * (div))]; \
+ if constexpr (addAlphaByte) \
+ *dst++ = 255; \
x++;
/*
@@ -85,6 +87,8 @@ DebayerCpu::~DebayerCpu()
*dst++ = blue_[(prev[x] + next[x]) / (2 * (div))]; \
*dst++ = green_[curr[x] / (div)]; \
*dst++ = red_[(curr[x - p] + curr[x + n]) / (2 * (div))]; \
+ if constexpr (addAlphaByte) \
+ *dst++ = 255; \
x++;
/*
@@ -96,6 +100,8 @@ DebayerCpu::~DebayerCpu()
*dst++ = blue_[(curr[x - p] + curr[x + n]) / (2 * (div))]; \
*dst++ = green_[curr[x] / (div)]; \
*dst++ = red_[(prev[x] + next[x]) / (2 * (div))]; \
+ if constexpr (addAlphaByte) \
+ *dst++ = 255; \
x++;
/*
@@ -107,8 +113,11 @@ DebayerCpu::~DebayerCpu()
*dst++ = blue_[(prev[x - p] + prev[x + n] + next[x - p] + next[x + n]) / (4 * (div))]; \
*dst++ = green_[(prev[x] + curr[x - p] + curr[x + n] + next[x]) / (4 * (div))]; \
*dst++ = red_[curr[x] / (div)]; \
+ if constexpr (addAlphaByte) \
+ *dst++ = 255; \
x++;
+template<bool addAlphaByte>
void DebayerCpu::debayer8_BGBG_BGR888(uint8_t *dst, const uint8_t *src[])
{
DECLARE_SRC_POINTERS(uint8_t)
@@ -119,6 +128,7 @@ void DebayerCpu::debayer8_BGBG_BGR888(uint8_t *dst, const uint8_t *src[])
}
}
+template<bool addAlphaByte>
void DebayerCpu::debayer8_GRGR_BGR888(uint8_t *dst, const uint8_t *src[])
{
DECLARE_SRC_POINTERS(uint8_t)
@@ -129,6 +139,7 @@ void DebayerCpu::debayer8_GRGR_BGR888(uint8_t *dst, const uint8_t *src[])
}
}
+template<bool addAlphaByte>
void DebayerCpu::debayer10_BGBG_BGR888(uint8_t *dst, const uint8_t *src[])
{
DECLARE_SRC_POINTERS(uint16_t)
@@ -140,6 +151,7 @@ void DebayerCpu::debayer10_BGBG_BGR888(uint8_t *dst, const uint8_t *src[])
}
}
+template<bool addAlphaByte>
void DebayerCpu::debayer10_GRGR_BGR888(uint8_t *dst, const uint8_t *src[])
{
DECLARE_SRC_POINTERS(uint16_t)
@@ -151,6 +163,7 @@ void DebayerCpu::debayer10_GRGR_BGR888(uint8_t *dst, const uint8_t *src[])
}
}
+template<bool addAlphaByte>
void DebayerCpu::debayer12_BGBG_BGR888(uint8_t *dst, const uint8_t *src[])
{
DECLARE_SRC_POINTERS(uint16_t)
@@ -162,6 +175,7 @@ void DebayerCpu::debayer12_BGBG_BGR888(uint8_t *dst, const uint8_t *src[])
}
}
+template<bool addAlphaByte>
void DebayerCpu::debayer12_GRGR_BGR888(uint8_t *dst, const uint8_t *src[])
{
DECLARE_SRC_POINTERS(uint16_t)
@@ -173,6 +187,7 @@ void DebayerCpu::debayer12_GRGR_BGR888(uint8_t *dst, const uint8_t *src[])
}
}
+template<bool addAlphaByte>
void DebayerCpu::debayer10P_BGBG_BGR888(uint8_t *dst, const uint8_t *src[])
{
const int widthInBytes = window_.width * 5 / 4;
@@ -198,6 +213,7 @@ void DebayerCpu::debayer10P_BGBG_BGR888(uint8_t *dst, const uint8_t *src[])
}
}
+template<bool addAlphaByte>
void DebayerCpu::debayer10P_GRGR_BGR888(uint8_t *dst, const uint8_t *src[])
{
const int widthInBytes = window_.width * 5 / 4;
@@ -218,6 +234,7 @@ void DebayerCpu::debayer10P_GRGR_BGR888(uint8_t *dst, const uint8_t *src[])
}
}
+template<bool addAlphaByte>
void DebayerCpu::debayer10P_GBGB_BGR888(uint8_t *dst, const uint8_t *src[])
{
const int widthInBytes = window_.width * 5 / 4;
@@ -238,6 +255,7 @@ void DebayerCpu::debayer10P_GBGB_BGR888(uint8_t *dst, const uint8_t *src[])
}
}
+template<bool addAlphaByte>
void DebayerCpu::debayer10P_RGRG_BGR888(uint8_t *dst, const uint8_t *src[])
{
const int widthInBytes = window_.width * 5 / 4;
@@ -280,7 +298,12 @@ int DebayerCpu::getInputConfig(PixelFormat inputFormat, DebayerInputConfig &conf
config.bpp = (bayerFormat.bitDepth + 7) & ~7;
config.patternSize.width = 2;
config.patternSize.height = 2;
- config.outputFormats = std::vector<PixelFormat>({ formats::RGB888, formats::BGR888 });
+ config.outputFormats = std::vector<PixelFormat>({ formats::RGB888,
+ formats::XRGB8888,
+ formats::ARGB8888,
+ formats::BGR888,
+ formats::XBGR8888,
+ formats::ABGR8888 });
return 0;
}
@@ -290,7 +313,12 @@ int DebayerCpu::getInputConfig(PixelFormat inputFormat, DebayerInputConfig &conf
config.bpp = 10;
config.patternSize.width = 4; /* 5 bytes per *4* pixels */
config.patternSize.height = 2;
- config.outputFormats = std::vector<PixelFormat>({ formats::RGB888, formats::BGR888 });
+ config.outputFormats = std::vector<PixelFormat>({ formats::RGB888,
+ formats::XRGB8888,
+ formats::ARGB8888,
+ formats::BGR888,
+ formats::XBGR8888,
+ formats::ABGR8888 });
return 0;
}
@@ -306,6 +334,12 @@ int DebayerCpu::getOutputConfig(PixelFormat outputFormat, DebayerOutputConfig &c
return 0;
}
+ if (outputFormat == formats::XRGB8888 || outputFormat == formats::ARGB8888 ||
+ outputFormat == formats::XBGR8888 || outputFormat == formats::ABGR8888) {
+ config.bpp = 32;
+ return 0;
+ }
+
LOG(Debayer, Info)
<< "Unsupported output format " << outputFormat.toString();
return -EINVAL;
@@ -341,6 +375,7 @@ int DebayerCpu::setDebayerFunctions(PixelFormat inputFormat, PixelFormat outputF
{
BayerFormat bayerFormat =
BayerFormat::fromPixelFormat(inputFormat);
+ bool addAlphaByte = false;
xShift_ = 0;
swapRedBlueGains_ = false;
@@ -351,8 +386,16 @@ int DebayerCpu::setDebayerFunctions(PixelFormat inputFormat, PixelFormat outputF
};
switch (outputFormat) {
+ case formats::XRGB8888:
+ case formats::ARGB8888:
+ addAlphaByte = true;
+ [[fallthrough]];
case formats::RGB888:
break;
+ case formats::XBGR8888:
+ case formats::ABGR8888:
+ addAlphaByte = true;
+ [[fallthrough]];
case formats::BGR888:
/* Swap R and B in bayer order to generate BGR888 instead of RGB888 */
swapRedBlueGains_ = true;
@@ -383,16 +426,16 @@ int DebayerCpu::setDebayerFunctions(PixelFormat inputFormat, PixelFormat outputF
isStandardBayerOrder(bayerFormat.order)) {
switch (bayerFormat.bitDepth) {
case 8:
- debayer0_ = &DebayerCpu::debayer8_BGBG_BGR888;
- debayer1_ = &DebayerCpu::debayer8_GRGR_BGR888;
+ debayer0_ = addAlphaByte ? &DebayerCpu::debayer8_BGBG_BGR888<true> : &DebayerCpu::debayer8_BGBG_BGR888<false>;
+ debayer1_ = addAlphaByte ? &DebayerCpu::debayer8_GRGR_BGR888<true> : &DebayerCpu::debayer8_GRGR_BGR888<false>;
break;
case 10:
- debayer0_ = &DebayerCpu::debayer10_BGBG_BGR888;
- debayer1_ = &DebayerCpu::debayer10_GRGR_BGR888;
+ debayer0_ = addAlphaByte ? &DebayerCpu::debayer10_BGBG_BGR888<true> : &DebayerCpu::debayer10_BGBG_BGR888<false>;
+ debayer1_ = addAlphaByte ? &DebayerCpu::debayer10_GRGR_BGR888<true> : &DebayerCpu::debayer10_GRGR_BGR888<false>;
break;
case 12:
- debayer0_ = &DebayerCpu::debayer12_BGBG_BGR888;
- debayer1_ = &DebayerCpu::debayer12_GRGR_BGR888;
+ debayer0_ = addAlphaByte ? &DebayerCpu::debayer12_BGBG_BGR888<true> : &DebayerCpu::debayer12_BGBG_BGR888<false>;
+ debayer1_ = addAlphaByte ? &DebayerCpu::debayer12_GRGR_BGR888<true> : &DebayerCpu::debayer12_GRGR_BGR888<false>;
break;
}
setupStandardBayerOrder(bayerFormat.order);
@@ -403,20 +446,20 @@ int DebayerCpu::setDebayerFunctions(PixelFormat inputFormat, PixelFormat outputF
bayerFormat.packing == BayerFormat::Packing::CSI2) {
switch (bayerFormat.order) {
case BayerFormat::BGGR:
- debayer0_ = &DebayerCpu::debayer10P_BGBG_BGR888;
- debayer1_ = &DebayerCpu::debayer10P_GRGR_BGR888;
+ debayer0_ = addAlphaByte ? &DebayerCpu::debayer10P_BGBG_BGR888<true> : &DebayerCpu::debayer10P_BGBG_BGR888<false>;
+ debayer1_ = addAlphaByte ? &DebayerCpu::debayer10P_GRGR_BGR888<true> : &DebayerCpu::debayer10P_GRGR_BGR888<false>;
return 0;
case BayerFormat::GBRG:
- debayer0_ = &DebayerCpu::debayer10P_GBGB_BGR888;
- debayer1_ = &DebayerCpu::debayer10P_RGRG_BGR888;
+ debayer0_ = addAlphaByte ? &DebayerCpu::debayer10P_GBGB_BGR888<true> : &DebayerCpu::debayer10P_GBGB_BGR888<false>;
+ debayer1_ = addAlphaByte ? &DebayerCpu::debayer10P_RGRG_BGR888<true> : &DebayerCpu::debayer10P_RGRG_BGR888<false>;
return 0;
case BayerFormat::GRBG:
- debayer0_ = &DebayerCpu::debayer10P_GRGR_BGR888;
- debayer1_ = &DebayerCpu::debayer10P_BGBG_BGR888;
+ debayer0_ = addAlphaByte ? &DebayerCpu::debayer10P_GRGR_BGR888<true> : &DebayerCpu::debayer10P_GRGR_BGR888<false>;
+ debayer1_ = addAlphaByte ? &DebayerCpu::debayer10P_BGBG_BGR888<true> : &DebayerCpu::debayer10P_BGBG_BGR888<false>;
return 0;
case BayerFormat::RGGB:
- debayer0_ = &DebayerCpu::debayer10P_RGRG_BGR888;
- debayer1_ = &DebayerCpu::debayer10P_GBGB_BGR888;
+ debayer0_ = addAlphaByte ? &DebayerCpu::debayer10P_RGRG_BGR888<true> : &DebayerCpu::debayer10P_RGRG_BGR888<false>;
+ debayer1_ = addAlphaByte ? &DebayerCpu::debayer10P_GBGB_BGR888<true> : &DebayerCpu::debayer10P_GBGB_BGR888<false>;
return 0;
default:
break;
diff --git a/src/libcamera/software_isp/debayer_cpu.h b/src/libcamera/software_isp/debayer_cpu.h
index be7dcdca..1dac6435 100644
--- a/src/libcamera/software_isp/debayer_cpu.h
+++ b/src/libcamera/software_isp/debayer_cpu.h
@@ -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 {
--
2.45.2

View file

@ -1,4 +1,4 @@
From 278114dc6f3db69bacd80327516bc397dd1b881f Mon Sep 17 00:00:00 2001 From 1fe279d7fcda1b33edd1e82a7a0763d012d1ca7d Mon Sep 17 00:00:00 2001
From: Robert Mader <robert.mader@collabora.com> From: Robert Mader <robert.mader@collabora.com>
Date: Mon, 22 Apr 2024 23:30:31 +0200 Date: Mon, 22 Apr 2024 23:30:31 +0200
Subject: [PATCH 1/4] libcamera: simple: Enable softwareISP for the librem5 Subject: [PATCH 1/4] libcamera: simple: Enable softwareISP for the librem5
@ -9,18 +9,18 @@ And - in theory - on similar devices.
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index db3575c3..ac792b35 100644 index c050966a..b6b8f854 100644
--- a/src/libcamera/pipeline/simple/simple.cpp --- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp +++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -198,7 +198,7 @@ namespace { @@ -197,7 +197,7 @@ namespace {
static const SimplePipelineInfo supportedDevices[] = { static const SimplePipelineInfo supportedDevices[] = {
{ "dcmipp", {}, false }, { "dcmipp", {}, false },
- { "imx7-csi", { { "pxp", 1 } }, false }, - { "imx7-csi", { { "pxp", 1 } }, false },
+ { "imx7-csi", { { "pxp", 1 } }, true }, + { "imx7-csi", { { "pxp", 1 } }, true },
{ "j721e-csi2rx", {}, false }, { "intel-ipu6", {}, true },
{ "j721e-csi2rx", {}, true },
{ "mtk-seninf", { { "mtk-mdp", 3 } }, false }, { "mtk-seninf", { { "mtk-mdp", 3 } }, false },
{ "mxc-isi", {}, false },
-- --
2.45.1 2.45.2

View file

@ -1,4 +1,4 @@
From f430e03c6b155d0e841db33020d53cac566a420e Mon Sep 17 00:00:00 2001 From 2531eab53574092da0451f4f3b7e5dbc7f9ecd13 Mon Sep 17 00:00:00 2001
From: Robert Mader <robert.mader@collabora.com> From: Robert Mader <robert.mader@collabora.com>
Date: Thu, 9 May 2024 21:07:07 +0200 Date: Thu, 9 May 2024 21:07:07 +0200
Subject: [PATCH 2/4] libcamera: simple: Force-disable softwareISP for Subject: [PATCH 2/4] libcamera: simple: Force-disable softwareISP for
@ -12,7 +12,7 @@ swIsp - at the same time.
1 file changed, 9 insertions(+) 1 file changed, 9 insertions(+)
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index ac792b35..0ccbfa90 100644 index b6b8f854..86285bc4 100644
--- a/src/libcamera/pipeline/simple/simple.cpp --- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp +++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
@ -23,7 +23,7 @@ index ac792b35..0ccbfa90 100644
#include <iterator> #include <iterator>
#include <list> #include <list>
#include <map> #include <map>
@@ -1546,6 +1547,14 @@ bool SimplePipelineHandler::match(DeviceEnumerator *enumerator) @@ -1544,6 +1545,14 @@ bool SimplePipelineHandler::match(DeviceEnumerator *enumerator)
swIspEnabled_ = info->swIspEnabled; swIspEnabled_ = info->swIspEnabled;
@ -39,5 +39,5 @@ index ac792b35..0ccbfa90 100644
std::vector<MediaEntity *> sensors = locateSensors(); std::vector<MediaEntity *> sensors = locateSensors();
if (sensors.empty()) { if (sensors.empty()) {
-- --
2.45.1 2.45.2

View file

@ -1,4 +1,4 @@
From ac83a8feb2d7d9539456dd301c08f89f1cd08b7d Mon Sep 17 00:00:00 2001 From 53e200dca1b66d2d51b1ad3546a265a9e146f6c1 Mon Sep 17 00:00:00 2001
From: Robert Mader <robert.mader@collabora.com> From: Robert Mader <robert.mader@collabora.com>
Date: Wed, 1 May 2024 18:12:02 +0200 Date: Wed, 1 May 2024 18:12:02 +0200
Subject: [PATCH 3/4] libcamera: simple: Enable softISP for the Pinephone Subject: [PATCH 3/4] libcamera: simple: Enable softISP for the Pinephone
@ -15,7 +15,7 @@ improves, this can be dropped again.
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 0ccbfa90..71a44237 100644 index 86285bc4..c2658703 100644
--- a/src/libcamera/pipeline/simple/simple.cpp --- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp +++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -204,7 +204,7 @@ static const SimplePipelineInfo supportedDevices[] = { @@ -204,7 +204,7 @@ static const SimplePipelineInfo supportedDevices[] = {
@ -28,5 +28,5 @@ index 0ccbfa90..71a44237 100644
} /* namespace */ } /* namespace */
-- --
2.45.1 2.45.2

View file

@ -1,4 +1,4 @@
From 0e10f1da5892156dc31445918303dc5eb80f9d0f Mon Sep 17 00:00:00 2001 From 12d11a74d3a9bf1a3e5ecf31e15219363925bb60 Mon Sep 17 00:00:00 2001
From: Robert Mader <robert.mader@collabora.com> From: Robert Mader <robert.mader@collabora.com>
Date: Mon, 6 May 2024 21:21:57 +0200 Date: Mon, 6 May 2024 21:21:57 +0200
Subject: [PATCH 4/4] libcamera: simple: Skip hwISP formats if swISP is active Subject: [PATCH 4/4] libcamera: simple: Skip hwISP formats if swISP is active
@ -13,7 +13,7 @@ ISP when the SW ISP is enabled, to ensure we use the later.
1 file changed, 1 insertion(+), 3 deletions(-) 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 71a44237..36604a83 100644 index c2658703..27ac1522 100644
--- a/src/libcamera/pipeline/simple/simple.cpp --- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp +++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -652,9 +652,7 @@ void SimpleCameraData::tryPipeline(unsigned int code, const Size &size) @@ -652,9 +652,7 @@ void SimpleCameraData::tryPipeline(unsigned int code, const Size &size)
@ -28,5 +28,5 @@ index 71a44237..36604a83 100644
} else { } else {
config.outputFormats = { pixelFormat }; config.outputFormats = { pixelFormat };
-- --
2.45.1 2.45.2

View file

@ -2,8 +2,8 @@
pkgname=libcamera pkgname=libcamera
pkgver=9999 pkgver=9999
_pkgver=0.3.0 _pkgver=0.3.1
pkgrel=1 pkgrel=2
pkgdesc="Linux camera framework" pkgdesc="Linux camera framework"
url="https://libcamera.org/" url="https://libcamera.org/"
arch="all" arch="all"
@ -13,7 +13,7 @@ depends_dev="
glib-dev glib-dev
gnutls-dev gnutls-dev
gst-plugins-bad-dev gst-plugins-bad-dev
qt5-qtbase-dev qt6-qtbase-dev
" "
# upstream calls 'date' with a non-POSIX option so we pull in coreutils # upstream calls 'date' with a non-POSIX option so we pull in coreutils
makedepends="$depends_dev makedepends="$depends_dev
@ -29,7 +29,7 @@ makedepends="$depends_dev
py3-ply py3-ply
py3-sphinx py3-sphinx
py3-yaml py3-yaml
qt5-qttools-dev qt6-qttools-dev
yaml-dev yaml-dev
" "
subpackages=" subpackages="
@ -47,7 +47,6 @@ source="https://gitlab.freedesktop.org/camera/libcamera/-/archive/v$_pkgver/libc
0002-libcamera-simple-Force-disable-softwareISP-for-milli.patch 0002-libcamera-simple-Force-disable-softwareISP-for-milli.patch
0003-libcamera-simple-Enable-softISP-for-the-Pinephone.patch 0003-libcamera-simple-Enable-softISP-for-the-Pinephone.patch
0004-libcamera-simple-Skip-hwISP-formats-if-swISP-is-acti.patch 0004-libcamera-simple-Skip-hwISP-formats-if-swISP-is-acti.patch
0001-libcamera-debayer_cpu-Add-32bits-aligned-output-form.patch
qcam.desktop qcam.desktop
90-libcamera.rules 90-libcamera.rules
" "
@ -147,13 +146,12 @@ tools() {
} }
sha512sums=" sha512sums="
d232593b6cc7f2b772e8cd0b6751fee00ddbde256328c4cf7162726d4766149afca36411075e2b55a8a009d52758f01874ff08b947b508dbe5e3059fa4a92c86 libcamera-v0.3.0.tar.gz 85f62383194ca597baab36375e7b5ee99d6a8580fd54baf2615e5854bef790ef5ae57a92347c7e8408e2b9c04330d467dc56fab1af2f1c478c679a5a05e4f562 libcamera-v0.3.1.tar.gz
69d6e29d764f752feed453b9c0f61c81cdb506eb14893d0d99d0d6834f369f1e816c2381dfab5ad1a744a3d11211af02d75dc041ecc87c7e4f73e2bd34c666c2 0001-qcam-Decrease-minimum-width-of-selector-dialog.patch 69d6e29d764f752feed453b9c0f61c81cdb506eb14893d0d99d0d6834f369f1e816c2381dfab5ad1a744a3d11211af02d75dc041ecc87c7e4f73e2bd34c666c2 0001-qcam-Decrease-minimum-width-of-selector-dialog.patch
495bc434fe188d0b83c88325657946e57b0a31d34d5249d8ea02fbfb4025ff15080a5da6bf61866eeffa63dad9b2b9a7b8abb456a306da8925c39775eda339bb 0001-libcamera-simple-Enable-softwareISP-for-the-librem5.patch a5809b7664685bb44ca05a722655d8b94991c90306b69be1e7b135a1ad72699ab69b0e9bf7edbee041700087b7d7bc7ae1ef704334e7672aa81e9e7c96ccf7f9 0001-libcamera-simple-Enable-softwareISP-for-the-librem5.patch
26b274c32c9fc0d8220f58c7e37f6c0c9e590b2ff07adbc908b4c38ae4b7104639bb8ecf57b2faa15d2fae932d0021b51ad6a31a8762a05d3f876d55f0fef242 0002-libcamera-simple-Force-disable-softwareISP-for-milli.patch 979259bb16112b1fbbec0543a1d642a65e62f24ba10b229caffe68398da343160d98c2811f923877ce5d2c9a3c8a53205feb2eb4fbaf921612bbc5419d6be1df 0002-libcamera-simple-Force-disable-softwareISP-for-milli.patch
68b66432d3e60adc7329713b1362d023244516b697fbcb67112d9aad1367d2c65a100470b1ab6747074ca2717ec18e848b3888b382f75be1646e182894c6a37c 0003-libcamera-simple-Enable-softISP-for-the-Pinephone.patch 47616a06fad66df31e29ebd9c024c95bdea542dd1f5c0ed448a242e35a6d9909f973a74332bfe084478c91ac7a2d778d7b10270cd493dba07bb8d5ad34e9544c 0003-libcamera-simple-Enable-softISP-for-the-Pinephone.patch
4bfc5c35cf6bc8f1695744486a43695efa7bef5ce1c3bc93bda227832d08394f3bb0115863f7a30a8adfc4c93af293cdd5063fdb78f8d850f4d0c2ac7b1ff123 0004-libcamera-simple-Skip-hwISP-formats-if-swISP-is-acti.patch 685b8cfae3bb9a000d95a36d9daf9d4ff8770fd877e43c69f0fc0768ebd457282f03ec6ad9bf3a33e72765665bbd642af5db66c1a82aac249ce8c2522291dee6 0004-libcamera-simple-Skip-hwISP-formats-if-swISP-is-acti.patch
231a355350d7bd25e997f58bf145c81cad9af852e131d005dcb75d9529ec56c5eff966fca106db1be3e3cefadc1539915340803d6d3a650d862d32fcd066fe55 0001-libcamera-debayer_cpu-Add-32bits-aligned-output-form.patch
22167a4eceb6d1b40b0b7c45fdf116c71684f5340de7f767535cb8e160ad9d2ae0f00cb3d461f73a344520a48a4641cf46226841d78bee06bfbfd2a91337f754 qcam.desktop 22167a4eceb6d1b40b0b7c45fdf116c71684f5340de7f767535cb8e160ad9d2ae0f00cb3d461f73a344520a48a4641cf46226841d78bee06bfbfd2a91337f754 qcam.desktop
444a0a52b374751c388f807b6adcc63b36488547adaa5fb70b606dc5646132b1a893a76254236b5c80f3a6d041a4597d413e050af0323cd05626d758190838e2 90-libcamera.rules 444a0a52b374751c388f807b6adcc63b36488547adaa5fb70b606dc5646132b1a893a76254236b5c80f3a6d041a4597d413e050af0323cd05626d758190838e2 90-libcamera.rules
" "