summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-07-12 13:51:12 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-07-14 16:00:56 +0300
commit4e79b2ef310c3a68e4e9af4ee9c5e99fc0c17109 (patch)
tree35eeb9466b6ddf82a7677fba35140423f0dd3484 /include
parenta2bcf6feee5ae6077225cc787c3d1a25d9ef95e7 (diff)
libcamera: v4l2_videodevice: Signal buffer completion at streamoff time
When stopping the stream buffers have been queued, in which case their completion is never be notified to the user. This can lead to memory leaks. Fix it by notifying completion of all queued buffers with the status set to error. As a result the base PipelineHandler implementation can be simplified, as all requests complete as the result of stopping the stream. The stop() method that manually completes all queued requests isn't needed anymore. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'include')
-rw-r--r--include/libcamera/request.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/libcamera/request.h b/include/libcamera/request.h
index f69b4e7a..9edf1ced 100644
--- a/include/libcamera/request.h
+++ b/include/libcamera/request.h
@@ -51,7 +51,7 @@ private:
friend class PipelineHandler;
int prepare();
- void complete(Status status);
+ void complete();
bool completeBuffer(Buffer *buffer);
@@ -62,6 +62,7 @@ private:
const uint64_t cookie_;
Status status_;
+ bool cancelled_;
};
} /* namespace libcamera */