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:
parent
343c982087
commit
c54777db04
6 changed files with 25 additions and 324 deletions
|
@ -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
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
"
|
"
|
||||||
|
|
Loading…
Reference in a new issue