temp/libcamera: upgrade to 0.6.0
See https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.6.0 Remove various upstreamed and move downstream tuning files into a folder instead of wrapping them in patches. Also sync up a bit to the alpine package by adding dependencies and the python package. Note: unfortunately this release does not contain the GPU-ISP. There are various improvements to the SW-ISP, the simple pipeline handler and other areas which should improve the experience on various devices with pmOS, though. Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7445>
This commit is contained in:
parent
52de048665
commit
aa9eb76406
28 changed files with 165 additions and 753 deletions
|
|
@ -1,7 +1,7 @@
|
|||
From ced95de9a798243f0152a5e2d8743d8cdc58d65d Mon Sep 17 00:00:00 2001
|
||||
From 0667741f5e4769a9918cc94f5d2a699d7bdaf9b3 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@collabora.com>
|
||||
Date: Mon, 22 Apr 2024 23:30:31 +0200
|
||||
Subject: [PATCH 06/17] libcamera: simple: Enable softwareISP for the librem5
|
||||
Subject: [PATCH 01/12] libcamera: simple: Enable softwareISP for the librem5
|
||||
|
||||
And - in theory - on similar devices.
|
||||
---
|
||||
|
|
@ -9,18 +9,18 @@ And - in theory - on similar devices.
|
|||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
|
||||
index 4323472e1..74e0683f4 100644
|
||||
index a06a52926..a62fa7b8c 100644
|
||||
--- a/src/libcamera/pipeline/simple/simple.cpp
|
||||
+++ b/src/libcamera/pipeline/simple/simple.cpp
|
||||
@@ -250,7 +250,7 @@ namespace {
|
||||
@@ -254,7 +254,7 @@ namespace {
|
||||
|
||||
static const SimplePipelineInfo supportedDevices[] = {
|
||||
{ "dcmipp", {}, false },
|
||||
- { "imx7-csi", { { "pxp", 1 } }, false },
|
||||
+ { "imx7-csi", { { "pxp", 1 } }, true },
|
||||
{ "intel-ipu6", {}, true },
|
||||
{ "intel-ipu7", {}, true },
|
||||
{ "j721e-csi2rx", {}, true },
|
||||
{ "mtk-seninf", { { "mtk-mdp", 3 } }, false },
|
||||
--
|
||||
2.50.1
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
From b5a01e2c62347f6815569cb16ce9ccbb85d6cb19 Mon Sep 17 00:00:00 2001
|
||||
From: Milan Zamazal <mzamazal@redhat.com>
|
||||
Date: Thu, 21 Aug 2025 15:41:37 +0200
|
||||
Subject: [PATCH 01/17] libcamera: software_isp: Clarify SwStatsCpu::setWindow
|
||||
use
|
||||
|
||||
The window coordinates passed to SwStatsCpu::setWindow are confusing.
|
||||
Let's clarify what the coordinates should be.
|
||||
|
||||
A source of confusion is that the specified window is relative to the
|
||||
processed area. Debayering adjusts line pointers for its processed area
|
||||
and this is what's also passed to stats processing. The window passed
|
||||
to SwStatsCpu::setWindow should either specify the size of the whole
|
||||
processed (not image) area, or its cropping in case the stats shouldn't
|
||||
be gathered over the whole processed area. This patch should clarify
|
||||
this in the code.
|
||||
|
||||
Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
|
||||
---
|
||||
src/libcamera/software_isp/debayer_cpu.cpp | 6 +++++-
|
||||
src/libcamera/software_isp/swstats_cpu.cpp | 16 ++++++++++++++++
|
||||
2 files changed, 21 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/libcamera/software_isp/debayer_cpu.cpp b/src/libcamera/software_isp/debayer_cpu.cpp
|
||||
index 66f6038c1..bcc847ae6 100644
|
||||
--- a/src/libcamera/software_isp/debayer_cpu.cpp
|
||||
+++ b/src/libcamera/software_isp/debayer_cpu.cpp
|
||||
@@ -541,7 +541,11 @@ int DebayerCpu::configure(const StreamConfiguration &inputCfg,
|
||||
window_.width = outputCfg.size.width;
|
||||
window_.height = outputCfg.size.height;
|
||||
|
||||
- /* Don't pass x,y since process() already adjusts src before passing it */
|
||||
+ /*
|
||||
+ * Set the stats window to the whole processed window. Its coordinates are
|
||||
+ * relative to the debayered area since debayering passes only the part of
|
||||
+ * data to be processed to the stats; see SwStatsCpu::setWindow.
|
||||
+ */
|
||||
stats_->setWindow(Rectangle(window_.size()));
|
||||
|
||||
/* pad with patternSize.Width on both left and right side */
|
||||
diff --git a/src/libcamera/software_isp/swstats_cpu.cpp b/src/libcamera/software_isp/swstats_cpu.cpp
|
||||
index 4b77b3600..72aa88b69 100644
|
||||
--- a/src/libcamera/software_isp/swstats_cpu.cpp
|
||||
+++ b/src/libcamera/software_isp/swstats_cpu.cpp
|
||||
@@ -416,6 +416,22 @@ int SwStatsCpu::configure(const StreamConfiguration &inputCfg)
|
||||
/**
|
||||
* \brief Specify window coordinates over which to gather statistics
|
||||
* \param[in] window The window object.
|
||||
+ *
|
||||
+ * This method specifies the image area over which to gather the statistics.
|
||||
+ * It must be called to set the area, otherwise the default zero-sized
|
||||
+ * \a Rectangle is used and no statistics is gathered.
|
||||
+ *
|
||||
+ * The specified \a window is relative to what is passed to processLine*
|
||||
+ * methods. Typically, this means processLine* methods get only data from the
|
||||
+ * processed area and \a window is \a Rectangle with (0, 0) top-left point and
|
||||
+ * of the same size as the processed area. But if statistics is gathered only
|
||||
+ * from some part of the image, e.g. its centre, \a window should specify such a
|
||||
+ * restriction accordingly.
|
||||
+ *
|
||||
+ * The method may adjust the window slightly if it is not aligned according to
|
||||
+ * the bayer pattern determined in \a SwStatsCpu::configure(). Such an
|
||||
+ * adjustment is guaranteed to not exceed the bounds of
|
||||
+ * Rectangle(0, 0, window.width, window.height).
|
||||
*/
|
||||
void SwStatsCpu::setWindow(const Rectangle &window)
|
||||
{
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
From cb0c4005f0303798c700352e00c9389e3e2f463b Mon Sep 17 00:00:00 2001
|
||||
From 125ab037a4395c1e9fffb0bd68fb2c3eeae95078 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@collabora.com>
|
||||
Date: Thu, 9 May 2024 21:07:07 +0200
|
||||
Subject: [PATCH 07/17] libcamera: simple: Force-disable softwareISP for
|
||||
Subject: [PATCH 02/12] libcamera: simple: Force-disable softwareISP for
|
||||
millipixels
|
||||
|
||||
As the later uses libcamera and requires raw-streams to get passed
|
||||
|
|
@ -12,7 +12,7 @@ swIsp - at the same time.
|
|||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
|
||||
index 74e0683f4..eb405e52c 100644
|
||||
index a62fa7b8c..a0aad052f 100644
|
||||
--- a/src/libcamera/pipeline/simple/simple.cpp
|
||||
+++ b/src/libcamera/pipeline/simple/simple.cpp
|
||||
@@ -7,6 +7,7 @@
|
||||
|
|
@ -23,9 +23,9 @@ index 74e0683f4..eb405e52c 100644
|
|||
#include <iterator>
|
||||
#include <list>
|
||||
#include <map>
|
||||
@@ -1680,6 +1681,14 @@ bool SimplePipelineHandler::matchDevice(MediaDevice *media,
|
||||
|
||||
swIspEnabled_ = info.swIspEnabled;
|
||||
@@ -1773,6 +1774,14 @@ bool SimplePipelineHandler::matchDevice(std::shared_ptr<MediaDevice> media,
|
||||
}
|
||||
}
|
||||
|
||||
+ std::string comm_string;
|
||||
+ std::ifstream("/proc/self/comm") >> comm_string;
|
||||
|
|
@ -36,8 +36,8 @@ index 74e0683f4..eb405e52c 100644
|
|||
+ }
|
||||
+
|
||||
/* Locate the sensors. */
|
||||
std::vector<MediaEntity *> sensors = locateSensors(media);
|
||||
std::vector<MediaEntity *> sensors = locateSensors(media.get());
|
||||
if (sensors.empty()) {
|
||||
--
|
||||
2.50.1
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
From d3aaab99a267c160cd67cc853b61a7d5d972ad0f Mon Sep 17 00:00:00 2001
|
||||
From: Milan Zamazal <mzamazal@redhat.com>
|
||||
Date: Thu, 21 Aug 2025 15:41:38 +0200
|
||||
Subject: [PATCH 02/17] libcamera: software_isp: Pass correct y-coordinate to
|
||||
stats
|
||||
|
||||
The window set by SwStatsCpu::setWindow is relative to the processed
|
||||
image area. But debayering passes the processed line y-coordinate to
|
||||
the stats relative to the whole image area. This can result in
|
||||
gathering stats from a wrong image area or in not gathering stats at
|
||||
all.
|
||||
|
||||
Let's pass the correct y-coordinate to the stats processing methods.
|
||||
|
||||
Bug: https://bugs.libcamera.org/show_bug.cgi?id=280
|
||||
Co-developed-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
|
||||
Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
|
||||
---
|
||||
src/libcamera/software_isp/debayer_cpu.cpp | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/libcamera/software_isp/debayer_cpu.cpp b/src/libcamera/software_isp/debayer_cpu.cpp
|
||||
index bcc847ae6..185edd814 100644
|
||||
--- a/src/libcamera/software_isp/debayer_cpu.cpp
|
||||
+++ b/src/libcamera/software_isp/debayer_cpu.cpp
|
||||
@@ -648,7 +648,7 @@ void DebayerCpu::memcpyNextLine(const uint8_t *linePointers[])
|
||||
|
||||
void DebayerCpu::process2(const uint8_t *src, uint8_t *dst)
|
||||
{
|
||||
- unsigned int yEnd = window_.y + window_.height;
|
||||
+ unsigned int yEnd = window_.height;
|
||||
/* Holds [0] previous- [1] current- [2] next-line */
|
||||
const uint8_t *linePointers[3];
|
||||
|
||||
@@ -664,12 +664,12 @@ void DebayerCpu::process2(const uint8_t *src, uint8_t *dst)
|
||||
linePointers[1] = src + inputConfig_.stride;
|
||||
linePointers[2] = src;
|
||||
/* Last 2 lines also need special handling */
|
||||
- yEnd -= 2;
|
||||
+ yEnd = (yEnd > 2 ? yEnd - 2 : 0);
|
||||
}
|
||||
|
||||
setupInputMemcpy(linePointers);
|
||||
|
||||
- for (unsigned int y = window_.y; y < yEnd; y += 2) {
|
||||
+ for (unsigned int y = 0; y < yEnd; y += 2) {
|
||||
shiftLinePointers(linePointers, src);
|
||||
memcpyNextLine(linePointers);
|
||||
stats_->processLine0(y, linePointers);
|
||||
@@ -703,7 +703,7 @@ void DebayerCpu::process2(const uint8_t *src, uint8_t *dst)
|
||||
|
||||
void DebayerCpu::process4(const uint8_t *src, uint8_t *dst)
|
||||
{
|
||||
- const unsigned int yEnd = window_.y + window_.height;
|
||||
+ const unsigned int yEnd = window_.height;
|
||||
/*
|
||||
* This holds pointers to [0] 2-lines-up [1] 1-line-up [2] current-line
|
||||
* [3] 1-line-down [4] 2-lines-down.
|
||||
@@ -721,7 +721,7 @@ void DebayerCpu::process4(const uint8_t *src, uint8_t *dst)
|
||||
|
||||
setupInputMemcpy(linePointers);
|
||||
|
||||
- for (unsigned int y = window_.y; y < yEnd; y += 4) {
|
||||
+ for (unsigned int y = 0; y < yEnd; y += 4) {
|
||||
shiftLinePointers(linePointers, src);
|
||||
memcpyNextLine(linePointers);
|
||||
stats_->processLine0(y, linePointers);
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
From a03f8f4e44e5b6d794022f8de8f54f2f68692d64 Mon Sep 17 00:00:00 2001
|
||||
From 8e43d2a54de04dff85816fdcc1723b6abcd2fef8 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@collabora.com>
|
||||
Date: Wed, 1 May 2024 18:12:02 +0200
|
||||
Subject: [PATCH 08/17] libcamera: simple: Enable softISP for the Pinephone
|
||||
Subject: [PATCH 03/12] libcamera: simple: Enable softISP for the Pinephone
|
||||
|
||||
In theory the PP should be able to use the actual HW ISP, however in
|
||||
practice this does not work well yet - especially as the driver for the
|
||||
|
|
@ -15,10 +15,10 @@ improves, this can be dropped again.
|
|||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
|
||||
index eb405e52c..f4b49b1ab 100644
|
||||
index a0aad052f..cc3bdc84b 100644
|
||||
--- a/src/libcamera/pipeline/simple/simple.cpp
|
||||
+++ b/src/libcamera/pipeline/simple/simple.cpp
|
||||
@@ -257,7 +257,7 @@ static const SimplePipelineInfo supportedDevices[] = {
|
||||
@@ -262,7 +262,7 @@ static const SimplePipelineInfo supportedDevices[] = {
|
||||
{ "mtk-seninf", { { "mtk-mdp", 3 } }, false },
|
||||
{ "mxc-isi", {}, false },
|
||||
{ "qcom-camss", {}, true },
|
||||
|
|
@ -28,5 +28,5 @@ index eb405e52c..f4b49b1ab 100644
|
|||
|
||||
} /* namespace */
|
||||
--
|
||||
2.50.1
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
From 2611679a0a425bad4f071fb70c513f73be5132df Mon Sep 17 00:00:00 2001
|
||||
From: Milan Zamazal <mzamazal@redhat.com>
|
||||
Date: Thu, 21 Aug 2025 15:41:39 +0200
|
||||
Subject: [PATCH 03/17] libcamera: software_isp: Check processed window size
|
||||
alignment
|
||||
|
||||
The window of the image that should be debayered must be aligned to the
|
||||
bayer pattern size. This is already ensured for the window corner
|
||||
coordinates but not for the window sizes.
|
||||
|
||||
We can either make the window sizes aligned similarly to how the window
|
||||
corner coordinates are aligned or reject an unaligned configuration.
|
||||
This patches chooses the latter as using a different window size than
|
||||
the requested output size could lead to artefacts. Since such a
|
||||
situation is not expected to occur in correctly set up environments, the
|
||||
change should have no negative impact.
|
||||
|
||||
Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
|
||||
---
|
||||
src/libcamera/software_isp/debayer_cpu.cpp | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/src/libcamera/software_isp/debayer_cpu.cpp b/src/libcamera/software_isp/debayer_cpu.cpp
|
||||
index 185edd814..3200b0c53 100644
|
||||
--- a/src/libcamera/software_isp/debayer_cpu.cpp
|
||||
+++ b/src/libcamera/software_isp/debayer_cpu.cpp
|
||||
@@ -539,7 +539,17 @@ int DebayerCpu::configure(const StreamConfiguration &inputCfg,
|
||||
window_.y = ((inputCfg.size.height - outputCfg.size.height) / 2) &
|
||||
~(inputConfig_.patternSize.height - 1);
|
||||
window_.width = outputCfg.size.width;
|
||||
+ if (window_.width % inputConfig_.patternSize.width != 0) {
|
||||
+ LOG(Debayer, Error)
|
||||
+ << "Output width is not a multiple of the bayer pattern width";
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
window_.height = outputCfg.size.height;
|
||||
+ if (window_.height % inputConfig_.patternSize.height != 0) {
|
||||
+ LOG(Debayer, Error)
|
||||
+ << "Output height is not a multiple of the bayer pattern height";
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
|
||||
/*
|
||||
* Set the stats window to the whole processed window. Its coordinates are
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
From 242ae30056eb3d4964b518cb902d2dfef6c69de5 Mon Sep 17 00:00:00 2001
|
||||
From: Milan Zamazal <mzamazal@redhat.com>
|
||||
Date: Thu, 21 Aug 2025 15:41:40 +0200
|
||||
Subject: [PATCH 04/17] libcamera: simple: Avoid incorrect arithmetic in AWB
|
||||
|
||||
The R/G/B sums computed in AWB simple IPA may be zero or perhaps even
|
||||
negative. Let's make sure the sums are always positive, to prevent
|
||||
division by zero or completely nonsense results.
|
||||
|
||||
Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
|
||||
---
|
||||
src/ipa/simple/algorithms/awb.cpp | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/simple/algorithms/awb.cpp
|
||||
index cf567e894..9509129e9 100644
|
||||
--- a/src/ipa/simple/algorithms/awb.cpp
|
||||
+++ b/src/ipa/simple/algorithms/awb.cpp
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include "awb.h"
|
||||
|
||||
+#include <algorithm>
|
||||
#include <numeric>
|
||||
#include <stdint.h>
|
||||
|
||||
@@ -69,9 +70,10 @@ void Awb::process(IPAContext &context,
|
||||
const uint64_t nPixels = std::accumulate(
|
||||
histogram.begin(), histogram.end(), 0);
|
||||
const uint64_t offset = blackLevel * nPixels;
|
||||
- const uint64_t sumR = stats->sumR_ - offset / 4;
|
||||
- const uint64_t sumG = stats->sumG_ - offset / 2;
|
||||
- const uint64_t sumB = stats->sumB_ - offset / 4;
|
||||
+ const uint64_t minValid = 1;
|
||||
+ const uint64_t sumR = std::max(stats->sumR_ - offset / 4, minValid);
|
||||
+ const uint64_t sumG = std::max(stats->sumG_ - offset / 2, minValid);
|
||||
+ const uint64_t sumB = std::max(stats->sumB_ - offset / 4, minValid);
|
||||
|
||||
/*
|
||||
* Calculate red and blue gains for AWB.
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
From 39a3d481aabb6f92f4b3b846064d8bc6f049f36d Mon Sep 17 00:00:00 2001
|
||||
From 5e94fb4563b44ba1fd9c4d3109ddc5a0f35cfa2c Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@collabora.com>
|
||||
Date: Mon, 6 May 2024 21:21:57 +0200
|
||||
Subject: [PATCH 09/17] libcamera: simple: Skip hwISP formats if swISP is
|
||||
Subject: [PATCH 04/12] libcamera: simple: Skip hwISP formats if swISP is
|
||||
active
|
||||
|
||||
On devices like the Pinephone libcamera will advertise support for
|
||||
|
|
@ -14,10 +14,10 @@ ISP when the SW ISP is enabled, to ensure we use the later.
|
|||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
|
||||
index f4b49b1ab..c19ce17d4 100644
|
||||
index cc3bdc84b..f44c2aa8e 100644
|
||||
--- a/src/libcamera/pipeline/simple/simple.cpp
|
||||
+++ b/src/libcamera/pipeline/simple/simple.cpp
|
||||
@@ -721,9 +721,7 @@ void SimpleCameraData::tryPipeline(unsigned int code, const Size &size)
|
||||
@@ -736,9 +736,7 @@ void SimpleCameraData::tryPipeline(unsigned int code, const Size &size)
|
||||
config.outputFormats = swIsp_->formats(pixelFormat);
|
||||
config.outputSizes = swIsp_->sizes(pixelFormat, format.size);
|
||||
if (config.outputFormats.empty()) {
|
||||
|
|
@ -29,5 +29,5 @@ index f4b49b1ab..c19ce17d4 100644
|
|||
} else {
|
||||
config.outputFormats = { pixelFormat };
|
||||
--
|
||||
2.50.1
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
From ef0b475f471e114044a7fbacf13bb16b5d362def Mon Sep 17 00:00:00 2001
|
||||
From: Milan Zamazal <mzamazal@redhat.com>
|
||||
Date: Thu, 21 Aug 2025 15:41:41 +0200
|
||||
Subject: [PATCH 05/17] libcamera: simple: Prevent division by zero in BLC
|
||||
|
||||
When there are no values in the histogram, BLC simple IPA can crash on
|
||||
division by zero. We cannot get anything meaningful in such a case
|
||||
anyway, let's simply return from `process()' then.
|
||||
|
||||
Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
|
||||
---
|
||||
src/ipa/simple/algorithms/blc.cpp | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/ipa/simple/algorithms/blc.cpp b/src/ipa/simple/algorithms/blc.cpp
|
||||
index 8c1e9ed08..71731c6f6 100644
|
||||
--- a/src/ipa/simple/algorithms/blc.cpp
|
||||
+++ b/src/ipa/simple/algorithms/blc.cpp
|
||||
@@ -77,6 +77,11 @@ void BlackLevel::process(IPAContext &context,
|
||||
constexpr float ignoredPercentage = 0.02;
|
||||
const unsigned int total =
|
||||
std::accumulate(begin(histogram), end(histogram), 0);
|
||||
+ if (total == 0) {
|
||||
+ LOG(IPASoftBL, Debug) << "Not guessing black level, histogram is empty";
|
||||
+ return;
|
||||
+ };
|
||||
+
|
||||
const unsigned int pixelThreshold = ignoredPercentage * total;
|
||||
const unsigned int histogramRatio = 256 / SwIspStats::kYHistogramSize;
|
||||
const unsigned int currentBlackIdx =
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
From 9303db28aedd7e7ffe7af1627418c1ff070f2499 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@collabora.com>
|
||||
Date: Fri, 11 Oct 2024 20:13:24 +0200
|
||||
Subject: [PATCH 10/17] pipeline: simple: Consider output sizes when choosing
|
||||
pipe config
|
||||
|
||||
In order to avoid having to adjust the size further down below which
|
||||
again can break user assumptions. Notably, without this the capture size
|
||||
of 1920x1080 gets adjusted to 1912x1080 when used with the swISP using a
|
||||
bayer pattern width of 4, breaking users like Gstreamer down the line.
|
||||
|
||||
Closes https://bugs.libcamera.org/show_bug.cgi?id=236
|
||||
|
||||
Signed-off-by: Robert Mader <robert.mader@collabora.com>
|
||||
---
|
||||
src/libcamera/pipeline/simple/simple.cpp | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
|
||||
index c19ce17d4..09310dc02 100644
|
||||
--- a/src/libcamera/pipeline/simple/simple.cpp
|
||||
+++ b/src/libcamera/pipeline/simple/simple.cpp
|
||||
@@ -1159,7 +1159,8 @@ CameraConfiguration::Status SimpleCameraConfiguration::validate()
|
||||
const Size &size = pipeConfig->captureSize;
|
||||
|
||||
if (size.width >= maxStreamSize.width &&
|
||||
- size.height >= maxStreamSize.height) {
|
||||
+ size.height >= maxStreamSize.height &&
|
||||
+ pipeConfig->outputSizes.contains(maxStreamSize)) {
|
||||
if (!pipeConfig_ || size < pipeConfig_->captureSize)
|
||||
pipeConfig_ = pipeConfig;
|
||||
}
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
From 9b0f6c6d8c4bc3e4fed87c54daadaaf79c621341 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@collabora.com>
|
||||
Date: Sun, 13 Oct 2024 14:13:44 +0200
|
||||
Subject: [PATCH 11/17] pipeline: simple: Increase internal buffer count to
|
||||
four aswell
|
||||
|
||||
Signed-off-by: Robert Mader <robert.mader@collabora.com>
|
||||
---
|
||||
src/libcamera/pipeline/simple/simple.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
|
||||
index 09310dc02..58e70993f 100644
|
||||
--- a/src/libcamera/pipeline/simple/simple.cpp
|
||||
+++ b/src/libcamera/pipeline/simple/simple.cpp
|
||||
@@ -415,7 +415,7 @@ protected:
|
||||
int queueRequestDevice(Camera *camera, Request *request) override;
|
||||
|
||||
private:
|
||||
- static constexpr unsigned int kNumInternalBuffers = 3;
|
||||
+ static constexpr unsigned int kNumInternalBuffers = 4;
|
||||
|
||||
struct EntityData {
|
||||
std::unique_ptr<V4L2VideoDevice> video;
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
From bf9c2c76e8f390f35d0a0e0380cb2fae03abe806 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@collabora.com>
|
||||
Date: Sat, 19 Oct 2024 00:25:03 +0200
|
||||
Subject: [PATCH 12/17] ipa/simple: Add tuning file for IMX355
|
||||
|
||||
64 at 10 bits. The value was guessed from known values for similar
|
||||
sensors and testing - on a Google Pixel 3a - suggest it's correct.
|
||||
|
||||
Adding this tuning file is partly motivated in order to serve as
|
||||
example, as it's the first one for the simple IPA.
|
||||
|
||||
Signed-off-by: Robert Mader <robert.mader@collabora.com>
|
||||
---
|
||||
src/ipa/simple/data/imx355.yaml | 11 +++++++++++
|
||||
src/ipa/simple/data/meson.build | 1 +
|
||||
2 files changed, 12 insertions(+)
|
||||
create mode 100644 src/ipa/simple/data/imx355.yaml
|
||||
|
||||
diff --git a/src/ipa/simple/data/imx355.yaml b/src/ipa/simple/data/imx355.yaml
|
||||
new file mode 100644
|
||||
index 000000000..f7d01b738
|
||||
--- /dev/null
|
||||
+++ b/src/ipa/simple/data/imx355.yaml
|
||||
@@ -0,0 +1,11 @@
|
||||
+# SPDX-License-Identifier: CC0-1.0
|
||||
+%YAML 1.1
|
||||
+---
|
||||
+version: 1
|
||||
+algorithms:
|
||||
+ - BlackLevel:
|
||||
+ blackLevel: 4096
|
||||
+ - Awb:
|
||||
+ - Lut:
|
||||
+ - Agc:
|
||||
+...
|
||||
diff --git a/src/ipa/simple/data/meson.build b/src/ipa/simple/data/meson.build
|
||||
index 92795ee4c..6e690f82d 100644
|
||||
--- a/src/ipa/simple/data/meson.build
|
||||
+++ b/src/ipa/simple/data/meson.build
|
||||
@@ -1,6 +1,7 @@
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
conf_files = files([
|
||||
+ 'imx355.yaml',
|
||||
'uncalibrated.yaml',
|
||||
])
|
||||
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
From 9e21554b1374b057e84b3afa76b55855b01671f4 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@collabora.com>
|
||||
Date: Sat, 19 Oct 2024 17:06:12 +0200
|
||||
Subject: [PATCH 13/17] ipa/simple: Add tuning file for IMX363
|
||||
|
||||
64 at 10 bits. The value was guessed from known values for similar
|
||||
sensors and testing - on a Google Pixel 3a - suggest it's correct.
|
||||
|
||||
Signed-off-by: Robert Mader <robert.mader@collabora.com>
|
||||
---
|
||||
src/ipa/simple/data/imx363.yaml | 11 +++++++++++
|
||||
src/ipa/simple/data/meson.build | 1 +
|
||||
2 files changed, 12 insertions(+)
|
||||
create mode 100644 src/ipa/simple/data/imx363.yaml
|
||||
|
||||
diff --git a/src/ipa/simple/data/imx363.yaml b/src/ipa/simple/data/imx363.yaml
|
||||
new file mode 100644
|
||||
index 000000000..f7d01b738
|
||||
--- /dev/null
|
||||
+++ b/src/ipa/simple/data/imx363.yaml
|
||||
@@ -0,0 +1,11 @@
|
||||
+# SPDX-License-Identifier: CC0-1.0
|
||||
+%YAML 1.1
|
||||
+---
|
||||
+version: 1
|
||||
+algorithms:
|
||||
+ - BlackLevel:
|
||||
+ blackLevel: 4096
|
||||
+ - Awb:
|
||||
+ - Lut:
|
||||
+ - Agc:
|
||||
+...
|
||||
diff --git a/src/ipa/simple/data/meson.build b/src/ipa/simple/data/meson.build
|
||||
index 6e690f82d..7d07d5670 100644
|
||||
--- a/src/ipa/simple/data/meson.build
|
||||
+++ b/src/ipa/simple/data/meson.build
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
conf_files = files([
|
||||
'imx355.yaml',
|
||||
+ 'imx363.yaml',
|
||||
'uncalibrated.yaml',
|
||||
])
|
||||
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
From e9694f7ed531d3a7394d42b9f4b0d00bf46e87be Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@collabora.com>
|
||||
Date: Sun, 24 Nov 2024 18:20:37 +0100
|
||||
Subject: [PATCH 14/17] ipa/simple: Add tuning file for s5k3l6xx
|
||||
|
||||
Used by the Librem5
|
||||
---
|
||||
src/ipa/simple/data/meson.build | 1 +
|
||||
src/ipa/simple/data/s5k3l6xx.yaml | 11 +++++++++++
|
||||
2 files changed, 12 insertions(+)
|
||||
create mode 100644 src/ipa/simple/data/s5k3l6xx.yaml
|
||||
|
||||
diff --git a/src/ipa/simple/data/meson.build b/src/ipa/simple/data/meson.build
|
||||
index 7d07d5670..a763edc4f 100644
|
||||
--- a/src/ipa/simple/data/meson.build
|
||||
+++ b/src/ipa/simple/data/meson.build
|
||||
@@ -3,6 +3,7 @@
|
||||
conf_files = files([
|
||||
'imx355.yaml',
|
||||
'imx363.yaml',
|
||||
+ 's5k3l6xx.yaml',
|
||||
'uncalibrated.yaml',
|
||||
])
|
||||
|
||||
diff --git a/src/ipa/simple/data/s5k3l6xx.yaml b/src/ipa/simple/data/s5k3l6xx.yaml
|
||||
new file mode 100644
|
||||
index 000000000..f7d01b738
|
||||
--- /dev/null
|
||||
+++ b/src/ipa/simple/data/s5k3l6xx.yaml
|
||||
@@ -0,0 +1,11 @@
|
||||
+# SPDX-License-Identifier: CC0-1.0
|
||||
+%YAML 1.1
|
||||
+---
|
||||
+version: 1
|
||||
+algorithms:
|
||||
+ - BlackLevel:
|
||||
+ blackLevel: 4096
|
||||
+ - Awb:
|
||||
+ - Lut:
|
||||
+ - Agc:
|
||||
+...
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
From 175bb5ee1932242967e439955b0dad942228158d Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@collabora.com>
|
||||
Date: Sun, 24 Nov 2024 18:21:52 +0100
|
||||
Subject: [PATCH 15/17] ipa/simple: Add tuning file for hi846
|
||||
|
||||
Used by the Librem5
|
||||
---
|
||||
src/ipa/simple/data/hi846.yaml | 11 +++++++++++
|
||||
src/ipa/simple/data/meson.build | 1 +
|
||||
2 files changed, 12 insertions(+)
|
||||
create mode 100644 src/ipa/simple/data/hi846.yaml
|
||||
|
||||
diff --git a/src/ipa/simple/data/hi846.yaml b/src/ipa/simple/data/hi846.yaml
|
||||
new file mode 100644
|
||||
index 000000000..f7d01b738
|
||||
--- /dev/null
|
||||
+++ b/src/ipa/simple/data/hi846.yaml
|
||||
@@ -0,0 +1,11 @@
|
||||
+# SPDX-License-Identifier: CC0-1.0
|
||||
+%YAML 1.1
|
||||
+---
|
||||
+version: 1
|
||||
+algorithms:
|
||||
+ - BlackLevel:
|
||||
+ blackLevel: 4096
|
||||
+ - Awb:
|
||||
+ - Lut:
|
||||
+ - Agc:
|
||||
+...
|
||||
diff --git a/src/ipa/simple/data/meson.build b/src/ipa/simple/data/meson.build
|
||||
index a763edc4f..cae83a3d5 100644
|
||||
--- a/src/ipa/simple/data/meson.build
|
||||
+++ b/src/ipa/simple/data/meson.build
|
||||
@@ -1,6 +1,7 @@
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
conf_files = files([
|
||||
+ 'hi846.yaml',
|
||||
'imx355.yaml',
|
||||
'imx363.yaml',
|
||||
's5k3l6xx.yaml',
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
From 5d00a3b8aa891c0c0ca114c8ec1c0070d054055c Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@collabora.com>
|
||||
Date: Sat, 8 Mar 2025 10:38:06 +0100
|
||||
Subject: [PATCH 16/17] ipa/simple: Add tuning file for IMX371
|
||||
|
||||
The value is guessed from similar IMX sensors.
|
||||
---
|
||||
src/ipa/simple/data/imx371.yaml | 11 +++++++++++
|
||||
src/ipa/simple/data/meson.build | 1 +
|
||||
2 files changed, 12 insertions(+)
|
||||
create mode 100644 src/ipa/simple/data/imx371.yaml
|
||||
|
||||
diff --git a/src/ipa/simple/data/imx371.yaml b/src/ipa/simple/data/imx371.yaml
|
||||
new file mode 100644
|
||||
index 000000000..f7d01b738
|
||||
--- /dev/null
|
||||
+++ b/src/ipa/simple/data/imx371.yaml
|
||||
@@ -0,0 +1,11 @@
|
||||
+# SPDX-License-Identifier: CC0-1.0
|
||||
+%YAML 1.1
|
||||
+---
|
||||
+version: 1
|
||||
+algorithms:
|
||||
+ - BlackLevel:
|
||||
+ blackLevel: 4096
|
||||
+ - Awb:
|
||||
+ - Lut:
|
||||
+ - Agc:
|
||||
+...
|
||||
diff --git a/src/ipa/simple/data/meson.build b/src/ipa/simple/data/meson.build
|
||||
index cae83a3d5..19f90c976 100644
|
||||
--- a/src/ipa/simple/data/meson.build
|
||||
+++ b/src/ipa/simple/data/meson.build
|
||||
@@ -4,6 +4,7 @@ conf_files = files([
|
||||
'hi846.yaml',
|
||||
'imx355.yaml',
|
||||
'imx363.yaml',
|
||||
+ 'imx371.yaml',
|
||||
's5k3l6xx.yaml',
|
||||
'uncalibrated.yaml',
|
||||
])
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
From 2f0d4f7929afb239d2b74ce7cfee447a70101f36 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@collabora.com>
|
||||
Date: Sat, 8 Mar 2025 10:39:44 +0100
|
||||
Subject: [PATCH 17/17] ipa/simple: Add tuning file for IMX376
|
||||
|
||||
The value is guessed from similar IMX sensors.
|
||||
---
|
||||
src/ipa/simple/data/imx376.yaml | 11 +++++++++++
|
||||
src/ipa/simple/data/meson.build | 1 +
|
||||
2 files changed, 12 insertions(+)
|
||||
create mode 100644 src/ipa/simple/data/imx376.yaml
|
||||
|
||||
diff --git a/src/ipa/simple/data/imx376.yaml b/src/ipa/simple/data/imx376.yaml
|
||||
new file mode 100644
|
||||
index 000000000..f7d01b738
|
||||
--- /dev/null
|
||||
+++ b/src/ipa/simple/data/imx376.yaml
|
||||
@@ -0,0 +1,11 @@
|
||||
+# SPDX-License-Identifier: CC0-1.0
|
||||
+%YAML 1.1
|
||||
+---
|
||||
+version: 1
|
||||
+algorithms:
|
||||
+ - BlackLevel:
|
||||
+ blackLevel: 4096
|
||||
+ - Awb:
|
||||
+ - Lut:
|
||||
+ - Agc:
|
||||
+...
|
||||
diff --git a/src/ipa/simple/data/meson.build b/src/ipa/simple/data/meson.build
|
||||
index 19f90c976..e0c8e443a 100644
|
||||
--- a/src/ipa/simple/data/meson.build
|
||||
+++ b/src/ipa/simple/data/meson.build
|
||||
@@ -5,6 +5,7 @@ conf_files = files([
|
||||
'imx355.yaml',
|
||||
'imx363.yaml',
|
||||
'imx371.yaml',
|
||||
+ 'imx376.yaml',
|
||||
's5k3l6xx.yaml',
|
||||
'uncalibrated.yaml',
|
||||
])
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
From 1fe6f0def67fc76344ecd7c4e4b038b8d7cc7197 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@collabora.com>
|
||||
Date: Thu, 23 Oct 2025 19:35:59 +0200
|
||||
Subject: [PATCH 18/19] ipa/simple: Add tuning file for IMX858
|
||||
|
||||
Used by the Fairphone 5. The value is guessed from similar IMX sensors.
|
||||
---
|
||||
src/ipa/simple/data/imx858.yaml | 11 +++++++++++
|
||||
src/ipa/simple/data/meson.build | 1 +
|
||||
2 files changed, 12 insertions(+)
|
||||
create mode 100644 src/ipa/simple/data/imx858.yaml
|
||||
|
||||
diff --git a/src/ipa/simple/data/imx858.yaml b/src/ipa/simple/data/imx858.yaml
|
||||
new file mode 100644
|
||||
index 000000000..f7d01b738
|
||||
--- /dev/null
|
||||
+++ b/src/ipa/simple/data/imx858.yaml
|
||||
@@ -0,0 +1,11 @@
|
||||
+# SPDX-License-Identifier: CC0-1.0
|
||||
+%YAML 1.1
|
||||
+---
|
||||
+version: 1
|
||||
+algorithms:
|
||||
+ - BlackLevel:
|
||||
+ blackLevel: 4096
|
||||
+ - Awb:
|
||||
+ - Lut:
|
||||
+ - Agc:
|
||||
+...
|
||||
diff --git a/src/ipa/simple/data/meson.build b/src/ipa/simple/data/meson.build
|
||||
index e0c8e443a..8536a9672 100644
|
||||
--- a/src/ipa/simple/data/meson.build
|
||||
+++ b/src/ipa/simple/data/meson.build
|
||||
@@ -6,6 +6,7 @@ conf_files = files([
|
||||
'imx363.yaml',
|
||||
'imx371.yaml',
|
||||
'imx376.yaml',
|
||||
+ 'imx858.yaml',
|
||||
's5k3l6xx.yaml',
|
||||
'uncalibrated.yaml',
|
||||
])
|
||||
--
|
||||
2.51.0
|
||||
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
From f0466e0bf079919df780a1bdbc22a55d5fa67c7d Mon Sep 17 00:00:00 2001
|
||||
From: Robert Mader <robert.mader@collabora.com>
|
||||
Date: Thu, 23 Oct 2025 19:37:31 +0200
|
||||
Subject: [PATCH 19/19] ipa/simple: Add tuning file for s5kjn1
|
||||
|
||||
Used by the Fairphone 5. The value is guessed from similar IMX sensors.
|
||||
---
|
||||
src/ipa/simple/data/meson.build | 1 +
|
||||
src/ipa/simple/data/s5kjn1.yaml | 11 +++++++++++
|
||||
2 files changed, 12 insertions(+)
|
||||
create mode 100644 src/ipa/simple/data/s5kjn1.yaml
|
||||
|
||||
diff --git a/src/ipa/simple/data/meson.build b/src/ipa/simple/data/meson.build
|
||||
index 8536a9672..4cecff634 100644
|
||||
--- a/src/ipa/simple/data/meson.build
|
||||
+++ b/src/ipa/simple/data/meson.build
|
||||
@@ -8,6 +8,7 @@ conf_files = files([
|
||||
'imx376.yaml',
|
||||
'imx858.yaml',
|
||||
's5k3l6xx.yaml',
|
||||
+ 's5kjn1.yaml',
|
||||
'uncalibrated.yaml',
|
||||
])
|
||||
|
||||
diff --git a/src/ipa/simple/data/s5kjn1.yaml b/src/ipa/simple/data/s5kjn1.yaml
|
||||
new file mode 100644
|
||||
index 000000000..f7d01b738
|
||||
--- /dev/null
|
||||
+++ b/src/ipa/simple/data/s5kjn1.yaml
|
||||
@@ -0,0 +1,11 @@
|
||||
+# SPDX-License-Identifier: CC0-1.0
|
||||
+%YAML 1.1
|
||||
+---
|
||||
+version: 1
|
||||
+algorithms:
|
||||
+ - BlackLevel:
|
||||
+ blackLevel: 4096
|
||||
+ - Awb:
|
||||
+ - Lut:
|
||||
+ - Agc:
|
||||
+...
|
||||
--
|
||||
2.51.0
|
||||
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
# Forked from Alpine for temporary downstream patches
|
||||
|
||||
pkgname=libcamera
|
||||
_pkgver=0.5.2
|
||||
_pkgver=0.6.0
|
||||
pkgver=9999$_pkgver
|
||||
pkgrel=3
|
||||
pkgrel=0
|
||||
pkgdesc="Linux camera framework"
|
||||
url="https://libcamera.org/"
|
||||
arch="all"
|
||||
|
|
@ -19,7 +19,11 @@ depends_dev="
|
|||
makedepends="$depends_dev
|
||||
coreutils
|
||||
doxygen
|
||||
eudev-dev
|
||||
glib-dev
|
||||
gnutls-dev
|
||||
graphviz
|
||||
gst-plugins-bad-dev
|
||||
gtest-dev
|
||||
libevent-dev
|
||||
libpisp-dev
|
||||
|
|
@ -29,42 +33,41 @@ makedepends="$depends_dev
|
|||
meson
|
||||
py3-jinja2
|
||||
py3-ply
|
||||
py3-pybind11-dev
|
||||
py3-sphinx
|
||||
py3-sphinxcontrib-doxylink
|
||||
py3-yaml
|
||||
python3-dev
|
||||
qt6-qtbase-dev
|
||||
qt6-qttools-dev
|
||||
yaml-dev
|
||||
"
|
||||
subpackages="
|
||||
$pkgname-dbg
|
||||
$pkgname-dev
|
||||
$pkgname-doc
|
||||
qcam
|
||||
$pkgname-gstreamer
|
||||
$pkgname-v4l2
|
||||
$pkgname-tools
|
||||
py3-$pkgname:py3
|
||||
"
|
||||
_tuning_files="
|
||||
hi846.yaml
|
||||
imx355.yaml
|
||||
imx363.yaml
|
||||
imx371.yaml
|
||||
imx376.yaml
|
||||
imx858.yaml
|
||||
s5k3l6xx.yaml
|
||||
s5kjn1.yaml
|
||||
"
|
||||
source="https://gitlab.freedesktop.org/camera/libcamera/-/archive/v$_pkgver/libcamera-v$_pkgver.tar.gz
|
||||
0001-libcamera-software_isp-Clarify-SwStatsCpu-setWindow-.patch
|
||||
0002-libcamera-software_isp-Pass-correct-y-coordinate-to-.patch
|
||||
0003-libcamera-software_isp-Check-processed-window-size-a.patch
|
||||
0004-libcamera-simple-Avoid-incorrect-arithmetic-in-AWB.patch
|
||||
0005-libcamera-simple-Prevent-division-by-zero-in-BLC.patch
|
||||
0006-libcamera-simple-Enable-softwareISP-for-the-librem5.patch
|
||||
0007-libcamera-simple-Force-disable-softwareISP-for-milli.patch
|
||||
0008-libcamera-simple-Enable-softISP-for-the-Pinephone.patch
|
||||
0009-libcamera-simple-Skip-hwISP-formats-if-swISP-is-acti.patch
|
||||
0010-pipeline-simple-Consider-output-sizes-when-choosing-.patch
|
||||
0011-pipeline-simple-Increase-internal-buffer-count-to-fo.patch
|
||||
0012-ipa-simple-Add-tuning-file-for-IMX355.patch
|
||||
0013-ipa-simple-Add-tuning-file-for-IMX363.patch
|
||||
0014-ipa-simple-Add-tuning-file-for-s5k3l6xx.patch
|
||||
0015-ipa-simple-Add-tuning-file-for-hi846.patch
|
||||
0016-ipa-simple-Add-tuning-file-for-IMX371.patch
|
||||
0017-ipa-simple-Add-tuning-file-for-IMX376.patch
|
||||
0018-ipa-simple-Add-tuning-file-for-IMX858.patch
|
||||
0019-ipa-simple-Add-tuning-file-for-s5kjn1.patch
|
||||
0001-libcamera-simple-Enable-softwareISP-for-the-librem5.patch
|
||||
0002-libcamera-simple-Force-disable-softwareISP-for-milli.patch
|
||||
0003-libcamera-simple-Enable-softISP-for-the-Pinephone.patch
|
||||
0004-libcamera-simple-Skip-hwISP-formats-if-swISP-is-acti.patch
|
||||
qcam.desktop
|
||||
$_tuning_files
|
||||
"
|
||||
builddir="$srcdir/$pkgname-v$_pkgver"
|
||||
# gstreamer tests fail
|
||||
|
|
@ -89,9 +92,9 @@ esac
|
|||
|
||||
build() {
|
||||
abuild-meson \
|
||||
-Dtest=true \
|
||||
-Dv4l2=true \
|
||||
-Dwerror=false \
|
||||
-Ddocumentation=disabled \
|
||||
. output
|
||||
meson compile -C output
|
||||
}
|
||||
|
|
@ -118,6 +121,13 @@ package() {
|
|||
ipa() {
|
||||
depends=""
|
||||
amove usr/lib/libcamera
|
||||
amove usr/share/libcamera/ipa
|
||||
|
||||
for _tuning_file in $_tuning_files; do
|
||||
install -Dm644 -t "$subpkgdir"/usr/share/libcamera/ipa/simple \
|
||||
"$srcdir"/"$_tuning_file"
|
||||
done
|
||||
|
||||
# then sign ipa's
|
||||
local ipa
|
||||
for ipa in "$subpkgdir"/usr/lib/libcamera/ipa/ipa*.so; do
|
||||
|
|
@ -159,26 +169,26 @@ tools() {
|
|||
amove usr/bin/lc-compliance
|
||||
}
|
||||
|
||||
py3() {
|
||||
pkgdesc="$pkgname (python bindings)"
|
||||
depends="python3"
|
||||
|
||||
amove usr/lib/python*
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
eb2ef122baa2a884c6b5303610882ba9d5699ebbadb24c21cdf2e09466a85ef54689c5e291fb153c0acd37307756dd4eb5353d16200b3469272398797513f131 libcamera-v0.5.2.tar.gz
|
||||
85259c2001893cdb95a67c5df513844447b414e487cd5f1ec4fbc8aa4dc48ddc5463b4594f0f28272ff76e37615a7f40581c6caf5aadae45cf4e45541d2d59ae 0001-libcamera-software_isp-Clarify-SwStatsCpu-setWindow-.patch
|
||||
ab394635f1b83608436930561361c5a1ab5c1965b3e5943a516e6d57c0e8e1cf59fcc2d1c21ef630aaa3c2878dd49bdf65ed30cb9a67265b13e43f8d0d8f45d5 0002-libcamera-software_isp-Pass-correct-y-coordinate-to-.patch
|
||||
4513021d89055cb2727b111b0cee1cfa20cd3ee6700e8174d5cd9b3fbbd9a10f46fe56c267a1bd75115e2e7f7ad2bd62751f33510e9a948a28bd5766bbc8761c 0003-libcamera-software_isp-Check-processed-window-size-a.patch
|
||||
82737bc297d933d54e103bfba101a745e39291219a7d04ddbcddf9eaaf49f0a808ff62ab9cae3954a5cd235c4fddf3883de58b7663632f7341de25abf076c57a 0004-libcamera-simple-Avoid-incorrect-arithmetic-in-AWB.patch
|
||||
38512327348832411a95cc861a02d31d4c11906e1f8a8ea2120d8b9619b1370ec28e4ea9091b19940d669d2f52a44c3641106405ec8df350312ec0e17078e8cd 0005-libcamera-simple-Prevent-division-by-zero-in-BLC.patch
|
||||
93d8d8d4b33d9cdba02abfba7b328bc7af92e8ee1baa104d7490285f18ec80ca06c4adb8da3b604f96199c6c41fcd5de432fb4cf466846671072deedbae630b4 0006-libcamera-simple-Enable-softwareISP-for-the-librem5.patch
|
||||
e4f1929e978e7320969370557f835be9ec07142f579b550626ceafc97298fffea12da132cd210457b1df650591f5f14ced55a77594e7c548254c206033e46ff3 0007-libcamera-simple-Force-disable-softwareISP-for-milli.patch
|
||||
1a2ce4d5607fda846d7b8bf28729f55055917969200c18506b9310b35680dc36b4f6590b6b721237673bf383780a044cc793dee55859760a2d120a51205abb57 0008-libcamera-simple-Enable-softISP-for-the-Pinephone.patch
|
||||
670cc15f04b59142af1da667a22d9206df9a9116348a9ff94bce055ac6ee905298a3bc2f57f195d5063629dd6af56d0ad5fc0253f674e79067c9750348ecc4e0 0009-libcamera-simple-Skip-hwISP-formats-if-swISP-is-acti.patch
|
||||
c52de38726d4abacbf95fad89b41bf26648401d3c72645c573f09ad0735f4c0fb1cda1c24dffcd445b0cdb880be206564eb60b1e2292801550a284b131965584 0010-pipeline-simple-Consider-output-sizes-when-choosing-.patch
|
||||
63a9291765dd67fdac0bbce908ce7f212a48c19e5694f2c0ea04509f32ad224a7f15518634796b90fe1bcdcfaeddcdbdcd3725ea1a039021afcffc6189335184 0011-pipeline-simple-Increase-internal-buffer-count-to-fo.patch
|
||||
bb1dfadc125901bb6cac0bfc8640333833afe0a2616990f7ee7dd2fba7bf3f327afc37191dc517c43654af1cf59b3973d649ce395c96b76d0ba3ec443c693ee0 0012-ipa-simple-Add-tuning-file-for-IMX355.patch
|
||||
8cf0b37974f15559f4686c7444f6b495b138f9ec082addcfa0322e251b02e535dc9446ed19bfd6d6adc48a030bed6f0ce4ef67ec6ed4e29b88e154203c9f9937 0013-ipa-simple-Add-tuning-file-for-IMX363.patch
|
||||
5a2d1a2ee9d5e90e218ce04a875ee5dde48a4473c423de122b03c844a28ab1740c491345354c89b5c2881636bf856a589835b0713fe548328b1f9feba58f42bc 0014-ipa-simple-Add-tuning-file-for-s5k3l6xx.patch
|
||||
e4902b96659c993e93776c0586395df51aea0bedb92e8e0813fc917264e709eb4f17283e80e26a7b43a7177af24c03b93032870a214045e3b09ab63d552bb7a5 0015-ipa-simple-Add-tuning-file-for-hi846.patch
|
||||
7f2586be77bf629b18862dc7f33e29133c4dcac34200ce0435b4630abc08e16303441e67f86e4dd475dd09e8fd0690bb38f59792327bf42f25285b8d690aeb6f 0016-ipa-simple-Add-tuning-file-for-IMX371.patch
|
||||
2f508f21d4ca51732407c2c97cf646d1f7a573687e8c36f8e48172183f1100e17517ee77f2ff11069437dd8da0d3600d6ea37768e41c418c52b35d363c38e19c 0017-ipa-simple-Add-tuning-file-for-IMX376.patch
|
||||
bb7244f03363721428b85e3bdbe249e975d26ca0b36932d4f7733f669c336408093aee036bec14522e7c46fd81afdea20f0a4c41c9058bd18d82de00a2cc4864 0018-ipa-simple-Add-tuning-file-for-IMX858.patch
|
||||
22cfe2e5992e1b850c5f0960a68c04fd7a9612ab7f66ccf6086d66e1d019b253a5030a35003cac2e23295e4823bec3c05329ae52ef590c25561a25f477b668d5 0019-ipa-simple-Add-tuning-file-for-s5kjn1.patch
|
||||
901debb8fe864ab5b7b9a9011c760165e0a94f9c14bb6654e297161aaadb6ed1929f1cf4fe20357c188bf24bd00db3953ddd257a0ac726973ad3ceeea07d959f libcamera-v0.6.0.tar.gz
|
||||
b6e4d79bb3e206bec84804100033bec80d0c3a2408d5d0643c5c52c658b2a3ff2eb4bf4df0d1c21b91b510eecdeb59af826d324c64fcc481790952836cca2ea8 0001-libcamera-simple-Enable-softwareISP-for-the-librem5.patch
|
||||
82b1e5278f571ff734bce80ded4395ac18191ea2ba94c7cb4f3d0bf5b1ff96e142a419ee6edec395e1af50fc131959b7c3bb963734bd0e573e3c197d00e99493 0002-libcamera-simple-Force-disable-softwareISP-for-milli.patch
|
||||
7b9e97b1cc866cd0ad6e52c7980ebe5561d3e9a092912602cc85ff502cee5d69b6487ef16419a248a720617be3f1817aa92f8f15992869b87af5c02859fa6aa6 0003-libcamera-simple-Enable-softISP-for-the-Pinephone.patch
|
||||
48de0e1e1acefb0a901dcfc4c266d633e73463f3ce2a89d7b83eed4833f6459abdc98528afe96d88c7bac78e75035a491f9228ed937e251849e9926e7d80216d 0004-libcamera-simple-Skip-hwISP-formats-if-swISP-is-acti.patch
|
||||
22167a4eceb6d1b40b0b7c45fdf116c71684f5340de7f767535cb8e160ad9d2ae0f00cb3d461f73a344520a48a4641cf46226841d78bee06bfbfd2a91337f754 qcam.desktop
|
||||
fa9e4736c7651d4f97d97b58eef2d1d7ddd4616b1de67c840c4804585c62c78bb5ce80cb14669ae462414faa1c6af10c60cad0c416d69f685bc96434ad73e08a hi846.yaml
|
||||
fa9e4736c7651d4f97d97b58eef2d1d7ddd4616b1de67c840c4804585c62c78bb5ce80cb14669ae462414faa1c6af10c60cad0c416d69f685bc96434ad73e08a imx355.yaml
|
||||
fa9e4736c7651d4f97d97b58eef2d1d7ddd4616b1de67c840c4804585c62c78bb5ce80cb14669ae462414faa1c6af10c60cad0c416d69f685bc96434ad73e08a imx363.yaml
|
||||
fa9e4736c7651d4f97d97b58eef2d1d7ddd4616b1de67c840c4804585c62c78bb5ce80cb14669ae462414faa1c6af10c60cad0c416d69f685bc96434ad73e08a imx371.yaml
|
||||
fa9e4736c7651d4f97d97b58eef2d1d7ddd4616b1de67c840c4804585c62c78bb5ce80cb14669ae462414faa1c6af10c60cad0c416d69f685bc96434ad73e08a imx376.yaml
|
||||
fa9e4736c7651d4f97d97b58eef2d1d7ddd4616b1de67c840c4804585c62c78bb5ce80cb14669ae462414faa1c6af10c60cad0c416d69f685bc96434ad73e08a imx858.yaml
|
||||
fa9e4736c7651d4f97d97b58eef2d1d7ddd4616b1de67c840c4804585c62c78bb5ce80cb14669ae462414faa1c6af10c60cad0c416d69f685bc96434ad73e08a s5k3l6xx.yaml
|
||||
fa9e4736c7651d4f97d97b58eef2d1d7ddd4616b1de67c840c4804585c62c78bb5ce80cb14669ae462414faa1c6af10c60cad0c416d69f685bc96434ad73e08a s5kjn1.yaml
|
||||
"
|
||||
|
|
|
|||
11
temp/libcamera/hi846.yaml
Normal file
11
temp/libcamera/hi846.yaml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# SPDX-License-Identifier: CC0-1.0
|
||||
%YAML 1.1
|
||||
---
|
||||
version: 1
|
||||
algorithms:
|
||||
- BlackLevel:
|
||||
blackLevel: 4096
|
||||
- Awb:
|
||||
- Lut:
|
||||
- Agc:
|
||||
...
|
||||
11
temp/libcamera/imx355.yaml
Normal file
11
temp/libcamera/imx355.yaml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# SPDX-License-Identifier: CC0-1.0
|
||||
%YAML 1.1
|
||||
---
|
||||
version: 1
|
||||
algorithms:
|
||||
- BlackLevel:
|
||||
blackLevel: 4096
|
||||
- Awb:
|
||||
- Lut:
|
||||
- Agc:
|
||||
...
|
||||
11
temp/libcamera/imx363.yaml
Normal file
11
temp/libcamera/imx363.yaml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# SPDX-License-Identifier: CC0-1.0
|
||||
%YAML 1.1
|
||||
---
|
||||
version: 1
|
||||
algorithms:
|
||||
- BlackLevel:
|
||||
blackLevel: 4096
|
||||
- Awb:
|
||||
- Lut:
|
||||
- Agc:
|
||||
...
|
||||
11
temp/libcamera/imx371.yaml
Normal file
11
temp/libcamera/imx371.yaml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# SPDX-License-Identifier: CC0-1.0
|
||||
%YAML 1.1
|
||||
---
|
||||
version: 1
|
||||
algorithms:
|
||||
- BlackLevel:
|
||||
blackLevel: 4096
|
||||
- Awb:
|
||||
- Lut:
|
||||
- Agc:
|
||||
...
|
||||
11
temp/libcamera/imx376.yaml
Normal file
11
temp/libcamera/imx376.yaml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# SPDX-License-Identifier: CC0-1.0
|
||||
%YAML 1.1
|
||||
---
|
||||
version: 1
|
||||
algorithms:
|
||||
- BlackLevel:
|
||||
blackLevel: 4096
|
||||
- Awb:
|
||||
- Lut:
|
||||
- Agc:
|
||||
...
|
||||
11
temp/libcamera/imx858.yaml
Normal file
11
temp/libcamera/imx858.yaml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# SPDX-License-Identifier: CC0-1.0
|
||||
%YAML 1.1
|
||||
---
|
||||
version: 1
|
||||
algorithms:
|
||||
- BlackLevel:
|
||||
blackLevel: 4096
|
||||
- Awb:
|
||||
- Lut:
|
||||
- Agc:
|
||||
...
|
||||
11
temp/libcamera/s5k3l6xx.yaml
Normal file
11
temp/libcamera/s5k3l6xx.yaml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# SPDX-License-Identifier: CC0-1.0
|
||||
%YAML 1.1
|
||||
---
|
||||
version: 1
|
||||
algorithms:
|
||||
- BlackLevel:
|
||||
blackLevel: 4096
|
||||
- Awb:
|
||||
- Lut:
|
||||
- Agc:
|
||||
...
|
||||
11
temp/libcamera/s5kjn1.yaml
Normal file
11
temp/libcamera/s5kjn1.yaml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# SPDX-License-Identifier: CC0-1.0
|
||||
%YAML 1.1
|
||||
---
|
||||
version: 1
|
||||
algorithms:
|
||||
- BlackLevel:
|
||||
blackLevel: 4096
|
||||
- Awb:
|
||||
- Lut:
|
||||
- Agc:
|
||||
...
|
||||
Loading…
Add table
Add a link
Reference in a new issue