[{"id":130,"web_url":"https://patchwork.libcamera.org/comment/130/","msgid":"<20181230104853.vdnlaz3hqtore5pr@uno.localdomain>","date":"2018-12-30T10:48:53","subject":"Re: [libcamera-devel] [PATCH v2 11/12] libcamera: pipeline: vimc:\n\tadd pipeline handler for vimc","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Niklas,\n   thanks, this is very useful for testing locally\n\nOn Sat, Dec 29, 2018 at 04:28:54AM +0100, Niklas Söderlund wrote:\n> Provide a pipeline handler for the virtual vimc driver.\n>\n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  src/libcamera/meson.build          |  2 +\n>  src/libcamera/pipeline/meson.build |  3 +\n>  src/libcamera/pipeline/vimc.cpp    | 91 ++++++++++++++++++++++++++++++\n>  3 files changed, 96 insertions(+)\n>  create mode 100644 src/libcamera/pipeline/meson.build\n>  create mode 100644 src/libcamera/pipeline/vimc.cpp\n>\n> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> index a8cb3fdc22784334..ac5bba052d7f687b 100644\n> --- a/src/libcamera/meson.build\n> +++ b/src/libcamera/meson.build\n> @@ -21,6 +21,8 @@ includes = [\n>      libcamera_internal_includes,\n>  ]\n>\n> +subdir('pipeline')\n> +\n>  libudev = dependency('libudev')\n>\n>  libcamera = shared_library('camera',\n> diff --git a/src/libcamera/pipeline/meson.build b/src/libcamera/pipeline/meson.build\n> new file mode 100644\n> index 0000000000000000..615ecd20f1a21141\n> --- /dev/null\n> +++ b/src/libcamera/pipeline/meson.build\n> @@ -0,0 +1,3 @@\n> +libcamera_sources += files([\n> +    'vimc.cpp',\n> +])\n> diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp\n> new file mode 100644\n> index 0000000000000000..e0f70a78f7e88412\n> --- /dev/null\n> +++ b/src/libcamera/pipeline/vimc.cpp\n> @@ -0,0 +1,91 @@\n> +/* SPDX-License-Identifier: LGPL-2.1-or-later */\n> +/*\n> + * Copyright (C) 2018, Google Inc.\n> + *\n> + * vimc.cpp - Pipeline handler for the vimc device\n> + */\n> +\n> +#include <libcamera/camera.h>\n> +\n> +#include \"device_enumerator.h\"\n> +#include \"pipeline_handler.h\"\n> +\n> +namespace libcamera {\n> +\n> +class PipeHandlerVimc : public PipelineHandler\n> +{\n> +public:\n> +\tPipeHandlerVimc();\n> +\t~PipeHandlerVimc();\n> +\n> +\tbool match(DeviceEnumerator *enumerator);\n> +\n> +\tunsigned int count();\n> +\tCamera *camera(unsigned int id);\n\nnit: missing empty line\n\nOtherwise,\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n  j\n\n> +private:\n> +\tDeviceInfo *info_;\n> +\tCamera *camera_;\n> +};\n> +\n> +PipeHandlerVimc::PipeHandlerVimc()\n> +\t: info_(nullptr), camera_(nullptr)\n> +{\n> +}\n> +\n> +PipeHandlerVimc::~PipeHandlerVimc()\n> +{\n> +\tif (camera_)\n> +\t\tcamera_->put();\n> +\n> +\tif (info_)\n> +\t\tinfo_->release();\n> +}\n> +\n> +unsigned int PipeHandlerVimc::count()\n> +{\n> +\treturn 1;\n> +}\n> +\n> +Camera *PipeHandlerVimc::camera(unsigned int id)\n> +{\n> +\tif (id != 0)\n> +\t\treturn nullptr;\n> +\n> +\treturn camera_;\n> +}\n> +\n> +bool PipeHandlerVimc::match(DeviceEnumerator *enumerator)\n> +{\n> +\tDeviceMatch dm(\"vimc\");\n> +\n> +\tdm.add(\"Raw Capture 0\");\n> +\tdm.add(\"Raw Capture 1\");\n> +\tdm.add(\"RGB/YUV Capture\");\n> +\tdm.add(\"Sensor A\");\n> +\tdm.add(\"Sensor B\");\n> +\tdm.add(\"Debayer A\");\n> +\tdm.add(\"Debayer B\");\n> +\tdm.add(\"RGB/YUV Input\");\n> +\tdm.add(\"Scaler\");\n> +\n> +\tinfo_ = enumerator->search(dm);\n> +\n> +\tif (!info_)\n> +\t\treturn false;\n> +\n> +\tinfo_->acquire();\n> +\n> +\t/* NOTE: A more complete Camera implementation could\n> +\t * be passed the DeviceInfo(s) it controls here or\n> +\t * a reference to the PipelineHandler. Which method\n> +\t * that is chosen will depend on how the Camera\n> +\t * object is modeled.\n> +\t */\n> +\tcamera_ = new Camera(\"Dummy VIMC Camera\");\n> +\n> +\treturn true;\n> +}\n> +\n> +REGISTER_PIPELINE_HANDLER(PipeHandlerVimc);\n> +\n> +} /* namespace libcamera */\n> --\n> 2.20.1\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 relay10.mail.gandi.net (relay10.mail.gandi.net\n\t[217.70.178.230])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B1A0E60B31\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 30 Dec 2018 11:48:51 +0100 (CET)","from uno.localdomain (unknown [37.176.180.32])\n\t(Authenticated sender: jacopo@jmondi.org)\n\tby relay10.mail.gandi.net (Postfix) with ESMTPSA id 2B47A240005;\n\tSun, 30 Dec 2018 10:48:50 +0000 (UTC)"],"Date":"Sun, 30 Dec 2018 11:48:53 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20181230104853.vdnlaz3hqtore5pr@uno.localdomain>","References":"<20181229032855.26249-1-niklas.soderlund@ragnatech.se>\n\t<20181229032855.26249-12-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"y2gcrduc7pck2thi\"","Content-Disposition":"inline","In-Reply-To":"<20181229032855.26249-12-niklas.soderlund@ragnatech.se>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH v2 11/12] libcamera: pipeline: vimc:\n\tadd pipeline handler for vimc","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, 30 Dec 2018 10:48:51 -0000"}},{"id":150,"web_url":"https://patchwork.libcamera.org/comment/150/","msgid":"<2591574.HcJHKQ9o6m@avalon>","date":"2018-12-30T23:26:04","subject":"Re: [libcamera-devel] [PATCH v2 11/12] libcamera: pipeline: vimc:\n\tadd pipeline handler for vimc","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Niklas,\n\nThank you for the patch.\n\nOn Saturday, 29 December 2018 05:28:54 EET Niklas Söderlund wrote:\n> Provide a pipeline handler for the virtual vimc driver.\n> \n> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  src/libcamera/meson.build          |  2 +\n>  src/libcamera/pipeline/meson.build |  3 +\n>  src/libcamera/pipeline/vimc.cpp    | 91 ++++++++++++++++++++++++++++++\n>  3 files changed, 96 insertions(+)\n>  create mode 100644 src/libcamera/pipeline/meson.build\n>  create mode 100644 src/libcamera/pipeline/vimc.cpp\n> \n> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> index a8cb3fdc22784334..ac5bba052d7f687b 100644\n> --- a/src/libcamera/meson.build\n> +++ b/src/libcamera/meson.build\n> @@ -21,6 +21,8 @@ includes = [\n>      libcamera_internal_includes,\n>  ]\n> \n> +subdir('pipeline')\n> +\n>  libudev = dependency('libudev')\n> \n>  libcamera = shared_library('camera',\n> diff --git a/src/libcamera/pipeline/meson.build\n> b/src/libcamera/pipeline/meson.build new file mode 100644\n> index 0000000000000000..615ecd20f1a21141\n> --- /dev/null\n> +++ b/src/libcamera/pipeline/meson.build\n> @@ -0,0 +1,3 @@\n> +libcamera_sources += files([\n> +    'vimc.cpp',\n> +])\n> diff --git a/src/libcamera/pipeline/vimc.cpp\n> b/src/libcamera/pipeline/vimc.cpp new file mode 100644\n> index 0000000000000000..e0f70a78f7e88412\n> --- /dev/null\n> +++ b/src/libcamera/pipeline/vimc.cpp\n> @@ -0,0 +1,91 @@\n> +/* SPDX-License-Identifier: LGPL-2.1-or-later */\n> +/*\n> + * Copyright (C) 2018, Google Inc.\n> + *\n> + * vimc.cpp - Pipeline handler for the vimc device\n> + */\n> +\n> +#include <libcamera/camera.h>\n> +\n> +#include \"device_enumerator.h\"\n> +#include \"pipeline_handler.h\"\n> +\n> +namespace libcamera {\n> +\n> +class PipeHandlerVimc : public PipelineHandler\n> +{\n> +public:\n> +\tPipeHandlerVimc();\n> +\t~PipeHandlerVimc();\n> +\n> +\tbool match(DeviceEnumerator *enumerator);\n> +\n> +\tunsigned int count();\n> +\tCamera *camera(unsigned int id);\n\nPlease declare overridden functions as override or final.\n\nI'd add a blank line here.\n\n> +private:\n> +\tDeviceInfo *info_;\n> +\tCamera *camera_;\n> +};\n> +\n> +PipeHandlerVimc::PipeHandlerVimc()\n> +\t: info_(nullptr), camera_(nullptr)\n> +{\n> +}\n> +\n> +PipeHandlerVimc::~PipeHandlerVimc()\n> +{\n> +\tif (camera_)\n> +\t\tcamera_->put();\n> +\n> +\tif (info_)\n> +\t\tinfo_->release();\n> +}\n> +\n> +unsigned int PipeHandlerVimc::count()\n> +{\n> +\treturn 1;\n> +}\n> +\n> +Camera *PipeHandlerVimc::camera(unsigned int id)\n> +{\n> +\tif (id != 0)\n> +\t\treturn nullptr;\n> +\n> +\treturn camera_;\n> +}\n> +\n> +bool PipeHandlerVimc::match(DeviceEnumerator *enumerator)\n> +{\n> +\tDeviceMatch dm(\"vimc\");\n> +\n> +\tdm.add(\"Raw Capture 0\");\n> +\tdm.add(\"Raw Capture 1\");\n> +\tdm.add(\"RGB/YUV Capture\");\n> +\tdm.add(\"Sensor A\");\n> +\tdm.add(\"Sensor B\");\n> +\tdm.add(\"Debayer A\");\n> +\tdm.add(\"Debayer B\");\n> +\tdm.add(\"RGB/YUV Input\");\n> +\tdm.add(\"Scaler\");\n> +\n> +\tinfo_ = enumerator->search(dm);\n> +\n> +\tif (!info_)\n> +\t\treturn false;\n> +\n> +\tinfo_->acquire();\n> +\n> +\t/* NOTE: A more complete Camera implementation could\n\ns/ NOTE/\\n\\t* NOTE/\n\n> +\t * be passed the DeviceInfo(s) it controls here or\n> +\t * a reference to the PipelineHandler. Which method\n> +\t * that is chosen will depend on how the Camera\n\ns/that is chosen will depend/will be chosen depends/ ?\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> +\t * object is modeled.\n> +\t */\n> +\tcamera_ = new Camera(\"Dummy VIMC Camera\");\n> +\n> +\treturn true;\n> +}\n> +\n> +REGISTER_PIPELINE_HANDLER(PipeHandlerVimc);\n> +\n> +} /* namespace libcamera */","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2E9DC600CC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 31 Dec 2018 00:25:07 +0100 (CET)","from avalon.localnet (unknown\n\t[IPv6:2a02:a03f:3ad5:900:7d1d:858b:75d5:534d])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9C3A050A;\n\tMon, 31 Dec 2018 00:25:06 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1546212306;\n\tbh=m3W2SBH/bscmzvSLEr+stWbkC4idbeCBA30SK2SAk40=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=JHqZtpUPfJDMV+c4qmgxHJiEeZcXTIV4urxuXPcxZupY1zkKt+ReDr0ooZku105ok\n\tx9y63fuiwbemZeWtZz+H6h/DHfvjAA4pssqiBZmrCj4dD80jsKAJ9AvgWNYBibzMYL\n\tW/vxPBa0ArUD1QQO96Lht3mFy3hCNJBNnQbSwwkI=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Mon, 31 Dec 2018 01:26:04 +0200","Message-ID":"<2591574.HcJHKQ9o6m@avalon>","Organization":"Ideas on Board Oy","In-Reply-To":"<20181229032855.26249-12-niklas.soderlund@ragnatech.se>","References":"<20181229032855.26249-1-niklas.soderlund@ragnatech.se>\n\t<20181229032855.26249-12-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","Content-Type":"text/plain; charset=\"iso-8859-1\"","Subject":"Re: [libcamera-devel] [PATCH v2 11/12] libcamera: pipeline: vimc:\n\tadd pipeline handler for vimc","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, 30 Dec 2018 23:25:07 -0000"}},{"id":151,"web_url":"https://patchwork.libcamera.org/comment/151/","msgid":"<20181231000932.GE10929@bigcity.dyn.berto.se>","date":"2018-12-31T00:09:32","subject":"Re: [libcamera-devel] [PATCH v2 11/12] libcamera: pipeline: vimc:\n\tadd pipeline handler for vimc","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Laurent,\n\nThanks for your feedback.\n\nOn 2018-12-31 01:26:04 +0200, Laurent Pinchart wrote:\n> Hi Niklas,\n> \n> Thank you for the patch.\n> \n> On Saturday, 29 December 2018 05:28:54 EET Niklas Söderlund wrote:\n> > Provide a pipeline handler for the virtual vimc driver.\n> > \n> > Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> > ---\n> >  src/libcamera/meson.build          |  2 +\n> >  src/libcamera/pipeline/meson.build |  3 +\n> >  src/libcamera/pipeline/vimc.cpp    | 91 ++++++++++++++++++++++++++++++\n> >  3 files changed, 96 insertions(+)\n> >  create mode 100644 src/libcamera/pipeline/meson.build\n> >  create mode 100644 src/libcamera/pipeline/vimc.cpp\n> > \n> > diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> > index a8cb3fdc22784334..ac5bba052d7f687b 100644\n> > --- a/src/libcamera/meson.build\n> > +++ b/src/libcamera/meson.build\n> > @@ -21,6 +21,8 @@ includes = [\n> >      libcamera_internal_includes,\n> >  ]\n> > \n> > +subdir('pipeline')\n> > +\n> >  libudev = dependency('libudev')\n> > \n> >  libcamera = shared_library('camera',\n> > diff --git a/src/libcamera/pipeline/meson.build\n> > b/src/libcamera/pipeline/meson.build new file mode 100644\n> > index 0000000000000000..615ecd20f1a21141\n> > --- /dev/null\n> > +++ b/src/libcamera/pipeline/meson.build\n> > @@ -0,0 +1,3 @@\n> > +libcamera_sources += files([\n> > +    'vimc.cpp',\n> > +])\n> > diff --git a/src/libcamera/pipeline/vimc.cpp\n> > b/src/libcamera/pipeline/vimc.cpp new file mode 100644\n> > index 0000000000000000..e0f70a78f7e88412\n> > --- /dev/null\n> > +++ b/src/libcamera/pipeline/vimc.cpp\n> > @@ -0,0 +1,91 @@\n> > +/* SPDX-License-Identifier: LGPL-2.1-or-later */\n> > +/*\n> > + * Copyright (C) 2018, Google Inc.\n> > + *\n> > + * vimc.cpp - Pipeline handler for the vimc device\n> > + */\n> > +\n> > +#include <libcamera/camera.h>\n> > +\n> > +#include \"device_enumerator.h\"\n> > +#include \"pipeline_handler.h\"\n> > +\n> > +namespace libcamera {\n> > +\n> > +class PipeHandlerVimc : public PipelineHandler\n> > +{\n> > +public:\n> > +\tPipeHandlerVimc();\n> > +\t~PipeHandlerVimc();\n> > +\n> > +\tbool match(DeviceEnumerator *enumerator);\n> > +\n> > +\tunsigned int count();\n> > +\tCamera *camera(unsigned int id);\n> \n> Please declare overridden functions as override or final.\n> \n> I'd add a blank line here.\n> \n> > +private:\n> > +\tDeviceInfo *info_;\n> > +\tCamera *camera_;\n> > +};\n> > +\n> > +PipeHandlerVimc::PipeHandlerVimc()\n> > +\t: info_(nullptr), camera_(nullptr)\n> > +{\n> > +}\n> > +\n> > +PipeHandlerVimc::~PipeHandlerVimc()\n> > +{\n> > +\tif (camera_)\n> > +\t\tcamera_->put();\n> > +\n> > +\tif (info_)\n> > +\t\tinfo_->release();\n> > +}\n> > +\n> > +unsigned int PipeHandlerVimc::count()\n> > +{\n> > +\treturn 1;\n> > +}\n> > +\n> > +Camera *PipeHandlerVimc::camera(unsigned int id)\n> > +{\n> > +\tif (id != 0)\n> > +\t\treturn nullptr;\n> > +\n> > +\treturn camera_;\n> > +}\n> > +\n> > +bool PipeHandlerVimc::match(DeviceEnumerator *enumerator)\n> > +{\n> > +\tDeviceMatch dm(\"vimc\");\n> > +\n> > +\tdm.add(\"Raw Capture 0\");\n> > +\tdm.add(\"Raw Capture 1\");\n> > +\tdm.add(\"RGB/YUV Capture\");\n> > +\tdm.add(\"Sensor A\");\n> > +\tdm.add(\"Sensor B\");\n> > +\tdm.add(\"Debayer A\");\n> > +\tdm.add(\"Debayer B\");\n> > +\tdm.add(\"RGB/YUV Input\");\n> > +\tdm.add(\"Scaler\");\n> > +\n> > +\tinfo_ = enumerator->search(dm);\n> > +\n> > +\tif (!info_)\n> > +\t\treturn false;\n> > +\n> > +\tinfo_->acquire();\n> > +\n> > +\t/* NOTE: A more complete Camera implementation could\n> \n> s/ NOTE/\\n\\t* NOTE/\n> \n> > +\t * be passed the DeviceInfo(s) it controls here or\n> > +\t * a reference to the PipelineHandler. Which method\n> > +\t * that is chosen will depend on how the Camera\n> \n> s/that is chosen will depend/will be chosen depends/ ?\n> \n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nAll comments addressed.\n\nThanks for your tag and time i reviewing this series.\n\n> \n> > +\t * object is modeled.\n> > +\t */\n> > +\tcamera_ = new Camera(\"Dummy VIMC Camera\");\n> > +\n> > +\treturn true;\n> > +}\n> > +\n> > +REGISTER_PIPELINE_HANDLER(PipeHandlerVimc);\n> > +\n> > +} /* namespace libcamera */\n> \n> -- \n> Regards,\n> \n> Laurent Pinchart\n> \n> \n>","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from mail-lj1-x242.google.com (mail-lj1-x242.google.com\n\t[IPv6:2a00:1450:4864:20::242])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3D0C8600CC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 31 Dec 2018 01:09:34 +0100 (CET)","by mail-lj1-x242.google.com with SMTP id q2-v6so22694576lji.10\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 30 Dec 2018 16:09:34 -0800 (PST)","from localhost (89-233-230-99.cust.bredband2.com. [89.233.230.99])\n\tby smtp.gmail.com with ESMTPSA id\n\tn16sm9063375lfl.35.2018.12.30.16.09.32\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tSun, 30 Dec 2018 16:09:32 -0800 (PST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to\n\t:user-agent; bh=HnNyk3mkAegm2K7zqxoItjAnQgc77qFqeGU3k6Tyrgw=;\n\tb=TYdOQpTJyqshr+3Rmd0Lgs32qBRnDY5MG9NWAoovCxVLtTyOKa/HYHk84shA28NpOo\n\tLPHgxpqYLPAIsbjPQ4dYP9TjgonMP3hAc5Lu8PM2dpYVJHUsv2w+Tk2qucRa8MuYDHMk\n\tBWoXcX1pnnCT/hN6AGEow+NthA1fxB+6PJ+zp4YU/bvgOfF3ZvQ8AWKsEJDCqP4tzhwr\n\th4vkp0yKIslw7hPNKnjenyvushhnj+F9nnlR8s+p9LRcffTVNMNGinBgNbd8Wsg8zwqU\n\thoaHUl+Zxj47c+ZgvltqEIsmJppBVL4AC1EpSpLOtM4ttxXq0fbeT0HdWxfeZr01hldx\n\thxyQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to:user-agent;\n\tbh=HnNyk3mkAegm2K7zqxoItjAnQgc77qFqeGU3k6Tyrgw=;\n\tb=R1cVN2hGcA/asi31vOTVq6+OEgMwTUaShJdzDZ9t1yVyVIflqcBfB4r72c0xQYqHNu\n\tPixyFFtTQtKC6JYr4t5HvOvpPiCSbolevpXnIz/h16heBgeKUJEY40abZpxsHYTM9Yzc\n\tUzbLt4EcAWShxcJEm5j26IH58U+4VSJadIGtTNJR1HnZI5CqzQqMA0Tfmv78BazwvgL/\n\tD0tj4/kdrUq7Wtiv0+12jIgLeYnI6jJZRQeZF/6tIF61Al313rwGIU3mywZp/MhPBhB6\n\tKsNFUG35OseVcPtt9ws4CoTshYRgLa1HyWMIjm4+Wy6Tf6kIJgWDqay4JP7f9PPBUgWG\n\tOVvg==","X-Gm-Message-State":"AJcUukfy2IEonTquZeU+mWjj6Vkp5DUQSUhrhc2clW50biZiJTFoaJ3S\n\toRHtvMTpQxWUNEBR7vZPmvfl4Q==","X-Google-Smtp-Source":"ALg8bN4cF/4pNbYgTrHTyv/KkPI7oaXxCRXOmf2AApzHINbkHLRNMJqq4drRWgH1CdUFNFtRbWJGWQ==","X-Received":"by 2002:a2e:851a:: with SMTP id\n\tj26-v6mr19891147lji.163.1546214973413; \n\tSun, 30 Dec 2018 16:09:33 -0800 (PST)","Date":"Mon, 31 Dec 2018 01:09:32 +0100","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20181231000932.GE10929@bigcity.dyn.berto.se>","References":"<20181229032855.26249-1-niklas.soderlund@ragnatech.se>\n\t<20181229032855.26249-12-niklas.soderlund@ragnatech.se>\n\t<2591574.HcJHKQ9o6m@avalon>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<2591574.HcJHKQ9o6m@avalon>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH v2 11/12] libcamera: pipeline: vimc:\n\tadd pipeline handler for vimc","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":"Mon, 31 Dec 2018 00:09:34 -0000"}}]