{"id":1236,"url":"https://patchwork.libcamera.org/api/patches/1236/?format=json","web_url":"https://patchwork.libcamera.org/patch/1236/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20190519150047.12444-6-laurent.pinchart@ideasonboard.com>","date":"2019-05-19T15:00:46","name":"[libcamera-devel,v2,5/6] libcamera: pipeline: Move camera data classes to the top level scope","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"d9087ef1081899454cd510f66bcf0d1c6b7a30a8","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/1236/mbox/","series":[{"id":309,"url":"https://patchwork.libcamera.org/api/series/309/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=309","date":"2019-05-19T15:00:41","name":"Rework camera configuration to introduce negotiation of parameters","version":2,"mbox":"https://patchwork.libcamera.org/series/309/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/1236/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/1236/checks/","tags":{},"headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A9F3361870\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 19 May 2019 17:01:09 +0200 (CEST)","from pendragon.bb.dnainternet.fi\n\t(dfj612yhrgyx302h3jwwy-3.rev.dnainternet.fi\n\t[IPv6:2001:14ba:21f5:5b00:ce28:277f:58d7:3ca4])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 2F061443\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 19 May 2019 17:01:09 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1558278069;\n\tbh=oY30WKvEqyO4NlZwie7c1WMvT6NGbs/WqT1WqT4MQAo=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=sGlFNdH1bvHBktZA76/Njyh5Ca8+KML007hSY4Ti5btvLjsp3qm8gocjJGUsYWkZX\n\t/XSkU9QN0KihzmArSdfZaZUZFAx02Eb5T8anI2c/trZ21313ahDPp9wtr7vtadsmGG\n\tE0oCVLPePah07mM193K7yFmUtK43/9m7xEaH9N+4=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Sun, 19 May 2019 18:00:46 +0300","Message-Id":"<20190519150047.12444-6-laurent.pinchart@ideasonboard.com>","X-Mailer":"git-send-email 2.21.0","In-Reply-To":"<20190519150047.12444-1-laurent.pinchart@ideasonboard.com>","References":"<20190519150047.12444-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v2 5/6] libcamera: pipeline: Move camera\n\tdata 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":"Sun, 19 May 2019 15:01:11 -0000"},"content":"Move the pipeline handler camera data classes, defined in the scope of\nthe respective pipeline handler class, to the top level of the libcamera\nnamespace. This prepares for the introduction of other classes that will\nmake use of them in the IPU3 and RkISP1 pipeline handlers. The UVC and\nVIMC pipeline handlers are updated as well for consistency.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nReviewed-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(-)","diff":"diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\nindex 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 }\ndiff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\nindex 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)\ndiff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp\nindex 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 \ndiff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp\nindex 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","prefixes":["libcamera-devel","v2","5/6"]}