From patchwork Tue May 21 19:27:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 1248 Return-Path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 330E860C40 for ; Tue, 21 May 2019 21:28:05 +0200 (CEST) Received: from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi [81.175.216.236]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id BD2E9BC5 for ; Tue, 21 May 2019 21:28:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1558466884; bh=ds7Ie1bcP6MLQUOYrf2JRGbewALfqcOrfivEwWe+kCc=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Dhic0wTyFthMoBdZTlT2bmq1VKcJ7IEQ8DlI9wJnIPkAejSyVd0yWFkLYvBwY6mzV vRfhApbXjEH44DvLzOWZ9EyMxuRgQPpFkMrM5r5kXQ3+S+yfPkGPwcTPQNjyKL41kT 761Nw9Gc5icc+upDnKnnpIOv1hutou63vq0Gu8JI= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Tue, 21 May 2019 22:27:39 +0300 Message-Id: <20190521192740.28112-6-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190521192740.28112-1-laurent.pinchart@ideasonboard.com> References: <20190521192740.28112-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 5/6] libcamera: pipeline: Move camera data classes to the top level scope X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 May 2019 19:28:05 -0000 Move the pipeline handler camera data classes, defined in the scope of the respective pipeline handler class, to the top level of the libcamera namespace. This prepares for the introduction of other classes that will make use of them in the IPU3 and RkISP1 pipeline handlers. The UVC and VIMC pipeline handlers are updated as well for consistency. Signed-off-by: Laurent Pinchart Reviewed-by: Niklas Söderlund Reviewed-by: Jacopo Mondi --- src/libcamera/pipeline/ipu3/ipu3.cpp | 44 ++++++++++++------------ src/libcamera/pipeline/rkisp1/rkisp1.cpp | 34 +++++++++--------- src/libcamera/pipeline/uvcvideo.cpp | 40 ++++++++++----------- src/libcamera/pipeline/vimc.cpp | 40 ++++++++++----------- 4 files changed, 79 insertions(+), 79 deletions(-) diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index 3acf82ff4665..5b46fb68ced2 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -145,6 +145,25 @@ public: ImgUDevice::ImgUOutput *device_; }; +class IPU3CameraData : public CameraData +{ +public: + IPU3CameraData(PipelineHandler *pipe) + : CameraData(pipe) + { + } + + void imguOutputBufferReady(Buffer *buffer); + void imguInputBufferReady(Buffer *buffer); + void cio2BufferReady(Buffer *buffer); + + CIO2Device cio2_; + ImgUDevice *imgu_; + + IPU3Stream outStream_; + IPU3Stream vfStream_; +}; + class PipelineHandlerIPU3 : public PipelineHandler { public: @@ -167,25 +186,6 @@ public: bool match(DeviceEnumerator *enumerator) override; private: - class IPU3CameraData : public CameraData - { - public: - IPU3CameraData(PipelineHandler *pipe) - : CameraData(pipe) - { - } - - void imguOutputBufferReady(Buffer *buffer); - void imguInputBufferReady(Buffer *buffer); - void cio2BufferReady(Buffer *buffer); - - CIO2Device cio2_; - ImgUDevice *imgu_; - - IPU3Stream outStream_; - IPU3Stream vfStream_; - }; - static constexpr unsigned int IPU3_BUFFER_COUNT = 4; IPU3CameraData *cameraData(const Camera *camera) @@ -749,7 +749,7 @@ int PipelineHandlerIPU3::registerCameras() * Buffers completed from the ImgU input are immediately queued back to the * CIO2 unit to continue frame capture. */ -void PipelineHandlerIPU3::IPU3CameraData::imguInputBufferReady(Buffer *buffer) +void IPU3CameraData::imguInputBufferReady(Buffer *buffer) { cio2_.output_->queueBuffer(buffer); } @@ -760,7 +760,7 @@ void PipelineHandlerIPU3::IPU3CameraData::imguInputBufferReady(Buffer *buffer) * * Buffers completed from the ImgU output are directed to the application. */ -void PipelineHandlerIPU3::IPU3CameraData::imguOutputBufferReady(Buffer *buffer) +void IPU3CameraData::imguOutputBufferReady(Buffer *buffer) { Request *request = buffer->request(); @@ -785,7 +785,7 @@ void PipelineHandlerIPU3::IPU3CameraData::imguOutputBufferReady(Buffer *buffer) * Buffers completed from the CIO2 are immediately queued to the ImgU unit * for further processing. */ -void PipelineHandlerIPU3::IPU3CameraData::cio2BufferReady(Buffer *buffer) +void IPU3CameraData::cio2BufferReady(Buffer *buffer) { imgu_->input_->queueBuffer(buffer); } diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp index c8d217abdca8..8b279e76c0b0 100644 --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp @@ -28,6 +28,23 @@ namespace libcamera { LOG_DEFINE_CATEGORY(RkISP1) +class RkISP1CameraData : public CameraData +{ +public: + RkISP1CameraData(PipelineHandler *pipe) + : CameraData(pipe), sensor_(nullptr) + { + } + + ~RkISP1CameraData() + { + delete sensor_; + } + + Stream stream_; + CameraSensor *sensor_; +}; + class PipelineHandlerRkISP1 : public PipelineHandler { public: @@ -51,23 +68,6 @@ public: bool match(DeviceEnumerator *enumerator) override; private: - class RkISP1CameraData : public CameraData - { - public: - RkISP1CameraData(PipelineHandler *pipe) - : CameraData(pipe), sensor_(nullptr) - { - } - - ~RkISP1CameraData() - { - delete sensor_; - } - - Stream stream_; - CameraSensor *sensor_; - }; - static constexpr unsigned int RKISP1_BUFFER_COUNT = 4; RkISP1CameraData *cameraData(const Camera *camera) diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp index 120d8d3a1522..4ffe52aa70d7 100644 --- a/src/libcamera/pipeline/uvcvideo.cpp +++ b/src/libcamera/pipeline/uvcvideo.cpp @@ -20,6 +20,25 @@ namespace libcamera { LOG_DEFINE_CATEGORY(UVC) +class UVCCameraData : public CameraData +{ +public: + UVCCameraData(PipelineHandler *pipe) + : CameraData(pipe), video_(nullptr) + { + } + + ~UVCCameraData() + { + delete video_; + } + + void bufferReady(Buffer *buffer); + + V4L2Device *video_; + Stream stream_; +}; + class PipelineHandlerUVC : public PipelineHandler { public: @@ -42,25 +61,6 @@ public: bool match(DeviceEnumerator *enumerator) override; private: - class UVCCameraData : public CameraData - { - public: - UVCCameraData(PipelineHandler *pipe) - : CameraData(pipe), video_(nullptr) - { - } - - ~UVCCameraData() - { - delete video_; - } - - void bufferReady(Buffer *buffer); - - V4L2Device *video_; - Stream stream_; - }; - UVCCameraData *cameraData(const Camera *camera) { return static_cast( @@ -206,7 +206,7 @@ bool PipelineHandlerUVC::match(DeviceEnumerator *enumerator) return true; } -void PipelineHandlerUVC::UVCCameraData::bufferReady(Buffer *buffer) +void UVCCameraData::bufferReady(Buffer *buffer) { Request *request = queuedRequests_.front(); diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp index f6aa32683e5e..ed5b1ad4502a 100644 --- a/src/libcamera/pipeline/vimc.cpp +++ b/src/libcamera/pipeline/vimc.cpp @@ -20,6 +20,25 @@ namespace libcamera { LOG_DEFINE_CATEGORY(VIMC) +class VimcCameraData : public CameraData +{ +public: + VimcCameraData(PipelineHandler *pipe) + : CameraData(pipe) + { + } + + ~VimcCameraData() + { + delete video_; + } + + void bufferReady(Buffer *buffer); + + V4L2Device *video_; + Stream stream_; +}; + class PipelineHandlerVimc : public PipelineHandler { public: @@ -42,25 +61,6 @@ public: bool match(DeviceEnumerator *enumerator) override; private: - class VimcCameraData : public CameraData - { - public: - VimcCameraData(PipelineHandler *pipe) - : CameraData(pipe) - { - } - - ~VimcCameraData() - { - delete video_; - } - - void bufferReady(Buffer *buffer); - - V4L2Device *video_; - Stream stream_; - }; - VimcCameraData *cameraData(const Camera *camera) { return static_cast( @@ -202,7 +202,7 @@ bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator) return true; } -void PipelineHandlerVimc::VimcCameraData::bufferReady(Buffer *buffer) +void VimcCameraData::bufferReady(Buffer *buffer) { Request *request = queuedRequests_.front();