[libcamera-devel] [PATCH v2 2/2] libcamera: ipu3: cio2: Do not proxy signal

Niklas Söderlund niklas.soderlund at ragnatech.se
Tue Jun 30 15:05:18 CEST 2020


Do not proxy the signal in the CI2Device when there is no need for it,
remove it.

Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
This is a leftover form the CIO2 rework which fell thru the cracks I'm
sorry I missed to resort it in the last version.

* Changes since v1
-  Merge the return with the last function call in CIO2Device::init().
---
 src/libcamera/pipeline/ipu3/cio2.cpp | 14 +-------------
 src/libcamera/pipeline/ipu3/cio2.h   |  6 +++---
 src/libcamera/pipeline/ipu3/ipu3.cpp |  2 +-
 3 files changed, 5 insertions(+), 17 deletions(-)

diff --git a/src/libcamera/pipeline/ipu3/cio2.cpp b/src/libcamera/pipeline/ipu3/cio2.cpp
index aa1459fb3599283b..97a434a73b2855e5 100644
--- a/src/libcamera/pipeline/ipu3/cio2.cpp
+++ b/src/libcamera/pipeline/ipu3/cio2.cpp
@@ -15,7 +15,6 @@
 #include "libcamera/internal/camera_sensor.h"
 #include "libcamera/internal/media_device.h"
 #include "libcamera/internal/v4l2_subdevice.h"
-#include "libcamera/internal/v4l2_videodevice.h"
 
 namespace libcamera {
 
@@ -121,13 +120,7 @@ int CIO2Device::init(const MediaDevice *media, unsigned int index)
 
 	std::string cio2Name = "ipu3-cio2 " + std::to_string(index);
 	output_ = V4L2VideoDevice::fromEntityName(media, cio2Name);
-	ret = output_->open();
-	if (ret)
-		return ret;
-
-	output_->bufferReady.connect(this, &CIO2Device::cio2BufferReady);
-
-	return 0;
+	return output_->open();
 }
 
 /**
@@ -289,9 +282,4 @@ void CIO2Device::freeBuffers()
 		LOG(IPU3, Error) << "Failed to release CIO2 buffers";
 }
 
-void CIO2Device::cio2BufferReady(FrameBuffer *buffer)
-{
-	bufferReady.emit(buffer);
-}
-
 } /* namespace libcamera */
diff --git a/src/libcamera/pipeline/ipu3/cio2.h b/src/libcamera/pipeline/ipu3/cio2.h
index dc764b101f112f05..4fd949f8e5132e07 100644
--- a/src/libcamera/pipeline/ipu3/cio2.h
+++ b/src/libcamera/pipeline/ipu3/cio2.h
@@ -13,15 +13,15 @@
 
 #include <libcamera/signal.h>
 
+#include "libcamera/internal/v4l2_videodevice.h"
+
 namespace libcamera {
 
 class CameraSensor;
 class FrameBuffer;
 class MediaDevice;
 class Request;
-class V4L2DeviceFormat;
 class V4L2Subdevice;
-class V4L2VideoDevice;
 struct Size;
 struct StreamConfiguration;
 
@@ -48,7 +48,7 @@ public:
 
 	int queueBuffer(Request *request, FrameBuffer *rawBuffer);
 	void tryReturnBuffer(FrameBuffer *buffer);
-	Signal<FrameBuffer *> bufferReady;
+	Signal<FrameBuffer *> &bufferReady() { return output_->bufferReady; }
 
 private:
 	void freeBuffers();
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 958d8362b55783de..00559ce318e1b8c3 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -805,7 +805,7 @@ int PipelineHandlerIPU3::registerCameras()
 		 * associated ImgU input where they get processed and
 		 * returned through the ImgU main and secondary outputs.
 		 */
-		data->cio2_.bufferReady.connect(data.get(),
+		data->cio2_.bufferReady().connect(data.get(),
 					&IPU3CameraData::cio2BufferReady);
 		data->imgu_->input_->bufferReady.connect(&data->cio2_,
 					&CIO2Device::tryReturnBuffer);
-- 
2.27.0



More information about the libcamera-devel mailing list