pipeline: raspberrypi: Improve Unicam timeout handling
Currently, if a Unicam timeout is signalled, the pipeline handler only raises an error message. Update the error handling to put the pipeline handler in an internal error state, disable all device streams, and return all outstanding requests as cancelled. Any subsequent requests that come into the pipeline handler will also be returned as cancelled. Any further error handling (e.g. a reset with camera stop()/start()) is up to the application to perform as it requires. Signed-off-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: David Plowman <david.plowman@raspberrypi.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
883e2089db
commit
a64d17b9cf
1 changed files with 11 additions and 0 deletions
|
@ -1823,6 +1823,17 @@ void RPiCameraData::unicamTimeout()
|
|||
LOG(RPI, Error) << "Unicam has timed out!";
|
||||
LOG(RPI, Error) << "Please check that your camera sensor connector is attached securely.";
|
||||
LOG(RPI, Error) << "Alternatively, try another cable and/or sensor.";
|
||||
|
||||
state_ = RPiCameraData::State::Error;
|
||||
/*
|
||||
* To allow the application to attempt a recovery from this timeout,
|
||||
* stop all devices streaming, and return any outstanding requests as
|
||||
* incomplete and cancelled.
|
||||
*/
|
||||
for (auto const stream : streams_)
|
||||
stream->dev()->streamOff();
|
||||
|
||||
clearIncompleteRequests();
|
||||
}
|
||||
|
||||
void RPiCameraData::unicamBufferDequeue(FrameBuffer *buffer)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue