temp/libcamera: Add some patches and tuning files
Notably: 1. Add the in-review quad-debayer patch required for the imx371 - the OP6 front camera. 2. Fix GLES 2.0 devices like the Librem5 and PinePhone 3. Small tuning file adjustments, including CCMS for the imx371 and imx800 (FP5 main rear camera). 4. A small patch allowing to set maximum resolutions via config file. Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9449>
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
From be67f67c4ac44b571d1740c1da10669fe6a5c75b Mon Sep 17 00:00:00 2001
|
From be67f67c4ac44b571d1740c1da10669fe6a5c75b 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 1/2] libcamera: simple: Enable softISP for the Pinephone
|
Subject: [PATCH 1/8] libcamera: simple: Enable softISP for the Pinephone
|
||||||
|
|
||||||
In theory the PP should be able to use the actual HW ISP, however in
|
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
|
practice this does not work well yet - especially as the driver for the
|
||||||
@@ -17,7 +17,7 @@ Signed-off-by: Robert Mader <robert.mader@collabora.com>
|
|||||||
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 e26f438d9..24538649c 100644
|
index e26f438d9a77..24538649cb85 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
|
||||||
@@ -264,7 +264,7 @@ static const SimplePipelineInfo supportedDevices[] = {
|
@@ -264,7 +264,7 @@ static const SimplePipelineInfo supportedDevices[] = {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
From dc471142932b1f2b0bf596c3ae83dba8bd4b4021 Mon Sep 17 00:00:00 2001
|
From dc471142932b1f2b0bf596c3ae83dba8bd4b4021 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 2/2] libcamera: simple: Skip hwISP formats if swISP is active
|
Subject: [PATCH 2/8] libcamera: simple: Skip hwISP formats if swISP is active
|
||||||
|
|
||||||
On devices like the Pinephone libcamera will advertise support for
|
On devices like the Pinephone libcamera will advertise support for
|
||||||
formats provided by the HW ISP and the SW ISP at the same time. The
|
formats provided by the HW ISP and the SW ISP at the same time. The
|
||||||
@@ -15,7 +15,7 @@ Signed-off-by: Robert Mader <robert.mader@collabora.com>
|
|||||||
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 24538649c..b96b8b529 100644
|
index 24538649cb85..b96b8b529642 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
|
||||||
@@ -745,9 +745,7 @@ void SimpleCameraData::tryPipeline(unsigned int code, const Size &size)
|
@@ -745,9 +745,7 @@ void SimpleCameraData::tryPipeline(unsigned int code, const Size &size)
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
From 929eac400d4aa9ce248bba12e4fc9779bcfb5ef2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Robert Mader <robert.mader@collabora.com>
|
||||||
|
Date: Thu, 23 Jul 2026 09:19:33 +0200
|
||||||
|
Subject: [PATCH 3/8] software_isp: debayer_egl: Re-add log for failing DMABuf
|
||||||
|
import
|
||||||
|
|
||||||
|
The log was introduced in commit
|
||||||
|
93f0db167a8d ("debayer_egl: Implement dmabuf import for input buffers")
|
||||||
|
and dropped in the commit mentioned below. Let's readd it as failing
|
||||||
|
imports majorly impact performance and indicate actionable issues in the
|
||||||
|
V4L2 or GPU drivers. Ensure the log is only printed once, now that we use
|
||||||
|
multiple eGLImages.
|
||||||
|
|
||||||
|
Fixes: 13f7b921acdf ("libcamera: software_isp: debayer_egl: Implement input/output frame caching mechanism")
|
||||||
|
Signed-off-by: Robert Mader <robert.mader@collabora.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_egl.cpp | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/libcamera/software_isp/debayer_egl.cpp b/src/libcamera/software_isp/debayer_egl.cpp
|
||||||
|
index 02651fe87922..09ab5a58c994 100644
|
||||||
|
--- a/src/libcamera/software_isp/debayer_egl.cpp
|
||||||
|
+++ b/src/libcamera/software_isp/debayer_egl.cpp
|
||||||
|
@@ -533,6 +533,9 @@ eGLImage *DebayerEGL::getCachedInputFrameBuffer(FrameBuffer *input, std::optiona
|
||||||
|
if (egl_.createInputDMABufTexture2D(*eglImageIn, input->planes()[0].fd.get()) == 0)
|
||||||
|
return eglImageIn;
|
||||||
|
|
||||||
|
+ if (eglImageInCache_.size() == 1)
|
||||||
|
+ LOG(Debayer, Info)
|
||||||
|
+ << "Importing input DMABuf failed, falling back to upload";
|
||||||
|
} else if (!eglImageIn->dmabuf_import_failed_) {
|
||||||
|
egl_.activateBindTexture(*eglImageIn);
|
||||||
|
return eglImageIn;
|
||||||
|
--
|
||||||
|
2.55.0
|
||||||
|
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
From b0728a7d0ad5462a7e7e39d28e209ede9cbd63ef Mon Sep 17 00:00:00 2001
|
||||||
|
From: Emilio Miranda <gemilio@gmail.com>
|
||||||
|
Date: Tue, 25 Aug 2026 14:06:30 +0200
|
||||||
|
Subject: [PATCH 4/8] ipa: simple: Derive AGC minimum gain step from sensor
|
||||||
|
granularity
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
The minimum gain step is computed as 1% of the sensor's gain range. For a
|
||||||
|
sensor with a wide gain range that is far larger than the hardware can
|
||||||
|
resolve: the OV01A10 spans 1-63.9961, giving a step of 0.629961, which is
|
||||||
|
63% at unity gain where the sensor resolves 1/256 = 0.0039.
|
||||||
|
|
||||||
|
updateExposure() substitutes againMinStep whenever the proportional
|
||||||
|
correction is smaller than it. Once the exposure saturates and gain is
|
||||||
|
the only remaining control, the AGC therefore applies a 63% change every
|
||||||
|
time it computes a 2% one, and never settles:
|
||||||
|
|
||||||
|
again 1.00000 exposureMSV 1.99 error +0.51 factor 1.020 -> 1.62996
|
||||||
|
again 1.62996 exposureMSV 2.90 error -0.41 factor 0.984 -> 1.00000
|
||||||
|
|
||||||
|
That is 0.7 EV of brightness flicker at frame rate, observed on a Dell
|
||||||
|
XPS 13 9315 (IPU6, simple pipeline and software ISP).
|
||||||
|
|
||||||
|
This is not specific to one sensor. Without a CameraSensorHelper the gain
|
||||||
|
values are raw register codes, where a step of 1.0 is by definition the
|
||||||
|
smallest possible change in gain; adding a helper switches the units to
|
||||||
|
real multipliers, and 1% of the range then bears no relation to what the
|
||||||
|
sensor can resolve. Any sensor with a wide gain range is exposed to this
|
||||||
|
once it gains a helper.
|
||||||
|
|
||||||
|
Sample the step at both ends of the gain range and take the smaller one,
|
||||||
|
so that non-uniform gain models are covered as well. This yields
|
||||||
|
0.00390625 for the OV01A10, and the gain then tracks continuously
|
||||||
|
instead of alternating between two values.
|
||||||
|
|
||||||
|
Link: https://bugzilla.redhat.com/show_bug.cgi?id=2483190
|
||||||
|
Suggested-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
|
||||||
|
Signed-off-by: Emilio Miranda <gemilio@gmail.com>
|
||||||
|
---
|
||||||
|
src/ipa/simple/soft_simple.cpp | 20 ++++++++++++++++----
|
||||||
|
1 file changed, 16 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/ipa/simple/soft_simple.cpp b/src/ipa/simple/soft_simple.cpp
|
||||||
|
index 629e1a32de8a..8bffd2a441fd 100644
|
||||||
|
--- a/src/ipa/simple/soft_simple.cpp
|
||||||
|
+++ b/src/ipa/simple/soft_simple.cpp
|
||||||
|
@@ -6,6 +6,7 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <chrono>
|
||||||
|
+#include <cmath>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <sys/mman.h>
|
||||||
|
|
||||||
|
@@ -228,10 +229,21 @@ int IPASoftSimple::configure(const IPAConfigInfo &configInfo)
|
||||||
|
context_.configuration.agc.againMin = camHelper_->gain(againMin);
|
||||||
|
context_.configuration.agc.againMax = camHelper_->gain(againMax);
|
||||||
|
context_.configuration.agc.again10 = std::max(context_.configuration.agc.againMin, 1.0);
|
||||||
|
- context_.configuration.agc.againMinStep =
|
||||||
|
- (context_.configuration.agc.againMax -
|
||||||
|
- context_.configuration.agc.againMin) /
|
||||||
|
- 100.0;
|
||||||
|
+ /*
|
||||||
|
+ * The minimum gain step must reflect what the sensor can
|
||||||
|
+ * actually resolve. Deriving it from a fraction of the gain
|
||||||
|
+ * range yields a huge step for sensors with a wide range: the
|
||||||
|
+ * OV01A10 spans 1-63.9961, giving 0.63 at unity gain where the
|
||||||
|
+ * hardware resolves 1/256. The AGC can then make no correction
|
||||||
|
+ * smaller than 63%, and oscillates around the target once the
|
||||||
|
+ * exposure saturates and gain is the only remaining control.
|
||||||
|
+ *
|
||||||
|
+ * Sample the step at both ends of the range and take the
|
||||||
|
+ * smaller one, so that non-uniform gain models are covered.
|
||||||
|
+ */
|
||||||
|
+ context_.configuration.agc.againMinStep = std::min(
|
||||||
|
+ std::abs(camHelper_->gain(againMin + 1) - camHelper_->gain(againMin)),
|
||||||
|
+ std::abs(camHelper_->gain(againMax) - camHelper_->gain(againMax - 1)));
|
||||||
|
if (camHelper_->blackLevel().has_value()) {
|
||||||
|
/*
|
||||||
|
* The black level from camHelper_ is a 16 bit value, software ISP
|
||||||
|
--
|
||||||
|
2.55.0
|
||||||
|
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
From 2c72bce471a5098f7bd3a23997e03bd163b89093 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Robert Mader <robert.mader@collabora.com>
|
||||||
|
Date: Fri, 28 Aug 2026 18:26:58 +0200
|
||||||
|
Subject: [PATCH 5/8] debayer: Further demote 'Unsupported input format' log
|
||||||
|
|
||||||
|
On some platforms such as the PinePhone these logs clutter the output of
|
||||||
|
tools and the journal a lot. Let's silence them for normal usage.
|
||||||
|
|
||||||
|
Signed-off-by: Robert Mader <robert.mader@collabora.com>
|
||||||
|
---
|
||||||
|
src/libcamera/software_isp/debayer_cpu.cpp | 4 ++--
|
||||||
|
src/libcamera/software_isp/debayer_egl.cpp | 2 +-
|
||||||
|
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/libcamera/software_isp/debayer_cpu.cpp b/src/libcamera/software_isp/debayer_cpu.cpp
|
||||||
|
index 49382b4c2719..2c2c1dd4912d 100644
|
||||||
|
--- a/src/libcamera/software_isp/debayer_cpu.cpp
|
||||||
|
+++ b/src/libcamera/software_isp/debayer_cpu.cpp
|
||||||
|
@@ -469,8 +469,8 @@ int DebayerCpu::getInputConfig(PixelFormat inputFormat, DebayerInputConfig &conf
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
- LOG(Debayer, Info)
|
||||||
|
- << "Unsupported input format " << inputFormat.toString();
|
||||||
|
+ LOG(Debayer, Debug)
|
||||||
|
+ << "Unsupported input format " << inputFormat;
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/libcamera/software_isp/debayer_egl.cpp b/src/libcamera/software_isp/debayer_egl.cpp
|
||||||
|
index 09ab5a58c994..5c0508239f9c 100644
|
||||||
|
--- a/src/libcamera/software_isp/debayer_egl.cpp
|
||||||
|
+++ b/src/libcamera/software_isp/debayer_egl.cpp
|
||||||
|
@@ -90,7 +90,7 @@ int DebayerEGL::getInputConfig(PixelFormat inputFormat, DebayerInputConfig &conf
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
- LOG(Debayer, Info)
|
||||||
|
+ LOG(Debayer, Debug)
|
||||||
|
<< "Unsupported input format " << inputFormat;
|
||||||
|
|
||||||
|
return -EINVAL;
|
||||||
|
--
|
||||||
|
2.55.0
|
||||||
|
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
From 2e2d412965dc84cc0bdcd770b76674a8da0cf419 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Robert Mader <robert.mader@collabora.com>
|
||||||
|
Date: Sat, 29 Aug 2026 01:38:26 +0200
|
||||||
|
Subject: [PATCH 6/8] debayer_egl: Use untransposed matrix to fix GLES 2.0
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
The softISP curently fails on Mali-400 on Mesa. It turns out that
|
||||||
|
transposed matrices are not allowed by the spec:
|
||||||
|
> The UniformMatrix{234}fv commands will load count 2 × 2, 3 × 3, or 4 × 4
|
||||||
|
> matrices (corresponding to 2, 3, or 4 in the command name) of floating-point values
|
||||||
|
> into a uniform location defined as a matrix or an array of matrices. The matrix is
|
||||||
|
> specified in column-major order. transpose must be FALSE.
|
||||||
|
|
||||||
|
Thus partially revert the commit mentioned below and manually transpose
|
||||||
|
the matrix.
|
||||||
|
|
||||||
|
Fixes: d780e285b593 ("shaders: bayer: Use native matrix multiplication")
|
||||||
|
Closes: https://gitlab.freedesktop.org/camera/libcamera/-/work_items/342
|
||||||
|
Signed-off-by: Robert Mader <robert.mader@collabora.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Changes in v2:
|
||||||
|
- Actually transpose the matrix to not re-introduce issues with CCMs
|
||||||
|
- Add comment about GLES 2.0
|
||||||
|
- Add "Closes:" link
|
||||||
|
---
|
||||||
|
src/libcamera/software_isp/debayer_egl.cpp | 17 +++++++++++++++--
|
||||||
|
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/libcamera/software_isp/debayer_egl.cpp b/src/libcamera/software_isp/debayer_egl.cpp
|
||||||
|
index 5c0508239f9c..ae06dc0d2a3d 100644
|
||||||
|
--- a/src/libcamera/software_isp/debayer_egl.cpp
|
||||||
|
+++ b/src/libcamera/software_isp/debayer_egl.cpp
|
||||||
|
@@ -479,8 +479,21 @@ void DebayerEGL::setShaderVariableValues(eGLImage &eglImageIn, const DebayerPara
|
||||||
|
<< " textureUniformStep_.y " << Step[1]
|
||||||
|
<< " textureUniformStrideFactor_ " << Stride
|
||||||
|
<< " textureUniformProjMatrix_ " << textureUniformProjMatrix_;
|
||||||
|
-
|
||||||
|
- glUniformMatrix3fv(ccmUniformDataIn_, 1, GL_TRUE, params.combinedMatrix.data().data());
|
||||||
|
+ /*
|
||||||
|
+ * Pre-transpose matrix for GLES 2.0
|
||||||
|
+ */
|
||||||
|
+ GLfloat ccm[9] = {
|
||||||
|
+ params.combinedMatrix[0][0],
|
||||||
|
+ params.combinedMatrix[1][0],
|
||||||
|
+ params.combinedMatrix[2][0],
|
||||||
|
+ params.combinedMatrix[0][1],
|
||||||
|
+ params.combinedMatrix[1][1],
|
||||||
|
+ params.combinedMatrix[2][1],
|
||||||
|
+ params.combinedMatrix[0][2],
|
||||||
|
+ params.combinedMatrix[1][2],
|
||||||
|
+ params.combinedMatrix[2][2],
|
||||||
|
+ };
|
||||||
|
+ glUniformMatrix3fv(ccmUniformDataIn_, 1, GL_FALSE, ccm);
|
||||||
|
LOG(Debayer, Debug) << " ccmUniformDataIn_ " << ccmUniformDataIn_ << " data " << params.combinedMatrix;
|
||||||
|
|
||||||
|
/*
|
||||||
|
--
|
||||||
|
2.55.0
|
||||||
|
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
From 80b6b8bf4735c1b2042b36635a8963b3a0a199be Mon Sep 17 00:00:00 2001
|
||||||
|
From: Robert Mader <robert.mader@collabora.com>
|
||||||
|
Date: Sat, 8 Aug 2026 13:42:36 +0200
|
||||||
|
Subject: [PATCH 7/8] simple: Limit swISP output sizes
|
||||||
|
|
||||||
|
~/.config/libcamera/configuration.yaml
|
||||||
|
---
|
||||||
|
version: 1
|
||||||
|
configuration:
|
||||||
|
pipelines:
|
||||||
|
simple:
|
||||||
|
max_output_width: 1280
|
||||||
|
max_output_height: 720
|
||||||
|
|
||||||
|
Signed-off-by: Robert Mader <robert.mader@collabora.com>
|
||||||
|
---
|
||||||
|
src/libcamera/pipeline/simple/simple.cpp | 10 ++++++++++
|
||||||
|
1 file changed, 10 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
|
||||||
|
index b96b8b529642..fa55d764f32e 100644
|
||||||
|
--- a/src/libcamera/pipeline/simple/simple.cpp
|
||||||
|
+++ b/src/libcamera/pipeline/simple/simple.cpp
|
||||||
|
@@ -752,6 +752,16 @@ void SimpleCameraData::tryPipeline(unsigned int code, const Size &size)
|
||||||
|
config.outputSizes = config.captureSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ const GlobalConfiguration &configuration = pipe()->cameraManager()->_d()->configuration();
|
||||||
|
+ if (auto maxOutputWidth = configuration.configuration()["pipelines"]["simple"]["max_output_width"].get<unsigned int>()) {
|
||||||
|
+ if (config.outputSizes.max.width > maxOutputWidth.value())
|
||||||
|
+ config.outputSizes.max.width = maxOutputWidth.value();
|
||||||
|
+ }
|
||||||
|
+ if (auto maxOutputHeight = configuration.configuration()["pipelines"]["simple"]["max_output_height"].get<unsigned int>()) {
|
||||||
|
+ if (config.outputSizes.max.height > maxOutputHeight.value())
|
||||||
|
+ config.outputSizes.max.height = maxOutputHeight.value();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
configs_.push_back(config);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.55.0
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
+21
-7
@@ -3,7 +3,7 @@ maintainer="Robert Mader <robert.mader@collabora.com>"
|
|||||||
pkgname=libcamera
|
pkgname=libcamera
|
||||||
_pkgver=0.7.2
|
_pkgver=0.7.2
|
||||||
pkgver=9999$_pkgver
|
pkgver=9999$_pkgver
|
||||||
pkgrel=2
|
pkgrel=3
|
||||||
pkgdesc="Linux camera framework"
|
pkgdesc="Linux camera framework"
|
||||||
url="https://libcamera.org/"
|
url="https://libcamera.org/"
|
||||||
arch="all"
|
arch="all"
|
||||||
@@ -52,6 +52,7 @@ _tuning_files="
|
|||||||
imx371.yaml
|
imx371.yaml
|
||||||
imx376.yaml
|
imx376.yaml
|
||||||
imx519.yaml
|
imx519.yaml
|
||||||
|
imx800.yaml
|
||||||
imx858.yaml
|
imx858.yaml
|
||||||
s5k3l6xx.yaml
|
s5k3l6xx.yaml
|
||||||
s5kjn1.yaml
|
s5kjn1.yaml
|
||||||
@@ -59,6 +60,12 @@ _tuning_files="
|
|||||||
source="https://gitlab.freedesktop.org/camera/libcamera/-/archive/v$_pkgver/libcamera-v$_pkgver.tar.gz
|
source="https://gitlab.freedesktop.org/camera/libcamera/-/archive/v$_pkgver/libcamera-v$_pkgver.tar.gz
|
||||||
0001-libcamera-simple-Enable-softISP-for-the-Pinephone.patch
|
0001-libcamera-simple-Enable-softISP-for-the-Pinephone.patch
|
||||||
0002-libcamera-simple-Skip-hwISP-formats-if-swISP-is-acti.patch
|
0002-libcamera-simple-Skip-hwISP-formats-if-swISP-is-acti.patch
|
||||||
|
0003-software_isp-debayer_egl-Re-add-log-for-failing-DMAB.patch
|
||||||
|
0004-ipa-simple-Derive-AGC-minimum-gain-step-from-sensor-.patch
|
||||||
|
0005-debayer-Further-demote-Unsupported-input-format-log.patch
|
||||||
|
0006-debayer_egl-Use-untransposed-matrix-to-fix-GLES-2.0.patch
|
||||||
|
0007-simple-Limit-swISP-output-sizes.patch
|
||||||
|
0008-libcamera-Add-quad-Bayer-CFA-layout-support.patch
|
||||||
qcam.desktop
|
qcam.desktop
|
||||||
$_tuning_files
|
$_tuning_files
|
||||||
"
|
"
|
||||||
@@ -173,15 +180,22 @@ py3() {
|
|||||||
|
|
||||||
sha512sums="
|
sha512sums="
|
||||||
b317cdc96f61682ee0bf26dfb7c4d6441db9a9c5b93ab53528121a8cd44862b3d59cbaa3881bb0837e3e381564c184c7b742124aef4267eea754c6083de353c1 libcamera-v0.7.2.tar.gz
|
b317cdc96f61682ee0bf26dfb7c4d6441db9a9c5b93ab53528121a8cd44862b3d59cbaa3881bb0837e3e381564c184c7b742124aef4267eea754c6083de353c1 libcamera-v0.7.2.tar.gz
|
||||||
eef5e38efc874f2049d17f08b04d9f21c3e4616f66873358cd2c446e651f78d6952ae25ee13a6ef917e3f85bc7b6a6991152e42c8efd8c7f5bff69829a518826 0001-libcamera-simple-Enable-softISP-for-the-Pinephone.patch
|
c6e4d44758bc3afa639d5dfa30113e92270094f1dca8505982e85629ff88fab890ec3f14098600bdf7498259becea4bdadbff117aa96b8bc0a043ffeb4fb2f4f 0001-libcamera-simple-Enable-softISP-for-the-Pinephone.patch
|
||||||
191dfa09cfd08bcdf0d0d07410d17af590cf78b8bc8f8b7587fd2dc1c645a9ca07f2926b5d98381c011319b1f4e1d6195dd0d6dba65fd8c723882e6be0d6117d 0002-libcamera-simple-Skip-hwISP-formats-if-swISP-is-acti.patch
|
1a84267c138192f3999b870985030b0cf9bf0b61b911481bdef73d6a377bea4159f438a21180db87c3ff97c9da9f00fb0885cfedde828f4237d0ce03196d6ed7 0002-libcamera-simple-Skip-hwISP-formats-if-swISP-is-acti.patch
|
||||||
|
e90c6c742a594e6af2efec8b9ce7cf133ed294645840f72a07408eabc010e50192462a653ef6e43b4558c9390ac516d0eefbc606691da55e604f5d20f871a0db 0003-software_isp-debayer_egl-Re-add-log-for-failing-DMAB.patch
|
||||||
|
6159dc60692382a712c683fa63bb131bd1d4978e1e639b90940ae5f340ac396d1f9b1abfb9b450cf29c0e484018af3f80e87cc9a4b7b4e856038bd4154bdab2c 0004-ipa-simple-Derive-AGC-minimum-gain-step-from-sensor-.patch
|
||||||
|
de5fd287fea2c71754beb7d72a6fd739a94ec7a47ed3ea09a60130bee1c08efdcf94e12b1830914e7e498b0d80a0cb4550a614aeb899129fba9d4f06918f5c63 0005-debayer-Further-demote-Unsupported-input-format-log.patch
|
||||||
|
875788a4571ec8485f17b0abf9681238acdf3c92a1152363d4416d68e171eb7a9231dd51b59b9f56e2815f6e81bbb33fbde5419e3b9b15e1963800ebe6eddb14 0006-debayer_egl-Use-untransposed-matrix-to-fix-GLES-2.0.patch
|
||||||
|
ac4e3c742fde4f8e4775bd2afbaaecb18fa49b869eb4309032bae985680f97443353eb384de19a9b588b632bb1711f82c318e0431214afe09068910b2e901252 0007-simple-Limit-swISP-output-sizes.patch
|
||||||
|
2b8ee82c974a0a54279700c70dc8973038f5e1b517cade87872319d5f0b5aa9be6df0a827a9098da3fb498238b1fe080419e9950e34def0edadca0247794f269 0008-libcamera-Add-quad-Bayer-CFA-layout-support.patch
|
||||||
22167a4eceb6d1b40b0b7c45fdf116c71684f5340de7f767535cb8e160ad9d2ae0f00cb3d461f73a344520a48a4641cf46226841d78bee06bfbfd2a91337f754 qcam.desktop
|
22167a4eceb6d1b40b0b7c45fdf116c71684f5340de7f767535cb8e160ad9d2ae0f00cb3d461f73a344520a48a4641cf46226841d78bee06bfbfd2a91337f754 qcam.desktop
|
||||||
2ee566653b17d565d2c0de67cbe6ebad25df5aac6051cad78e6bae52016fa2ca0247e964d735ac776b3e0bd447ead9c4fcb26cd7629228cdba3ceb91b46f378f hi846.yaml
|
2ee566653b17d565d2c0de67cbe6ebad25df5aac6051cad78e6bae52016fa2ca0247e964d735ac776b3e0bd447ead9c4fcb26cd7629228cdba3ceb91b46f378f hi846.yaml
|
||||||
55dab9dcb9b1982143b9d63e4e51138c5bffd7c8f4a8e4e122750b3ad9d475446956bc297d9f564819ade4be75a575d06633a064e14f8ba3ef77986783c5f067 imx355.yaml
|
4942edd551dcf51630246f71e600c17760d3574d5d45e5530d6cfeefe2c9ab1a812fbe220f8e89d92e19a499c592b2507c801ca4eb74cd15fcecb60bff5c650b imx355.yaml
|
||||||
285c6d0d712df341c0117c3762ddc139f53f44e6be36c3388d1a62696429175e2916f392163131e21f410c3676f02f5d125f375171f45f8d82ad278aa5076c62 imx363.yaml
|
285c6d0d712df341c0117c3762ddc139f53f44e6be36c3388d1a62696429175e2916f392163131e21f410c3676f02f5d125f375171f45f8d82ad278aa5076c62 imx363.yaml
|
||||||
2ee566653b17d565d2c0de67cbe6ebad25df5aac6051cad78e6bae52016fa2ca0247e964d735ac776b3e0bd447ead9c4fcb26cd7629228cdba3ceb91b46f378f imx371.yaml
|
1b1f6d36311bee38006eaa1e380571fc9fbd5625fd72f63309426d3651483cef52a176d56cdebd2ce46cbb264684ede186740df169027d2bf27d0f3057da2f86 imx371.yaml
|
||||||
55dab9dcb9b1982143b9d63e4e51138c5bffd7c8f4a8e4e122750b3ad9d475446956bc297d9f564819ade4be75a575d06633a064e14f8ba3ef77986783c5f067 imx376.yaml
|
1b1f6d36311bee38006eaa1e380571fc9fbd5625fd72f63309426d3651483cef52a176d56cdebd2ce46cbb264684ede186740df169027d2bf27d0f3057da2f86 imx376.yaml
|
||||||
2ee566653b17d565d2c0de67cbe6ebad25df5aac6051cad78e6bae52016fa2ca0247e964d735ac776b3e0bd447ead9c4fcb26cd7629228cdba3ceb91b46f378f imx519.yaml
|
1b1f6d36311bee38006eaa1e380571fc9fbd5625fd72f63309426d3651483cef52a176d56cdebd2ce46cbb264684ede186740df169027d2bf27d0f3057da2f86 imx519.yaml
|
||||||
|
55dab9dcb9b1982143b9d63e4e51138c5bffd7c8f4a8e4e122750b3ad9d475446956bc297d9f564819ade4be75a575d06633a064e14f8ba3ef77986783c5f067 imx800.yaml
|
||||||
55dab9dcb9b1982143b9d63e4e51138c5bffd7c8f4a8e4e122750b3ad9d475446956bc297d9f564819ade4be75a575d06633a064e14f8ba3ef77986783c5f067 imx858.yaml
|
55dab9dcb9b1982143b9d63e4e51138c5bffd7c8f4a8e4e122750b3ad9d475446956bc297d9f564819ade4be75a575d06633a064e14f8ba3ef77986783c5f067 imx858.yaml
|
||||||
2ee566653b17d565d2c0de67cbe6ebad25df5aac6051cad78e6bae52016fa2ca0247e964d735ac776b3e0bd447ead9c4fcb26cd7629228cdba3ceb91b46f378f s5k3l6xx.yaml
|
2ee566653b17d565d2c0de67cbe6ebad25df5aac6051cad78e6bae52016fa2ca0247e964d735ac776b3e0bd447ead9c4fcb26cd7629228cdba3ceb91b46f378f s5k3l6xx.yaml
|
||||||
d59020e62520ee622282c85ce7bcdfe453c99becf48cc1005c5f8a4bb8b2511b19c89f38fb3c994e7c6a79d1f84e2ed5f5a09b4c5bdc1dc4a44b071dbccf0d44 s5kjn1.yaml
|
d59020e62520ee622282c85ce7bcdfe453c99becf48cc1005c5f8a4bb8b2511b19c89f38fb3c994e7c6a79d1f84e2ed5f5a09b4c5bdc1dc4a44b071dbccf0d44 s5kjn1.yaml
|
||||||
|
|||||||
+16
-29
@@ -7,36 +7,23 @@ algorithms:
|
|||||||
blackLevel: 4096
|
blackLevel: 4096
|
||||||
- Awb:
|
- Awb:
|
||||||
- Ccm:
|
- Ccm:
|
||||||
# copied from s5kjn1.yaml
|
|
||||||
ccms:
|
ccms:
|
||||||
- ct: 2676
|
- ct: 2920
|
||||||
ccm: [ 2.02152, -0.41859, -0.60292,
|
ccm: [ 1.70452, -0.28006, -0.42446,
|
||||||
-0.59481, 2.21509, -0.62029,
|
-0.66546, 2.27544, -0.60998,
|
||||||
-0.44029, -1.16865, 2.60894 ]
|
-0.16166, -0.89357, 2.05524 ]
|
||||||
- ct: 2710
|
- ct: 3630
|
||||||
ccm: [ 2.01597, -0.46478, -0.55119,
|
ccm: [ 1.82077, -0.47914, -0.34163,
|
||||||
-0.59047, 2.14717, -0.55671,
|
-0.58711, 2.13712, -0.55002,
|
||||||
-0.40793, -1.19946, 2.60739 ]
|
-0.12653, -0.74572, 1.87226 ]
|
||||||
- ct: 2719
|
- ct: 4550
|
||||||
ccm: [ 1.99894, -0.41626, -0.58268,
|
ccm: [ 1.80579, -0.47998, -0.32582,
|
||||||
-0.59321, 2.18167, -0.58846,
|
-0.52116, 2.23331, -0.71214,
|
||||||
-0.42518, -1.21384, 2.63903 ]
|
-0.11717, -0.64942, 1.76659 ]
|
||||||
- ct: 2867
|
- ct: 5580
|
||||||
ccm: [ 1.95177, -0.35904, -0.59274,
|
ccm: [ 1.84933, -0.52533, -0.32401,
|
||||||
-0.44282, 1.97362, -0.53079,
|
-0.45888, 2.07922, -0.62033,
|
||||||
-0.49059, -1.35379, 2.84439 ]
|
-0.12065, -0.56643, 1.68708 ]
|
||||||
- ct: 3474
|
|
||||||
ccm: [ 1.97712, -0.60854, -0.36858,
|
|
||||||
-0.47723, 1.91142, -0.43418,
|
|
||||||
-0.23092, -0.72246, 1.95339 ]
|
|
||||||
- ct: 3761
|
|
||||||
ccm: [ 2.29903, -0.94652, -0.35251,
|
|
||||||
-0.51661, 1.90311, -0.38651,
|
|
||||||
-0.25114, -0.67501, 1.92615 ]
|
|
||||||
- ct: 6890
|
|
||||||
ccm: [ 1.93867, -0.67486, -0.26381,
|
|
||||||
-0.43049, 2.00702, -0.57652,
|
|
||||||
-0.15696, -0.51345, 1.67041 ]
|
|
||||||
- Adjust:
|
- Adjust:
|
||||||
- Agc:
|
- Agc:
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -6,6 +6,33 @@ algorithms:
|
|||||||
- BlackLevel:
|
- BlackLevel:
|
||||||
blackLevel: 4096
|
blackLevel: 4096
|
||||||
- Awb:
|
- Awb:
|
||||||
|
- Ccm:
|
||||||
|
# copied from imx363.yaml
|
||||||
|
ccms:
|
||||||
|
- ct: 2701
|
||||||
|
ccm: [ 1.66951, -0.35271, -0.31679,
|
||||||
|
-0.33594, 1.69731, -0.36137,
|
||||||
|
0.07843, -1.25185, 2.17341 ]
|
||||||
|
- ct: 2789
|
||||||
|
ccm: [ 1.74401, -0.44379, -0.30022,
|
||||||
|
-0.33322, 1.69889, -0.36567,
|
||||||
|
0.09074, -1.27168, 2.18093 ]
|
||||||
|
- ct: 3025
|
||||||
|
ccm: [ 1.71956, -0.37493, -0.34462,
|
||||||
|
-0.46994, 1.83453, -0.36459,
|
||||||
|
0.01838, -1.03863, 2.02024 ]
|
||||||
|
- ct: 4021
|
||||||
|
ccm: [ 1.65286, -0.42348, -0.22938,
|
||||||
|
-0.34752, 1.63472, -0.28719,
|
||||||
|
-0.02119, -0.65164, 1.67283 ]
|
||||||
|
- ct: 4125
|
||||||
|
ccm: [ 1.89736, -0.65796, -0.23941,
|
||||||
|
-0.36603, 1.62015, -0.25412,
|
||||||
|
0.01202, -0.66114, 1.64912 ]
|
||||||
|
- ct: 6521
|
||||||
|
ccm: [ 1.64464, -0.50901, -0.13564,
|
||||||
|
-0.28189, 1.73169, -0.44979,
|
||||||
|
-0.02601, -0.51457, 1.54058 ]
|
||||||
- Adjust:
|
- Adjust:
|
||||||
- Agc:
|
- Agc:
|
||||||
...
|
...
|
||||||
|
|||||||
+25
-29
@@ -7,36 +7,32 @@ algorithms:
|
|||||||
blackLevel: 4096
|
blackLevel: 4096
|
||||||
- Awb:
|
- Awb:
|
||||||
- Ccm:
|
- Ccm:
|
||||||
# copied from s5kjn1.yaml
|
# copied from imx363.yaml
|
||||||
ccms:
|
ccms:
|
||||||
- ct: 2676
|
- ct: 2701
|
||||||
ccm: [ 2.02152, -0.41859, -0.60292,
|
ccm: [ 1.66951, -0.35271, -0.31679,
|
||||||
-0.59481, 2.21509, -0.62029,
|
-0.33594, 1.69731, -0.36137,
|
||||||
-0.44029, -1.16865, 2.60894 ]
|
0.07843, -1.25185, 2.17341 ]
|
||||||
- ct: 2710
|
- ct: 2789
|
||||||
ccm: [ 2.01597, -0.46478, -0.55119,
|
ccm: [ 1.74401, -0.44379, -0.30022,
|
||||||
-0.59047, 2.14717, -0.55671,
|
-0.33322, 1.69889, -0.36567,
|
||||||
-0.40793, -1.19946, 2.60739 ]
|
0.09074, -1.27168, 2.18093 ]
|
||||||
- ct: 2719
|
- ct: 3025
|
||||||
ccm: [ 1.99894, -0.41626, -0.58268,
|
ccm: [ 1.71956, -0.37493, -0.34462,
|
||||||
-0.59321, 2.18167, -0.58846,
|
-0.46994, 1.83453, -0.36459,
|
||||||
-0.42518, -1.21384, 2.63903 ]
|
0.01838, -1.03863, 2.02024 ]
|
||||||
- ct: 2867
|
- ct: 4021
|
||||||
ccm: [ 1.95177, -0.35904, -0.59274,
|
ccm: [ 1.65286, -0.42348, -0.22938,
|
||||||
-0.44282, 1.97362, -0.53079,
|
-0.34752, 1.63472, -0.28719,
|
||||||
-0.49059, -1.35379, 2.84439 ]
|
-0.02119, -0.65164, 1.67283 ]
|
||||||
- ct: 3474
|
- ct: 4125
|
||||||
ccm: [ 1.97712, -0.60854, -0.36858,
|
ccm: [ 1.89736, -0.65796, -0.23941,
|
||||||
-0.47723, 1.91142, -0.43418,
|
-0.36603, 1.62015, -0.25412,
|
||||||
-0.23092, -0.72246, 1.95339 ]
|
0.01202, -0.66114, 1.64912 ]
|
||||||
- ct: 3761
|
- ct: 6521
|
||||||
ccm: [ 2.29903, -0.94652, -0.35251,
|
ccm: [ 1.64464, -0.50901, -0.13564,
|
||||||
-0.51661, 1.90311, -0.38651,
|
-0.28189, 1.73169, -0.44979,
|
||||||
-0.25114, -0.67501, 1.92615 ]
|
-0.02601, -0.51457, 1.54058 ]
|
||||||
- ct: 6890
|
|
||||||
ccm: [ 1.93867, -0.67486, -0.26381,
|
|
||||||
-0.43049, 2.00702, -0.57652,
|
|
||||||
-0.15696, -0.51345, 1.67041 ]
|
|
||||||
- Adjust:
|
- Adjust:
|
||||||
- Agc:
|
- Agc:
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -6,6 +6,33 @@ algorithms:
|
|||||||
- BlackLevel:
|
- BlackLevel:
|
||||||
blackLevel: 4096
|
blackLevel: 4096
|
||||||
- Awb:
|
- Awb:
|
||||||
|
- Ccm:
|
||||||
|
# copied from imx363.yaml
|
||||||
|
ccms:
|
||||||
|
- ct: 2701
|
||||||
|
ccm: [ 1.66951, -0.35271, -0.31679,
|
||||||
|
-0.33594, 1.69731, -0.36137,
|
||||||
|
0.07843, -1.25185, 2.17341 ]
|
||||||
|
- ct: 2789
|
||||||
|
ccm: [ 1.74401, -0.44379, -0.30022,
|
||||||
|
-0.33322, 1.69889, -0.36567,
|
||||||
|
0.09074, -1.27168, 2.18093 ]
|
||||||
|
- ct: 3025
|
||||||
|
ccm: [ 1.71956, -0.37493, -0.34462,
|
||||||
|
-0.46994, 1.83453, -0.36459,
|
||||||
|
0.01838, -1.03863, 2.02024 ]
|
||||||
|
- ct: 4021
|
||||||
|
ccm: [ 1.65286, -0.42348, -0.22938,
|
||||||
|
-0.34752, 1.63472, -0.28719,
|
||||||
|
-0.02119, -0.65164, 1.67283 ]
|
||||||
|
- ct: 4125
|
||||||
|
ccm: [ 1.89736, -0.65796, -0.23941,
|
||||||
|
-0.36603, 1.62015, -0.25412,
|
||||||
|
0.01202, -0.66114, 1.64912 ]
|
||||||
|
- ct: 6521
|
||||||
|
ccm: [ 1.64464, -0.50901, -0.13564,
|
||||||
|
-0.28189, 1.73169, -0.44979,
|
||||||
|
-0.02601, -0.51457, 1.54058 ]
|
||||||
- Adjust:
|
- Adjust:
|
||||||
- Agc:
|
- Agc:
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
%YAML 1.1
|
||||||
|
---
|
||||||
|
version: 1
|
||||||
|
algorithms:
|
||||||
|
- BlackLevel:
|
||||||
|
blackLevel: 4096
|
||||||
|
- Awb:
|
||||||
|
- Ccm:
|
||||||
|
# copied from s5kjn1.yaml
|
||||||
|
ccms:
|
||||||
|
- ct: 2676
|
||||||
|
ccm: [ 2.02152, -0.41859, -0.60292,
|
||||||
|
-0.59481, 2.21509, -0.62029,
|
||||||
|
-0.44029, -1.16865, 2.60894 ]
|
||||||
|
- ct: 2710
|
||||||
|
ccm: [ 2.01597, -0.46478, -0.55119,
|
||||||
|
-0.59047, 2.14717, -0.55671,
|
||||||
|
-0.40793, -1.19946, 2.60739 ]
|
||||||
|
- ct: 2719
|
||||||
|
ccm: [ 1.99894, -0.41626, -0.58268,
|
||||||
|
-0.59321, 2.18167, -0.58846,
|
||||||
|
-0.42518, -1.21384, 2.63903 ]
|
||||||
|
- ct: 2867
|
||||||
|
ccm: [ 1.95177, -0.35904, -0.59274,
|
||||||
|
-0.44282, 1.97362, -0.53079,
|
||||||
|
-0.49059, -1.35379, 2.84439 ]
|
||||||
|
- ct: 3474
|
||||||
|
ccm: [ 1.97712, -0.60854, -0.36858,
|
||||||
|
-0.47723, 1.91142, -0.43418,
|
||||||
|
-0.23092, -0.72246, 1.95339 ]
|
||||||
|
- ct: 3761
|
||||||
|
ccm: [ 2.29903, -0.94652, -0.35251,
|
||||||
|
-0.51661, 1.90311, -0.38651,
|
||||||
|
-0.25114, -0.67501, 1.92615 ]
|
||||||
|
- ct: 6890
|
||||||
|
ccm: [ 1.93867, -0.67486, -0.26381,
|
||||||
|
-0.43049, 2.00702, -0.57652,
|
||||||
|
-0.15696, -0.51345, 1.67041 ]
|
||||||
|
- Adjust:
|
||||||
|
- Agc:
|
||||||
|
...
|
||||||
Reference in New Issue
Block a user