From 2b1ac94dd24373a3d30456a5c2e1ae20b0da7771 Mon Sep 17 00:00:00 2001 From: Markus Volk Date: Sat, 25 Mar 2023 07:16:39 +0100 Subject: libcamera: update 0.0.1 -> 0.0.4 Signed-off-by: Markus Volk Signed-off-by: Khem Raj --- ...01-file_sink.cpp-Avoid-dangling-reference.patch | 46 -------------- .../libcamera/libcamera_0.0.1.bb | 72 ---------------------- .../libcamera/libcamera_0.0.4.bb | 69 +++++++++++++++++++++ 3 files changed, 69 insertions(+), 118 deletions(-) delete mode 100644 meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-file_sink.cpp-Avoid-dangling-reference.patch delete mode 100644 meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.1.bb create mode 100644 meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.4.bb diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-file_sink.cpp-Avoid-dangling-reference.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-file_sink.cpp-Avoid-dangling-reference.patch deleted file mode 100644 index 5aa6ee8d3c..0000000000 --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-file_sink.cpp-Avoid-dangling-reference.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 0e97896e6a09957f27125957d00b5150ec90b2e9 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 24 Jan 2023 01:18:25 -0800 -Subject: [PATCH] file_sink.cpp: Avoid dangling-reference - -Fixes following errors with gcc-13 - -../git/src/cam/file_sink.cpp:92:45: error: possibly dangling reference to a temporary [-Werror=dangling-reference] - 92 | const FrameMetadata::Plane &meta = buffer->metadata().planes()[i]; - | ^~~~ -../git/src/cam/file_sink.cpp:92:81: note: the temporary was destroyed at the end of the full expression '(& buffer->libcamera::FrameBuffer::metadata())->libcamera::FrameMetadata::planes().libcamera::Span::operator[](i)' - 92 | const FrameMetadata::Plane &meta = buffer->metadata().planes()[i]; - | ^ -cc1plus: all warnings being treated as errors - -Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2023-January/036575.html] -Signed-off-by: Khem Raj ---- - src/cam/file_sink.cpp | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/cam/file_sink.cpp b/src/cam/file_sink.cpp -index 45213d4a..897c4b37 100644 ---- a/src/cam/file_sink.cpp -+++ b/src/cam/file_sink.cpp -@@ -89,13 +89,13 @@ void FileSink::writeBuffer(const Stream *stream, FrameBuffer *buffer) - Image *image = mappedBuffers_[buffer].get(); - - for (unsigned int i = 0; i < buffer->planes().size(); ++i) { -- const FrameMetadata::Plane &meta = buffer->metadata().planes()[i]; -+ unsigned int bytesused = buffer->metadata().planes()[i].bytesused; - - Span data = image->data(i); -- unsigned int length = std::min(meta.bytesused, data.size()); -+ unsigned int length = std::min(bytesused, data.size()); - -- if (meta.bytesused > data.size()) -- std::cerr << "payload size " << meta.bytesused -+ if (bytesused > data.size()) -+ std::cerr << "payload size " << bytesused - << " larger than plane size " << data.size() - << std::endl; - --- -2.39.1 - diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.1.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.1.bb deleted file mode 100644 index 46f058f2ea..0000000000 --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.1.bb +++ /dev/null @@ -1,72 +0,0 @@ -SUMMARY = "Linux libcamera framework" -SECTION = "libs" - -LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" - -LIC_FILES_CHKSUM = "\ - file://LICENSES/GPL-2.0-or-later.txt;md5=fed54355545ffd980b814dab4a3b312c \ - file://LICENSES/LGPL-2.1-or-later.txt;md5=2a4f4fd2128ea2f65047ee63fbca9f68 \ -" - -SRC_URI = " \ - git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master \ - file://0001-file_sink.cpp-Avoid-dangling-reference.patch \ -" - -SRCREV = "a83aed77df1258e469c0eb42d9cb4f1938db53f2" - -PE = "1" - -S = "${WORKDIR}/git" - -DEPENDS = "python3-pyyaml-native python3-jinja2-native python3-ply-native python3-jinja2-native udev gnutls chrpath-native libevent libyaml" -DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native', '', d)}" - -PACKAGES =+ "${PN}-gst" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base" - -EXTRA_OEMESON = " \ - -Dpipelines=uvcvideo,simple,vimc \ - -Dipas=vimc \ - -Dv4l2=true \ - -Dcam=enabled \ - -Dlc-compliance=disabled \ - -Dtest=false \ - -Ddocumentation=disabled \ -" - -RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland qt', 'qtwayland', '', d)}" - -inherit meson pkgconfig python3native - -do_configure:prepend() { - sed -i -e 's|py_compile=True,||' ${S}/utils/ipc/mojo/public/tools/mojom/mojom/generate/template_expander.py -} - -do_install:append() { - chrpath -d ${D}${libdir}/libcamera.so - chrpath -d ${D}${libdir}/v4l2-compat.so -} - -addtask do_recalculate_ipa_signatures_package after do_package before do_packagedata -do_recalculate_ipa_signatures_package() { - local modules - for module in $(find ${PKGD}/usr/lib/libcamera -name "*.so.sign"); do - module="${module%.sign}" - if [ -f "${module}" ] ; then - modules="${modules} ${module}" - fi - done - - ${S}/src/ipa/ipa-sign-install.sh ${B}/src/ipa-priv-key.pem "${modules}" -} - -FILES:${PN} += " ${libdir}/v4l2-compat.so" -FILES:${PN}-gst = "${libdir}/gstreamer-1.0" - -# libcamera-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to -# both 32 and 64 bit file APIs. -GLIBC_64BIT_TIME_FLAGS = "" - diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.4.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.4.bb new file mode 100644 index 0000000000..cbcc33aa4c --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.4.bb @@ -0,0 +1,69 @@ +SUMMARY = "Linux libcamera framework" +SECTION = "libs" + +LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" + +LIC_FILES_CHKSUM = "\ + file://LICENSES/GPL-2.0-or-later.txt;md5=fed54355545ffd980b814dab4a3b312c \ + file://LICENSES/LGPL-2.1-or-later.txt;md5=2a4f4fd2128ea2f65047ee63fbca9f68 \ +" + +SRC_URI = "git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master" + +SRCREV = "6cf637eb253a68edebe59505bea55435fafb00cd" + +PE = "1" + +S = "${WORKDIR}/git" + +DEPENDS = "python3-pyyaml-native python3-jinja2-native python3-ply-native python3-jinja2-native udev gnutls chrpath-native libevent libyaml" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native', '', d)}" + +PACKAGES =+ "${PN}-gst" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base" + +EXTRA_OEMESON = " \ + -Dpipelines=uvcvideo,simple,vimc \ + -Dipas=vimc \ + -Dv4l2=true \ + -Dcam=enabled \ + -Dlc-compliance=disabled \ + -Dtest=false \ + -Ddocumentation=disabled \ +" + +RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland qt', 'qtwayland', '', d)}" + +inherit meson pkgconfig python3native + +do_configure:prepend() { + sed -i -e 's|py_compile=True,||' ${S}/utils/ipc/mojo/public/tools/mojom/mojom/generate/template_expander.py +} + +do_install:append() { + chrpath -d ${D}${libdir}/libcamera.so + chrpath -d ${D}${libdir}/v4l2-compat.so +} + +addtask do_recalculate_ipa_signatures_package after do_package before do_packagedata +do_recalculate_ipa_signatures_package() { + local modules + for module in $(find ${PKGD}/usr/lib/libcamera -name "*.so.sign"); do + module="${module%.sign}" + if [ -f "${module}" ] ; then + modules="${modules} ${module}" + fi + done + + ${S}/src/ipa/ipa-sign-install.sh ${B}/src/ipa-priv-key.pem "${modules}" +} + +FILES:${PN} += " ${libdir}/v4l2-compat.so" +FILES:${PN}-gst = "${libdir}/gstreamer-1.0" + +# libcamera-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to +# both 32 and 64 bit file APIs. +GLIBC_64BIT_TIME_FLAGS = "" + -- cgit v1.2.3-54-g00ecf