summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-02-28 18:19:37 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-03-01 20:46:43 +0200
commit54e6a3eb1f84a6020e6b24b61f37344ba6eecb7d (patch)
tree8bb6c88ff078e0ffdec11c5af67ff7b9fa18425c
parentb2c06cf40975398eb56be74fa3cd5d1b7b13cb50 (diff)
cam: Don't requeue requests when stopping stream
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@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
-rw-r--r--src/cam/main.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cam/main.cpp b/src/cam/main.cpp
index 13aa3596..1ca7862b 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;