Accepting request 1140583 from home:alarrosa:branches:openSUSE:Factory:Staging:F
- Add patches from upstream to fix building the package in Factory with libcamera 0.2.0: * 0001-spa-libcamera-use-CameraConfigurationorientation.patch * 0002-spa-libcamera-bump-minimum-supported-version-to-0.2.0.patch OBS-URL: https://build.opensuse.org/request/show/1140583 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=176
This commit is contained in:
parent
3cb30442d2
commit
7faeb1727f
80
0001-spa-libcamera-use-CameraConfigurationorientation.patch
Normal file
80
0001-spa-libcamera-use-CameraConfigurationorientation.patch
Normal file
@ -0,0 +1,80 @@
|
||||
From 268f4856f852d72a749932630223f928acd1a704 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= <pobrn@protonmail.com>
|
||||
Date: Sat, 28 Oct 2023 02:09:06 +0200
|
||||
Subject: [PATCH] spa: libcamera: use `CameraConfiguration::orientation`
|
||||
|
||||
libcamera commit cc65629b68d49d ("libcamera: camera: Introduce Orientation") [0]
|
||||
introduced to the `CameraConfiguration::orientation` member to describe the
|
||||
orientation of the image in the received memory buffers.
|
||||
|
||||
Then c65e40b8480ffb ("libcamera: Use CameraConfiguration::orientation") [1]
|
||||
removed `CameraConfiguration::transform`, which broke the libcamera plugin.
|
||||
|
||||
Fix that by using the new `orientation` member.
|
||||
|
||||
[0]: https://git.linuxtv.org/libcamera.git/commit/?id=cc65629b68d49d5f2a4d61537584c56ba510a335
|
||||
[1]: https://git.linuxtv.org/libcamera.git/commit/?id=c65e40b8480ffb5f50e01a4e6713164c7194a937
|
||||
---
|
||||
spa/plugins/libcamera/libcamera-utils.cpp | 36 +++++++++++------------
|
||||
1 file changed, 17 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/spa/plugins/libcamera/libcamera-utils.cpp b/spa/plugins/libcamera/libcamera-utils.cpp
|
||||
index 2b1aea5a76..c197248d30 100644
|
||||
--- a/spa/plugins/libcamera/libcamera-utils.cpp
|
||||
+++ b/spa/plugins/libcamera/libcamera-utils.cpp
|
||||
@@ -716,25 +716,23 @@ static int spa_libcamera_use_buffers(struct impl *impl, struct port *port,
|
||||
}
|
||||
|
||||
static const struct {
|
||||
- Transform libcamera_transform;
|
||||
- uint32_t spa_transform_value;
|
||||
-} transform_map[] = {
|
||||
- { Transform::Identity, SPA_META_TRANSFORMATION_None },
|
||||
- { Transform::Rot0, SPA_META_TRANSFORMATION_None },
|
||||
- { Transform::HFlip, SPA_META_TRANSFORMATION_Flipped },
|
||||
- { Transform::VFlip, SPA_META_TRANSFORMATION_Flipped180 },
|
||||
- { Transform::HVFlip, SPA_META_TRANSFORMATION_180 },
|
||||
- { Transform::Rot180, SPA_META_TRANSFORMATION_180 },
|
||||
- { Transform::Transpose, SPA_META_TRANSFORMATION_Flipped90 },
|
||||
- { Transform::Rot90, SPA_META_TRANSFORMATION_90 },
|
||||
- { Transform::Rot270, SPA_META_TRANSFORMATION_270 },
|
||||
- { Transform::Rot180Transpose, SPA_META_TRANSFORMATION_Flipped270 },
|
||||
+ Orientation libcamera_orientation; /* clockwise rotation then horizontal mirroring */
|
||||
+ uint32_t spa_transform_value; /* horizontal mirroring then counter-clockwise rotation */
|
||||
+} orientation_map[] = {
|
||||
+ { Orientation::Rotate0, SPA_META_TRANSFORMATION_None },
|
||||
+ { Orientation::Rotate0Mirror, SPA_META_TRANSFORMATION_Flipped },
|
||||
+ { Orientation::Rotate90, SPA_META_TRANSFORMATION_270 },
|
||||
+ { Orientation::Rotate90Mirror, SPA_META_TRANSFORMATION_Flipped90 },
|
||||
+ { Orientation::Rotate180, SPA_META_TRANSFORMATION_180 },
|
||||
+ { Orientation::Rotate180Mirror, SPA_META_TRANSFORMATION_Flipped180 },
|
||||
+ { Orientation::Rotate270, SPA_META_TRANSFORMATION_90 },
|
||||
+ { Orientation::Rotate270Mirror, SPA_META_TRANSFORMATION_Flipped270 },
|
||||
};
|
||||
|
||||
-static uint32_t libcamera_transform_to_spa_transform_value(Transform transform)
|
||||
+static uint32_t libcamera_orientation_to_spa_transform_value(Orientation orientation)
|
||||
{
|
||||
- for (const auto& t : transform_map) {
|
||||
- if (t.libcamera_transform == transform)
|
||||
+ for (const auto& t : orientation_map) {
|
||||
+ if (t.libcamera_orientation == orientation)
|
||||
return t.spa_transform_value;
|
||||
}
|
||||
return SPA_META_TRANSFORMATION_None;
|
||||
@@ -788,9 +786,9 @@ mmap_init(struct impl *impl, struct port *port,
|
||||
buffers[i], SPA_META_VideoTransform, sizeof(*b->videotransform));
|
||||
if (b->videotransform) {
|
||||
b->videotransform->transform =
|
||||
- libcamera_transform_to_spa_transform_value(impl->config->transform);
|
||||
- spa_log_debug(impl->log, "Setting videotransform for buffer %d to %u (from %s)",
|
||||
- i, b->videotransform->transform, transformToString(impl->config->transform));
|
||||
+ libcamera_orientation_to_spa_transform_value(impl->config->orientation);
|
||||
+ spa_log_debug(impl->log, "Setting videotransform for buffer %u to %u",
|
||||
+ i, b->videotransform->transform);
|
||||
|
||||
}
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
@ -0,0 +1,45 @@
|
||||
From 4b145ad444b8fc70b6cb375b6447e9c9793e2238 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= <pobrn@protonmail.com>
|
||||
Date: Tue, 9 Jan 2024 19:22:07 +0100
|
||||
Subject: [PATCH] spa: libcamera: bump minimum supported version to 0.2.0
|
||||
|
||||
---
|
||||
spa/meson.build | 3 +--
|
||||
spa/plugins/libcamera/libcamera-device.cpp | 2 --
|
||||
2 files changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/spa/meson.build b/spa/meson.build
|
||||
index 841d27b409..ac20844ce3 100644
|
||||
--- a/spa/meson.build
|
||||
+++ b/spa/meson.build
|
||||
@@ -96,9 +96,8 @@ if get_option('spa-plugins').allowed()
|
||||
endif
|
||||
summary({'Vulkan': have_vulkan}, bool_yn: true, section: 'Misc dependencies')
|
||||
|
||||
- libcamera_dep = dependency('libcamera', required: get_option('libcamera'))
|
||||
+ libcamera_dep = dependency('libcamera', version: '>= 0.2.0', required: get_option('libcamera'))
|
||||
summary({'libcamera': libcamera_dep.found()}, bool_yn: true, section: 'Backend')
|
||||
- cdata.set('HAVE_LIBCAMERA_SYSTEM_DEVICES', libcamera_dep.version().version_compare('>= 0.1.0'))
|
||||
|
||||
compress_offload_option = get_option('compress-offload')
|
||||
summary({'Compress-Offload': compress_offload_option.allowed()}, bool_yn: true, section: 'Backend')
|
||||
diff --git a/spa/plugins/libcamera/libcamera-device.cpp b/spa/plugins/libcamera/libcamera-device.cpp
|
||||
index 0abf2f6195..b25a4eb728 100644
|
||||
--- a/spa/plugins/libcamera/libcamera-device.cpp
|
||||
+++ b/spa/plugins/libcamera/libcamera-device.cpp
|
||||
@@ -61,12 +61,10 @@ struct impl {
|
||||
static const libcamera::Span<const int64_t> cameraDevice(
|
||||
const Camera *camera)
|
||||
{
|
||||
-#ifdef HAVE_LIBCAMERA_SYSTEM_DEVICES
|
||||
const ControlList &props = camera->properties();
|
||||
|
||||
if (auto devices = props.get(properties::SystemDevices))
|
||||
return devices.value();
|
||||
-#endif
|
||||
|
||||
return {};
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
|
@ -1,3 +1,11 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 22 11:34:04 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Add patches from upstream to fix building the package in Factory
|
||||
with libcamera 0.2.0:
|
||||
* 0001-spa-libcamera-use-CameraConfigurationorientation.patch
|
||||
* 0002-spa-libcamera-bump-minimum-supported-version-to-0.2.0.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 11 11:09:02 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
|
@ -72,6 +72,10 @@ Source0: %{name}-%{version}.tar.xz
|
||||
Source99: baselibs.conf
|
||||
# PATCH-FIX-OPENSUSE reduce-meson-dependency.patch
|
||||
Patch0: reduce-meson-dependency.patch
|
||||
# PATCH-FIX-UPSTREAM 0001-spa-libcamera-use-CameraConfigurationorientation.patch
|
||||
Patch1: 0001-spa-libcamera-use-CameraConfigurationorientation.patch
|
||||
# PATCH-FIX-UPSTREAM 0002-spa-libcamera-bump-minimum-supported-version-to-0.2.0.patch
|
||||
Patch2: 0002-spa-libcamera-bump-minimum-supported-version-to-0.2.0.patch
|
||||
|
||||
BuildRequires: docutils
|
||||
BuildRequires: doxygen
|
||||
@ -388,6 +392,13 @@ sed -ie "s/version : '0.3.72'/version : '%{version}'/" %{P:0}
|
||||
%patch0 -p1
|
||||
%endif
|
||||
|
||||
%if %{with libcamera}
|
||||
%if %{?pkg_vcmp:%{pkg_vcmp libcamera-devel >= 0.2.0}}
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%build
|
||||
%if %{pkg_vcmp gcc < 8}
|
||||
export CC=gcc-11
|
||||
|
Loading…
x
Reference in New Issue
Block a user