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

Niklas Söderlund niklas.soderlund at ragnatech.se
Thu Feb 28 18:30:09 CET 2019


Hi Laurent,

Thanks for your patch.

On 2019-02-28 18:29:13 +0200, Laurent Pinchart wrote:
> 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>

Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>

> ---
>  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
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

-- 
Regards,
Niklas Söderlund


More information about the libcamera-devel mailing list