[libcamera-devel] [PATCH v2 5/6] libcamera: pipeline: Move camera data classes to the top level scope
Jacopo Mondi
jacopo at jmondi.org
Tue May 21 12:02:49 CEST 2019
Hi Laurent,
On Sun, May 19, 2019 at 06:00:46PM +0300, Laurent Pinchart wrote:
> 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.
>
I agree not to squash this in 6/6 which is big enough
Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
Thanks
j
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> 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 01ba50f09db1..a1a4f205b4aa 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 91b4065c250b..8254e1fdac1e 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<UVCCameraData *>(
> @@ -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 510e6c082f13..2bf85d0a0b32 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<VimcCameraData *>(
> @@ -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();
>
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20190521/25f54d76/attachment.sig>
More information about the libcamera-devel
mailing list