[libcamera-devel] [PATCH 10/10] cam: Don't requeue requests when stopping stream

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu Feb 28 17:29:13 CET 2019


When stopping the stream all pending requests are cancelled, resulting
in the request completion signal being emitted with the request status
set appropriately. Check the request status in the request completion
slot and skip requeuing the request if it has been cancelled.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 src/cam/main.cpp | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/cam/main.cpp b/src/cam/main.cpp
index 4c2df583fe8e..c8e673e30c0b 100644
--- a/src/cam/main.cpp
+++ b/src/cam/main.cpp
@@ -102,6 +102,9 @@ static void requestComplete(Request *request, const std::map<Stream *, Buffer *>
 {
 	static uint64_t last = 0;
 
+	if (request->status() == Request::RequestCancelled)
+		return;
+
 	Buffer *buffer = buffers.begin()->second;
 
 	double fps = buffer->timestamp() - last;
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list