Signed-off-by: Khem Raj <[email protected]>
---
 ...le_sink.cpp-Avoid-dangling-reference.patch | 46 +++++++++++++++++++
 .../libcamera/libcamera_0.0.1.bb              |  1 +
 2 files changed, 47 insertions(+)
 create mode 100644 
meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-file_sink.cpp-Avoid-dangling-reference.patch

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
new file mode 100644
index 0000000000..5aa6ee8d3c
--- /dev/null
+++ 
b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-file_sink.cpp-Avoid-dangling-reference.patch
@@ -0,0 +1,46 @@
+From 0e97896e6a09957f27125957d00b5150ec90b2e9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+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<const
 libcamera::FrameMetadata::Plane>::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 <[email protected]>
+---
+ 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<uint8_t> data = image->data(i);
+-              unsigned int length = std::min<unsigned int>(meta.bytesused, 
data.size());
++              unsigned int length = std::min<unsigned int>(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
index 483fe1507e..46f058f2ea 100644
--- a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.1.bb
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.1.bb
@@ -10,6 +10,7 @@ LIC_FILES_CHKSUM = "\
 
 SRC_URI = " \
         
git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master \
+        file://0001-file_sink.cpp-Avoid-dangling-reference.patch \
 "
 
 SRCREV = "a83aed77df1258e469c0eb42d9cb4f1938db53f2"
-- 
2.39.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#100778): 
https://lists.openembedded.org/g/openembedded-devel/message/100778
Mute This Topic: https://lists.openembedded.org/mt/96524474/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to