From 059ed93bebbac5710fffd4714ee20cc02d3212aa Mon Sep 17 00:00:00 2001 From: Helen Koike Date: Tue, 25 Jun 2019 13:23:53 -0300 Subject: cam: capture: Stop stream when queueRequest() fails queueRequest() is called after starting the stream. If it fails, the stream should be stopped, otherwise it can get a "Device or resource busy" error, due to VIDIOC_REQBUFS ioctls being called after VIDIOC_STREAMON without VIDIOC_STREAMOFF in-between. Signed-off-by: Helen Koike Reviewed-by: Kieran Bingham Signed-off-by: Kieran Bingham --- src/cam/capture.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/cam') diff --git a/src/cam/capture.cpp b/src/cam/capture.cpp index e455612b..6b842d73 100644 --- a/src/cam/capture.cpp +++ b/src/cam/capture.cpp @@ -117,6 +117,7 @@ int Capture::capture(EventLoop *loop) ret = camera_->queueRequest(request); if (ret < 0) { std::cerr << "Can't queue request" << std::endl; + camera_->stop(); return ret; } } -- cgit v1.2.1