[libcamera-devel] [PATCH v3 04/22] v4l2: v4l2_camera_proxy: Free old buffers on reqbufs > 0
Paul Elder
paul.elder at ideasonboard.com
Tue Jun 23 21:08:18 CEST 2020
Free buffers if any were previously allocated, at VIDIOC_REQBUFS with
count > 0.
Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
---
New in v3
- split from... a conglomerate of v4l2-compliance fixes patch
---
src/v4l2/v4l2_camera_proxy.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
index eb59d49..7262453 100644
--- a/src/v4l2/v4l2_camera_proxy.cpp
+++ b/src/v4l2/v4l2_camera_proxy.cpp
@@ -361,6 +361,15 @@ int V4L2CameraProxy::vidioc_reqbufs(V4L2CameraFile *file, struct v4l2_requestbuf
return freeBuffers();
}
+ if (bufferCount_ > 0) {
+ int ret = freeBuffers();
+ if (ret < 0) {
+ LOG(V4L2Compat, Error)
+ << "Failed to free libcamera buffers for re-reqbufs";
+ return ret;
+ }
+ }
+
Size size(curV4L2Format_.fmt.pix.width, curV4L2Format_.fmt.pix.height);
ret = vcam_->configure(&streamConfig_, size,
v4l2ToDrm(curV4L2Format_.fmt.pix.pixelformat),
--
2.27.0
More information about the libcamera-devel
mailing list