{"id":2175,"url":"https://patchwork.libcamera.org/api/1.1/patches/2175/?format=json","web_url":"https://patchwork.libcamera.org/patch/2175/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/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":"<20191012184407.31684-15-laurent.pinchart@ideasonboard.com>","date":"2019-10-12T18:44:07","name":"[libcamera-devel,v2,14/14] libcamera: ipa: Merge controls and v4l2controls in IPAOperationData","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"100a37be402951cb1ac3eab780095eadeef91d42","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/1.1/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/2175/mbox/","series":[{"id":531,"url":"https://patchwork.libcamera.org/api/1.1/series/531/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=531","date":"2019-10-12T18:43:53","name":"Use ControlList for both libcamera and V4L2 controls","version":2,"mbox":"https://patchwork.libcamera.org/series/531/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/2175/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/2175/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 7DE7761985\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 12 Oct 2019 20:44:23 +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 204BF54C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 12 Oct 2019 20:44:23 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1570905863;\n\tbh=tFI3g3TcoFavZvD5c9z6NKP/c9qf+W3af6KFvQJ5VcQ=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=X2J2Lmp94/9MpqQcgDCIXT/vp7imgjVOg3Oc7cDwyiJBHGzOY5DCY+ZqnDR8VhSYi\n\tvJfZfVqcK4sSiroT9fN0Q+GsRlLEmztxWd2bhGAKm9zChYq9k5o0IsenAQuUQEXuh6\n\tsK5jxP54BueC1w3h3TDiFPV6ulMRdgsX7puZfpyo=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Sat, 12 Oct 2019 21:44:07 +0300","Message-Id":"<20191012184407.31684-15-laurent.pinchart@ideasonboard.com>","X-Mailer":"git-send-email 2.21.0","In-Reply-To":"<20191012184407.31684-1-laurent.pinchart@ideasonboard.com>","References":"<20191012184407.31684-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v2 14/14] libcamera: ipa: Merge controls\n\tand v4l2controls in IPAOperationData","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","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":"Sat, 12 Oct 2019 18:44:24 -0000"},"content":"Now that the V4L2ControlList is merely a helper to construct a\nControlList for V4L2 controls, without any data member, all controls can\nbe transferred between pipeline handlers and IPAs using ControlList\nonly. Remove the v4l2controls member for IPAOperationData and use the\ncontrol member instead.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n include/ipa/ipa_interface.h              | 1 -\n src/ipa/rkisp1/rkisp1.cpp                | 2 +-\n src/libcamera/ipa_interface.cpp          | 8 --------\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 6 +++---\n 4 files changed, 4 insertions(+), 13 deletions(-)","diff":"diff --git a/include/ipa/ipa_interface.h b/include/ipa/ipa_interface.h\nindex c393b64f6aa1..dfb1bcbee516 100644\n--- a/include/ipa/ipa_interface.h\n+++ b/include/ipa/ipa_interface.h\n@@ -33,7 +33,6 @@ struct IPAOperationData {\n \tunsigned int operation;\n \tstd::vector<uint32_t> data;\n \tstd::vector<ControlList> controls;\n-\tstd::vector<V4L2ControlList> v4l2controls;\n };\n \n class IPAInterface\ndiff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp\nindex 69ced840585f..13059d99036c 100644\n--- a/src/ipa/rkisp1/rkisp1.cpp\n+++ b/src/ipa/rkisp1/rkisp1.cpp\n@@ -215,7 +215,7 @@ void IPARkISP1::setControls(unsigned int frame)\n \tV4L2ControlList ctrls(ctrls_);\n \tctrls.set(V4L2_CID_EXPOSURE, static_cast<int32_t>(exposure_));\n \tctrls.set(V4L2_CID_ANALOGUE_GAIN, static_cast<int32_t>(gain_));\n-\top.v4l2controls.push_back(ctrls);\n+\top.controls.push_back(ctrls);\n \n \tqueueFrameAction.emit(frame, op);\n }\ndiff --git a/src/libcamera/ipa_interface.cpp b/src/libcamera/ipa_interface.cpp\nindex 4fb178298f4c..0571b8e6bf8b 100644\n--- a/src/libcamera/ipa_interface.cpp\n+++ b/src/libcamera/ipa_interface.cpp\n@@ -120,14 +120,6 @@ namespace libcamera {\n  * by the IPA protocol.\n  */\n \n-/**\n- * \\var IPAOperationData::v4l2controls\n- * \\brief Operation V4L2 controls data\n- *\n- * The interpretation and position of different values in the array are defined\n- * by the IPA protocol.\n- */\n-\n /**\n  * \\class IPAInterface\n  * \\brief Interface for IPA implementation\ndiff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\nindex 32b023730009..9b19bde8a274 100644\n--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n@@ -324,7 +324,7 @@ RkISP1FrameInfo *RkISP1Frames::find(Request *request)\n class RkISP1ActionSetSensor : public FrameAction\n {\n public:\n-\tRkISP1ActionSetSensor(unsigned int frame, CameraSensor *sensor, V4L2ControlList controls)\n+\tRkISP1ActionSetSensor(unsigned int frame, CameraSensor *sensor, const ControlList &controls)\n \t\t: FrameAction(frame, SetSensor), sensor_(sensor), controls_(controls) {}\n \n protected:\n@@ -335,7 +335,7 @@ protected:\n \n private:\n \tCameraSensor *sensor_;\n-\tV4L2ControlList controls_;\n+\tControlList controls_;\n };\n \n class RkISP1ActionQueueBuffers : public FrameAction\n@@ -387,7 +387,7 @@ void RkISP1CameraData::queueFrameAction(unsigned int frame,\n {\n \tswitch (action.operation) {\n \tcase RKISP1_IPA_ACTION_V4L2_SET: {\n-\t\tV4L2ControlList controls = action.v4l2controls[0];\n+\t\tconst ControlList &controls = action.controls[0];\n \t\ttimeline_.scheduleAction(utils::make_unique<RkISP1ActionSetSensor>(frame,\n \t\t\t\t\t\t\t\t\t\t   sensor_,\n \t\t\t\t\t\t\t\t\t\t   controls));\n","prefixes":["libcamera-devel","v2","14/14"]}