[{"id":1638,"web_url":"https://patchwork.libcamera.org/comment/1638/","msgid":"<20190521100249.eyjm44ecoyz4hws6@uno.localdomain>","date":"2019-05-21T10:02:49","subject":"Re: [libcamera-devel] [PATCH v2 5/6] libcamera: pipeline: Move\n\tcamera data classes to the top level scope","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n\nOn Sun, May 19, 2019 at 06:00:46PM +0300, Laurent Pinchart wrote:\n> Move the pipeline handler camera data classes, defined in the scope of\n> the respective pipeline handler class, to the top level of the libcamera\n> namespace. This prepares for the introduction of other classes that will\n> make use of them in the IPU3 and RkISP1 pipeline handlers. The UVC and\n> VIMC pipeline handlers are updated as well for consistency.\n>\n\nI agree not to squash this in 6/6 which is big enough\n\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n  j\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  src/libcamera/pipeline/ipu3/ipu3.cpp     | 44 ++++++++++++------------\n>  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 34 +++++++++---------\n>  src/libcamera/pipeline/uvcvideo.cpp      | 40 ++++++++++-----------\n>  src/libcamera/pipeline/vimc.cpp          | 40 ++++++++++-----------\n>  4 files changed, 79 insertions(+), 79 deletions(-)\n>\n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index 3acf82ff4665..5b46fb68ced2 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -145,6 +145,25 @@ public:\n>  \tImgUDevice::ImgUOutput *device_;\n>  };\n>\n> +class IPU3CameraData : public CameraData\n> +{\n> +public:\n> +\tIPU3CameraData(PipelineHandler *pipe)\n> +\t\t: CameraData(pipe)\n> +\t{\n> +\t}\n> +\n> +\tvoid imguOutputBufferReady(Buffer *buffer);\n> +\tvoid imguInputBufferReady(Buffer *buffer);\n> +\tvoid cio2BufferReady(Buffer *buffer);\n> +\n> +\tCIO2Device cio2_;\n> +\tImgUDevice *imgu_;\n> +\n> +\tIPU3Stream outStream_;\n> +\tIPU3Stream vfStream_;\n> +};\n> +\n>  class PipelineHandlerIPU3 : public PipelineHandler\n>  {\n>  public:\n> @@ -167,25 +186,6 @@ public:\n>  \tbool match(DeviceEnumerator *enumerator) override;\n>\n>  private:\n> -\tclass IPU3CameraData : public CameraData\n> -\t{\n> -\tpublic:\n> -\t\tIPU3CameraData(PipelineHandler *pipe)\n> -\t\t\t: CameraData(pipe)\n> -\t\t{\n> -\t\t}\n> -\n> -\t\tvoid imguOutputBufferReady(Buffer *buffer);\n> -\t\tvoid imguInputBufferReady(Buffer *buffer);\n> -\t\tvoid cio2BufferReady(Buffer *buffer);\n> -\n> -\t\tCIO2Device cio2_;\n> -\t\tImgUDevice *imgu_;\n> -\n> -\t\tIPU3Stream outStream_;\n> -\t\tIPU3Stream vfStream_;\n> -\t};\n> -\n>  \tstatic constexpr unsigned int IPU3_BUFFER_COUNT = 4;\n>\n>  \tIPU3CameraData *cameraData(const Camera *camera)\n> @@ -749,7 +749,7 @@ int PipelineHandlerIPU3::registerCameras()\n>   * Buffers completed from the ImgU input are immediately queued back to the\n>   * CIO2 unit to continue frame capture.\n>   */\n> -void PipelineHandlerIPU3::IPU3CameraData::imguInputBufferReady(Buffer *buffer)\n> +void IPU3CameraData::imguInputBufferReady(Buffer *buffer)\n>  {\n>  \tcio2_.output_->queueBuffer(buffer);\n>  }\n> @@ -760,7 +760,7 @@ void PipelineHandlerIPU3::IPU3CameraData::imguInputBufferReady(Buffer *buffer)\n>   *\n>   * Buffers completed from the ImgU output are directed to the application.\n>   */\n> -void PipelineHandlerIPU3::IPU3CameraData::imguOutputBufferReady(Buffer *buffer)\n> +void IPU3CameraData::imguOutputBufferReady(Buffer *buffer)\n>  {\n>  \tRequest *request = buffer->request();\n>\n> @@ -785,7 +785,7 @@ void PipelineHandlerIPU3::IPU3CameraData::imguOutputBufferReady(Buffer *buffer)\n>   * Buffers completed from the CIO2 are immediately queued to the ImgU unit\n>   * for further processing.\n>   */\n> -void PipelineHandlerIPU3::IPU3CameraData::cio2BufferReady(Buffer *buffer)\n> +void IPU3CameraData::cio2BufferReady(Buffer *buffer)\n>  {\n>  \timgu_->input_->queueBuffer(buffer);\n>  }\n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> index 01ba50f09db1..a1a4f205b4aa 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> @@ -28,6 +28,23 @@ namespace libcamera {\n>\n>  LOG_DEFINE_CATEGORY(RkISP1)\n>\n> +class RkISP1CameraData : public CameraData\n> +{\n> +public:\n> +\tRkISP1CameraData(PipelineHandler *pipe)\n> +\t\t: CameraData(pipe), sensor_(nullptr)\n> +\t{\n> +\t}\n> +\n> +\t~RkISP1CameraData()\n> +\t{\n> +\t\tdelete sensor_;\n> +\t}\n> +\n> +\tStream stream_;\n> +\tCameraSensor *sensor_;\n> +};\n> +\n>  class PipelineHandlerRkISP1 : public PipelineHandler\n>  {\n>  public:\n> @@ -51,23 +68,6 @@ public:\n>  \tbool match(DeviceEnumerator *enumerator) override;\n>\n>  private:\n> -\tclass RkISP1CameraData : public CameraData\n> -\t{\n> -\tpublic:\n> -\t\tRkISP1CameraData(PipelineHandler *pipe)\n> -\t\t\t: CameraData(pipe), sensor_(nullptr)\n> -\t\t{\n> -\t\t}\n> -\n> -\t\t~RkISP1CameraData()\n> -\t\t{\n> -\t\t\tdelete sensor_;\n> -\t\t}\n> -\n> -\t\tStream stream_;\n> -\t\tCameraSensor *sensor_;\n> -\t};\n> -\n>  \tstatic constexpr unsigned int RKISP1_BUFFER_COUNT = 4;\n>\n>  \tRkISP1CameraData *cameraData(const Camera *camera)\n> diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp\n> index 91b4065c250b..8254e1fdac1e 100644\n> --- a/src/libcamera/pipeline/uvcvideo.cpp\n> +++ b/src/libcamera/pipeline/uvcvideo.cpp\n> @@ -20,6 +20,25 @@ namespace libcamera {\n>\n>  LOG_DEFINE_CATEGORY(UVC)\n>\n> +class UVCCameraData : public CameraData\n> +{\n> +public:\n> +\tUVCCameraData(PipelineHandler *pipe)\n> +\t\t: CameraData(pipe), video_(nullptr)\n> +\t{\n> +\t}\n> +\n> +\t~UVCCameraData()\n> +\t{\n> +\t\tdelete video_;\n> +\t}\n> +\n> +\tvoid bufferReady(Buffer *buffer);\n> +\n> +\tV4L2Device *video_;\n> +\tStream stream_;\n> +};\n> +\n>  class PipelineHandlerUVC : public PipelineHandler\n>  {\n>  public:\n> @@ -42,25 +61,6 @@ public:\n>  \tbool match(DeviceEnumerator *enumerator) override;\n>\n>  private:\n> -\tclass UVCCameraData : public CameraData\n> -\t{\n> -\tpublic:\n> -\t\tUVCCameraData(PipelineHandler *pipe)\n> -\t\t\t: CameraData(pipe), video_(nullptr)\n> -\t\t{\n> -\t\t}\n> -\n> -\t\t~UVCCameraData()\n> -\t\t{\n> -\t\t\tdelete video_;\n> -\t\t}\n> -\n> -\t\tvoid bufferReady(Buffer *buffer);\n> -\n> -\t\tV4L2Device *video_;\n> -\t\tStream stream_;\n> -\t};\n> -\n>  \tUVCCameraData *cameraData(const Camera *camera)\n>  \t{\n>  \t\treturn static_cast<UVCCameraData *>(\n> @@ -206,7 +206,7 @@ bool PipelineHandlerUVC::match(DeviceEnumerator *enumerator)\n>  \treturn true;\n>  }\n>\n> -void PipelineHandlerUVC::UVCCameraData::bufferReady(Buffer *buffer)\n> +void UVCCameraData::bufferReady(Buffer *buffer)\n>  {\n>  \tRequest *request = queuedRequests_.front();\n>\n> diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp\n> index 510e6c082f13..2bf85d0a0b32 100644\n> --- a/src/libcamera/pipeline/vimc.cpp\n> +++ b/src/libcamera/pipeline/vimc.cpp\n> @@ -20,6 +20,25 @@ namespace libcamera {\n>\n>  LOG_DEFINE_CATEGORY(VIMC)\n>\n> +class VimcCameraData : public CameraData\n> +{\n> +public:\n> +\tVimcCameraData(PipelineHandler *pipe)\n> +\t\t: CameraData(pipe)\n> +\t{\n> +\t}\n> +\n> +\t~VimcCameraData()\n> +\t{\n> +\t\tdelete video_;\n> +\t}\n> +\n> +\tvoid bufferReady(Buffer *buffer);\n> +\n> +\tV4L2Device *video_;\n> +\tStream stream_;\n> +};\n> +\n>  class PipelineHandlerVimc : public PipelineHandler\n>  {\n>  public:\n> @@ -42,25 +61,6 @@ public:\n>  \tbool match(DeviceEnumerator *enumerator) override;\n>\n>  private:\n> -\tclass VimcCameraData : public CameraData\n> -\t{\n> -\tpublic:\n> -\t\tVimcCameraData(PipelineHandler *pipe)\n> -\t\t\t: CameraData(pipe)\n> -\t\t{\n> -\t\t}\n> -\n> -\t\t~VimcCameraData()\n> -\t\t{\n> -\t\t\tdelete video_;\n> -\t\t}\n> -\n> -\t\tvoid bufferReady(Buffer *buffer);\n> -\n> -\t\tV4L2Device *video_;\n> -\t\tStream stream_;\n> -\t};\n> -\n>  \tVimcCameraData *cameraData(const Camera *camera)\n>  \t{\n>  \t\treturn static_cast<VimcCameraData *>(\n> @@ -202,7 +202,7 @@ bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator)\n>  \treturn true;\n>  }\n>\n> -void PipelineHandlerVimc::VimcCameraData::bufferReady(Buffer *buffer)\n> +void VimcCameraData::bufferReady(Buffer *buffer)\n>  {\n>  \tRequest *request = queuedRequests_.front();\n>\n> --\n> Regards,\n>\n> Laurent Pinchart\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net\n\t[217.70.183.201])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9519860C27\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 21 May 2019 12:01:44 +0200 (CEST)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay8-d.mail.gandi.net (Postfix) with ESMTPSA id 051F51BF219;\n\tTue, 21 May 2019 10:01:42 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","Date":"Tue, 21 May 2019 12:02:49 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190521100249.eyjm44ecoyz4hws6@uno.localdomain>","References":"<20190519150047.12444-1-laurent.pinchart@ideasonboard.com>\n\t<20190519150047.12444-6-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"c7sgnfxmj6sfhckc\"","Content-Disposition":"inline","In-Reply-To":"<20190519150047.12444-6-laurent.pinchart@ideasonboard.com>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH v2 5/6] libcamera: pipeline: Move\n\tcamera data classes to the top level scope","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Tue, 21 May 2019 10:01:44 -0000"}}]