From f9e9e62cc7afbd696a6646a181a2685ca9876085 Mon Sep 17 00:00:00 2001 From: Vasiliy Doylov Date: Wed, 9 Jul 2025 17:08:56 +0300 Subject: [PATCH] Debug Signed-off-by: Vasiliy Doylov --- src/gstreamer/gstlibcamerapool.cpp | 3 +-- src/gstreamer/gstlibcamerasrc.cpp | 2 +- src/libcamera/pipeline/simple/simple.cpp | 2 ++ src/libcamera/software_isp/software_isp.cpp | 8 ++++++++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/gstreamer/gstlibcamerapool.cpp b/src/gstreamer/gstlibcamerapool.cpp index 8278144ff..c5e736fd1 100644 --- a/src/gstreamer/gstlibcamerapool.cpp +++ b/src/gstreamer/gstlibcamerapool.cpp @@ -39,9 +39,8 @@ gst_libcamera_pool_pop_buffer(GstLibcameraPool *self) GLibLocker lock(GST_OBJECT(self)); GstBuffer *buf; - if (self->queue->empty()) + if (self->queue->empty() || self->queue->size() == 0) return nullptr; - buf = self->queue->front(); self->queue->pop_front(); diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp index 3aca4eeda..c71414f35 100644 --- a/src/gstreamer/gstlibcamerasrc.cpp +++ b/src/gstreamer/gstlibcamerasrc.cpp @@ -342,7 +342,7 @@ int GstLibcameraSrcState::processRequest() { GLibLocker locker(&lock_); - if (!completedRequests_.empty()) { + if (!completedRequests_.empty() && completedRequests_.size() != 0) { wrap = std::move(completedRequests_.front()); completedRequests_.pop(); } diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp index 4c002ca68..8cc847ac5 100644 --- a/src/libcamera/pipeline/simple/simple.cpp +++ b/src/libcamera/pipeline/simple/simple.cpp @@ -284,6 +284,8 @@ public: unsigned int streamIndex(const Stream *stream) const { + if(streams_.empty()) + return 0; return stream - &streams_.front(); } diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp index 8f41591c8..9b9aef9b8 100644 --- a/src/libcamera/software_isp/software_isp.cpp +++ b/src/libcamera/software_isp/software_isp.cpp @@ -407,6 +407,10 @@ void SoftwareIsp::statsReady(uint32_t frame, uint32_t bufferId) void SoftwareIsp::inputReady(FrameBuffer *input) { + if(queuedInputBuffers_.empty()){ + LOG(SoftwareIsp, Error) << "Lol, it's empty (input)"; + return; + } ASSERT(queuedInputBuffers_.front() == input); queuedInputBuffers_.pop_front(); inputBufferReady.emit(input); @@ -414,6 +418,10 @@ void SoftwareIsp::inputReady(FrameBuffer *input) void SoftwareIsp::outputReady(FrameBuffer *output) { + if(queuedOutputBuffers_.empty()){ + LOG(SoftwareIsp, Error) << "Lol, it's empty (output)"; + return; + } ASSERT(queuedOutputBuffers_.front() == output); queuedOutputBuffers_.pop_front(); outputBufferReady.emit(output);