diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-02-28 18:19:37 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-03-01 20:46:43 +0200 |
commit | 54e6a3eb1f84a6020e6b24b61f37344ba6eecb7d (patch) | |
tree | 8bb6c88ff078e0ffdec11c5af67ff7b9fa18425c | |
parent | b2c06cf40975398eb56be74fa3cd5d1b7b13cb50 (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.cpp | 3 |
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; |