libcamera: pipeline_handler: Simplify request completion

libcamera guarantees that requests complete in sequence. This
requirement is currently pushed down to pipeline handlers. Three out of
four of our pipeline handlers implement that requirement based on the
sole assumption that buffers will always complete in sequeuence, while
the IPU3 pipeline handler implements a more complex logic.

It turns out that the logic can be moved to the base PipelineHandler
class with support from the Request class. Do so to simplify the
pipeline handlers.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
Laurent Pinchart 2019-07-12 17:17:35 +03:00
parent a775234d66
commit 185fe3d4b4
5 changed files with 22 additions and 22 deletions

View file

@ -376,7 +376,7 @@ int VimcCameraData::init(MediaDevice *media)
void VimcCameraData::bufferReady(Buffer *buffer)
{
Request *request = queuedRequests_.front();
Request *request = buffer->request();
pipe_->completeBuffer(camera_, request, buffer);
pipe_->completeRequest(camera_, request);