libcamera: camera: Reset request sequence number on stop/start
We now have V4L2VideoDevice ensuring that sensor sequence numbers
start from zero [1], and we desire that these should match the Request
sequence number as well.
[1] 1c9dc0fd89
("libcamera: v4l2_videodevice: Identify non-zero stream starts")
Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
6f539a6d2f
commit
458d917ca2
3 changed files with 7 additions and 3 deletions
|
@ -497,7 +497,7 @@ Camera::Private::~Private()
|
||||||
* facilitate debugging of internal request usage.
|
* facilitate debugging of internal request usage.
|
||||||
*
|
*
|
||||||
* The requestSequence_ tracks the number of requests queued to a camera
|
* The requestSequence_ tracks the number of requests queued to a camera
|
||||||
* over its lifetime.
|
* over a single capture session.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static const char *const camera_state_names[] = {
|
static const char *const camera_state_names[] = {
|
||||||
|
@ -1181,6 +1181,8 @@ int Camera::start(const ControlList *controls)
|
||||||
|
|
||||||
LOG(Camera, Debug) << "Starting capture";
|
LOG(Camera, Debug) << "Starting capture";
|
||||||
|
|
||||||
|
ASSERT(d->requestSequence_ == 0);
|
||||||
|
|
||||||
ret = d->pipe_->invokeMethod(&PipelineHandler::start,
|
ret = d->pipe_->invokeMethod(&PipelineHandler::start,
|
||||||
ConnectionTypeBlocking, this, controls);
|
ConnectionTypeBlocking, this, controls);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
|
|
@ -312,6 +312,8 @@ void PipelineHandler::stop(Camera *camera)
|
||||||
/* Make sure no requests are pending. */
|
/* Make sure no requests are pending. */
|
||||||
Camera::Private *data = camera->_d();
|
Camera::Private *data = camera->_d();
|
||||||
ASSERT(data->queuedRequests_.empty());
|
ASSERT(data->queuedRequests_.empty());
|
||||||
|
|
||||||
|
data->requestSequence_ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -526,8 +526,8 @@ FrameBuffer *Request::findBuffer(const Stream *stream) const
|
||||||
*
|
*
|
||||||
* When requests are queued, they are given a sequential number to track the
|
* When requests are queued, they are given a sequential number to track the
|
||||||
* order in which requests are queued to a camera. This number counts all
|
* order in which requests are queued to a camera. This number counts all
|
||||||
* requests given to a camera through its lifetime, and is not reset to zero
|
* requests given to a camera and is reset to zero between camera stop/start
|
||||||
* between camera stop/start sequences.
|
* sequences.
|
||||||
*
|
*
|
||||||
* It can be used to support debugging and identifying the flow of requests
|
* It can be used to support debugging and identifying the flow of requests
|
||||||
* through a pipeline, but does not guarantee to represent the sequence number
|
* through a pipeline, but does not guarantee to represent the sequence number
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue