[{"id":831,"web_url":"https://patchwork.libcamera.org/comment/831/","msgid":"<20190221154614.GF11484@bigcity.dyn.berto.se>","date":"2019-02-21T15:46:14","subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_device: Add\n\tsupport for META_CAPTURE devices","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Jacopo,\n\nThanks for your patch.\n\nOn 2019-02-19 17:56:20 +0100, Jacopo Mondi wrote:\n> Add support for devices that provides video meta-data to v4l2_device.cpp\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  src/libcamera/include/v4l2_device.h |  4 ++++\n>  src/libcamera/v4l2_device.cpp       | 12 ++++++++++--\n>  2 files changed, 14 insertions(+), 2 deletions(-)\n> \n> diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/v4l2_device.h\n> index 1d31d1b403bc..52eb6785cc15 100644\n> --- a/src/libcamera/include/v4l2_device.h\n> +++ b/src/libcamera/include/v4l2_device.h\n> @@ -53,6 +53,10 @@ struct V4L2Capability final : v4l2_capability {\n>  \t\treturn device_caps() & (V4L2_CAP_VIDEO_CAPTURE |\n>  \t\t\t\t\tV4L2_CAP_VIDEO_CAPTURE_MPLANE);\n>  \t}\n> +\tbool isMeta() const\n> +\t{\n> +\t\treturn device_caps() & V4L2_CAP_META_CAPTURE;\n> +\t}\n>  \tbool isOutput() const\n>  \t{\n>  \t\treturn device_caps() & (V4L2_CAP_VIDEO_OUTPUT |\n> diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp\n> index 24e115554a99..7fe6476bf035 100644\n> --- a/src/libcamera/v4l2_device.cpp\n> +++ b/src/libcamera/v4l2_device.cpp\n> @@ -79,6 +79,12 @@ LOG_DEFINE_CATEGORY(V4L2)\n>   * \\return True if the device can output video frames\n>   */\n>  \n> +/**\n> + * \\fn bool V4L2Capability::isMeta()\n> + * \\brief Identify if the device is capable of providing video meta-data\n> + * \\return True if the device can provide video meta-data\n> + */\n> +\n>  /**\n>   * \\fn bool V4L2Capability::hasStreaming()\n>   * \\brief Determine if the device can perform Streaming I/O\n> @@ -280,7 +286,7 @@ int V4L2Device::open()\n>  \t\t<< \"Opened device \" << caps_.bus_info() << \": \"\n>  \t\t<< caps_.driver() << \": \" << caps_.card();\n>  \n> -\tif (!caps_.isCapture() && !caps_.isOutput()) {\n> +\tif (!caps_.isCapture() && !caps_.isOutput() && !caps_.isMeta()) {\n>  \t\tLOG(V4L2, Debug) << \"Device is not a supported type\";\n>  \t\treturn -EINVAL;\n>  \t}\n> @@ -294,10 +300,12 @@ int V4L2Device::open()\n>  \t\tbufferType_ = caps_.isMultiplanar()\n>  \t\t\t    ? V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE\n>  \t\t\t    : V4L2_BUF_TYPE_VIDEO_CAPTURE;\n> -\telse\n> +\telse if (caps_.isOutput())\n>  \t\tbufferType_ = caps_.isMultiplanar()\n>  \t\t\t    ? V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE\n>  \t\t\t    : V4L2_BUF_TYPE_VIDEO_OUTPUT;\n> +\telse\n> +\t\tbufferType_ = V4L2_BUF_TYPE_META_CAPTURE;\n\nI would rearrange all changes in this patch to V4L2Device::open() into \nsomething like this\n\n    if (!caps_.hasStreaming()) {\n        ...\n    }\n\n    if (caps_.isCapture())\n        bufferType_ = ...\n    else if (caps_.isOutput())\n        bufferType_ = ...\n    else if (caps_.isMeta())\n        bufferType_ = ...\n    else {\n        LOG(V4L2, Debug) << \"Device is not a supported type\";\n        return -EINVAL;\n    }\n\nIt would eliminate the current practise of checking the same thing twice \nin the same function. There might be bonus points if you can figure out \na nice way to turn it into a switch statement ;-)\n\n>  \n>  \t/*\n>  \t *  We wait for Read notifications on CAPTURE devices (POLLIN), and\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":"<niklas.soderlund@ragnatech.se>","Received":["from mail-lf1-x141.google.com (mail-lf1-x141.google.com\n\t[IPv6:2a00:1450:4864:20::141])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 276ED600FB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 21 Feb 2019 16:46:16 +0100 (CET)","by mail-lf1-x141.google.com with SMTP id j1so20700098lfb.10\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 21 Feb 2019 07:46:16 -0800 (PST)","from localhost (89-233-230-99.cust.bredband2.com. [89.233.230.99])\n\tby smtp.gmail.com with ESMTPSA id\n\tc196sm6084335lfe.84.2019.02.21.07.46.14\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tThu, 21 Feb 2019 07:46:14 -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=LEtEmQLJBFfwjDEIPRWN/u3Da0hSeef8KQotrvEogUk=;\n\tb=PgbKiCbAWVBiFlAHO3NouTlaEbFfE7o93/I7BEQl0hdAD0PhKCHUGVA1k3NTWNgug2\n\t8aY0St060xb7W1/jAKAqE49wI6MOxG6atvOG8YNVlyR3wSwXUJ2SXXxp/tP/6nPBYjyX\n\tj98xalqYfE8fKPI81ey+ASPs4N/ggVxdSu/raVFojuG863LZm1RyIouSc7ve3rdUDO1B\n\tCBVWb3mp8NwcPXIbSAYNauZGfBBAD0FTijfXlFtMVZCNiMM5iquUNeatS35ryd8BqCmF\n\tnw+GDkovJxPgNh+57fsvb0X+l1LsSZugevmBP3hILULCZpQzsP9MfoyF9yRu8gHlQ8AO\n\tq+iw==","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=LEtEmQLJBFfwjDEIPRWN/u3Da0hSeef8KQotrvEogUk=;\n\tb=UoYIyUasHHZFBOddWnvfyEvmg+Hb2EZAyvebum2TlXea6eNRBDH+oONdqjGhMQx/I8\n\tIXHWSxCIRLf83j6sXoJ1c2JGshEiQXwt6hNrxjBGsdKif/Ac9NLS63yQqxuPXK+fnBBL\n\tzLlJItnbKu2CuQj12JKlVI4HVTq4DI8l6tlxQrUVanPm9OFbdmGhC6UWhNRIFWrbSO00\n\tgNa7CVm/LiSB5UBiRG7k9DW6QqMIxJNCp+61ePFE9ep4113nvbRobjdpI0kKYArmVk/Y\n\tMK44Da7CnbeONuM/Y8aJW2wFRyk6XWpnHcAK+ItzCnx+uBYQ8ngdUurX5ZjfkicIZ6Lu\n\tDMjg==","X-Gm-Message-State":"AHQUAua4O1yG2mRg//mZQTWAzY2Pwze8JkKxanYO/RoONkiskPr6RlKM\n\tX2CRQoexcZlb/aa0AIdoQ5aDGLEDpBk=","X-Google-Smtp-Source":"AHgI3IZssp1Ps0rTfPWaNIoGKN+gjy+B+8b3g9m6Ks0gT09QLRcUHxlWr2QGwmeYVSZUdLx2tKjR5Q==","X-Received":"by 2002:a19:5611:: with SMTP id\n\tk17mr23102139lfb.168.1550763975371; \n\tThu, 21 Feb 2019 07:46:15 -0800 (PST)","Date":"Thu, 21 Feb 2019 16:46:14 +0100","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190221154614.GF11484@bigcity.dyn.berto.se>","References":"<20190219165620.2385-1-jacopo@jmondi.org>\n\t<20190219165620.2385-4-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190219165620.2385-4-jacopo@jmondi.org>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_device: Add\n\tsupport for META_CAPTURE devices","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":"Thu, 21 Feb 2019 15:46:16 -0000"}},{"id":837,"web_url":"https://patchwork.libcamera.org/comment/837/","msgid":"<20190221232237.GG3485@pendragon.ideasonboard.com>","date":"2019-02-21T23:22:37","subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_device: Add\n\tsupport for META_CAPTURE devices","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nThank you for the patch.\n\nOn Tue, Feb 19, 2019 at 05:56:20PM +0100, Jacopo Mondi wrote:\n> Add support for devices that provides video meta-data to v4l2_device.cpp\n\ns/provides/provide/\ns/to v4l2_device.cpp/to the V4L2Device class/ or just drop this part\n\n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  src/libcamera/include/v4l2_device.h |  4 ++++\n>  src/libcamera/v4l2_device.cpp       | 12 ++++++++++--\n>  2 files changed, 14 insertions(+), 2 deletions(-)\n> \n> diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/v4l2_device.h\n> index 1d31d1b403bc..52eb6785cc15 100644\n> --- a/src/libcamera/include/v4l2_device.h\n> +++ b/src/libcamera/include/v4l2_device.h\n> @@ -53,6 +53,10 @@ struct V4L2Capability final : v4l2_capability {\n>  \t\treturn device_caps() & (V4L2_CAP_VIDEO_CAPTURE |\n>  \t\t\t\t\tV4L2_CAP_VIDEO_CAPTURE_MPLANE);\n>  \t}\n> +\tbool isMeta() const\n> +\t{\n> +\t\treturn device_caps() & V4L2_CAP_META_CAPTURE;\n\nHow about META_OUTPUT ? We will need that for the ImgU parameters. It\nwould make sense to have 4 helpers, isVideo(), isMeta(), isCapture(),\nisOutput().\n\n> +\t}\n>  \tbool isOutput() const\n>  \t{\n>  \t\treturn device_caps() & (V4L2_CAP_VIDEO_OUTPUT |\n> diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp\n> index 24e115554a99..7fe6476bf035 100644\n> --- a/src/libcamera/v4l2_device.cpp\n> +++ b/src/libcamera/v4l2_device.cpp\n> @@ -79,6 +79,12 @@ LOG_DEFINE_CATEGORY(V4L2)\n>   * \\return True if the device can output video frames\n>   */\n>  \n> +/**\n> + * \\fn bool V4L2Capability::isMeta()\n> + * \\brief Identify if the device is capable of providing video meta-data\n> + * \\return True if the device can provide video meta-data\n> + */\n> +\n>  /**\n>   * \\fn bool V4L2Capability::hasStreaming()\n>   * \\brief Determine if the device can perform Streaming I/O\n> @@ -280,7 +286,7 @@ int V4L2Device::open()\n>  \t\t<< \"Opened device \" << caps_.bus_info() << \": \"\n>  \t\t<< caps_.driver() << \": \" << caps_.card();\n>  \n> -\tif (!caps_.isCapture() && !caps_.isOutput()) {\n> +\tif (!caps_.isCapture() && !caps_.isOutput() && !caps_.isMeta()) {\n>  \t\tLOG(V4L2, Debug) << \"Device is not a supported type\";\n>  \t\treturn -EINVAL;\n>  \t}\n> @@ -294,10 +300,12 @@ int V4L2Device::open()\n>  \t\tbufferType_ = caps_.isMultiplanar()\n>  \t\t\t    ? V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE\n>  \t\t\t    : V4L2_BUF_TYPE_VIDEO_CAPTURE;\n> -\telse\n> +\telse if (caps_.isOutput())\n>  \t\tbufferType_ = caps_.isMultiplanar()\n>  \t\t\t    ? V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE\n>  \t\t\t    : V4L2_BUF_TYPE_VIDEO_OUTPUT;\n> +\telse\n> +\t\tbufferType_ = V4L2_BUF_TYPE_META_CAPTURE;\n>  \n>  \t/*\n>  \t *  We wait for Read notifications on CAPTURE devices (POLLIN), and","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 45115600FB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 22 Feb 2019 00:22:42 +0100 (CET)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id AB837255;\n\tFri, 22 Feb 2019 00:22:41 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1550791361;\n\tbh=WIrrPy1um1UukAShX0aGWLXuFmU7YGa7HHTTByZH9KI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=HOFhx/klwL0WQ7+LCYJDWO+bVgSLTiEqC5cQQh2P5mG5LgfTgh91jaiYsZphPrz4B\n\tzeJdPfuLw6qT3WldsairpxZIbBMe4lnWivns4DVo2auvRkT4/8Ri9yrV8HxLq31pGX\n\t118B6CdzPiIenDG8quZzLL4I81gpkTMcrQdZtP5Y=","Date":"Fri, 22 Feb 2019 01:22:37 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190221232237.GG3485@pendragon.ideasonboard.com>","References":"<20190219165620.2385-1-jacopo@jmondi.org>\n\t<20190219165620.2385-4-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20190219165620.2385-4-jacopo@jmondi.org>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_device: Add\n\tsupport for META_CAPTURE devices","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":"Thu, 21 Feb 2019 23:22:42 -0000"}},{"id":873,"web_url":"https://patchwork.libcamera.org/comment/873/","msgid":"<20190225093113.poqetdazfrol27g7@uno.localdomain>","date":"2019-02-25T09:31:13","subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_device: Add\n\tsupport for META_CAPTURE devices","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"HI Laurent,\n\nOn Fri, Feb 22, 2019 at 01:22:37AM +0200, Laurent Pinchart wrote:\n> Hi Jacopo,\n>\n> Thank you for the patch.\n>\n> On Tue, Feb 19, 2019 at 05:56:20PM +0100, Jacopo Mondi wrote:\n> > Add support for devices that provides video meta-data to v4l2_device.cpp\n>\n> s/provides/provide/\n> s/to v4l2_device.cpp/to the V4L2Device class/ or just drop this part\n>\n> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > ---\n> >  src/libcamera/include/v4l2_device.h |  4 ++++\n> >  src/libcamera/v4l2_device.cpp       | 12 ++++++++++--\n> >  2 files changed, 14 insertions(+), 2 deletions(-)\n> >\n> > diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/v4l2_device.h\n> > index 1d31d1b403bc..52eb6785cc15 100644\n> > --- a/src/libcamera/include/v4l2_device.h\n> > +++ b/src/libcamera/include/v4l2_device.h\n> > @@ -53,6 +53,10 @@ struct V4L2Capability final : v4l2_capability {\n> >  \t\treturn device_caps() & (V4L2_CAP_VIDEO_CAPTURE |\n> >  \t\t\t\t\tV4L2_CAP_VIDEO_CAPTURE_MPLANE);\n> >  \t}\n> > +\tbool isMeta() const\n> > +\t{\n> > +\t\treturn device_caps() & V4L2_CAP_META_CAPTURE;\n>\n> How about META_OUTPUT ? We will need that for the ImgU parameters. It\n> would make sense to have 4 helpers, isVideo(), isMeta(), isCapture(),\n> isOutput().\n>\n\nMETA_OUTPUT went in in v4.20, our headers come from v4.19 iirc\n\n> > +\t}\n> >  \tbool isOutput() const\n> >  \t{\n> >  \t\treturn device_caps() & (V4L2_CAP_VIDEO_OUTPUT |\n> > diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp\n> > index 24e115554a99..7fe6476bf035 100644\n> > --- a/src/libcamera/v4l2_device.cpp\n> > +++ b/src/libcamera/v4l2_device.cpp\n> > @@ -79,6 +79,12 @@ LOG_DEFINE_CATEGORY(V4L2)\n> >   * \\return True if the device can output video frames\n> >   */\n> >\n> > +/**\n> > + * \\fn bool V4L2Capability::isMeta()\n> > + * \\brief Identify if the device is capable of providing video meta-data\n> > + * \\return True if the device can provide video meta-data\n> > + */\n> > +\n> >  /**\n> >   * \\fn bool V4L2Capability::hasStreaming()\n> >   * \\brief Determine if the device can perform Streaming I/O\n> > @@ -280,7 +286,7 @@ int V4L2Device::open()\n> >  \t\t<< \"Opened device \" << caps_.bus_info() << \": \"\n> >  \t\t<< caps_.driver() << \": \" << caps_.card();\n> >\n> > -\tif (!caps_.isCapture() && !caps_.isOutput()) {\n> > +\tif (!caps_.isCapture() && !caps_.isOutput() && !caps_.isMeta()) {\n> >  \t\tLOG(V4L2, Debug) << \"Device is not a supported type\";\n> >  \t\treturn -EINVAL;\n> >  \t}\n> > @@ -294,10 +300,12 @@ int V4L2Device::open()\n> >  \t\tbufferType_ = caps_.isMultiplanar()\n> >  \t\t\t    ? V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE\n> >  \t\t\t    : V4L2_BUF_TYPE_VIDEO_CAPTURE;\n> > -\telse\n> > +\telse if (caps_.isOutput())\n> >  \t\tbufferType_ = caps_.isMultiplanar()\n> >  \t\t\t    ? V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE\n> >  \t\t\t    : V4L2_BUF_TYPE_VIDEO_OUTPUT;\n> > +\telse\n> > +\t\tbufferType_ = V4L2_BUF_TYPE_META_CAPTURE;\n> >\n> >  \t/*\n> >  \t *  We wait for Read notifications on CAPTURE devices (POLLIN), and\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net\n\t[217.70.183.197])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D989E600FE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Feb 2019 10:30:44 +0100 (CET)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 5FC861C0013;\n\tMon, 25 Feb 2019 09:30:44 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","Date":"Mon, 25 Feb 2019 10:31:13 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190225093113.poqetdazfrol27g7@uno.localdomain>","References":"<20190219165620.2385-1-jacopo@jmondi.org>\n\t<20190219165620.2385-4-jacopo@jmondi.org>\n\t<20190221232237.GG3485@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"kyc4vbm4fqoscyep\"","Content-Disposition":"inline","In-Reply-To":"<20190221232237.GG3485@pendragon.ideasonboard.com>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_device: Add\n\tsupport for META_CAPTURE devices","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, 25 Feb 2019 09:30:45 -0000"}},{"id":877,"web_url":"https://patchwork.libcamera.org/comment/877/","msgid":"<20190225194939.GD4756@pendragon.ideasonboard.com>","date":"2019-02-25T19:49:39","subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_device: Add\n\tsupport for META_CAPTURE devices","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn Mon, Feb 25, 2019 at 10:31:13AM +0100, Jacopo Mondi wrote:\n> On Fri, Feb 22, 2019 at 01:22:37AM +0200, Laurent Pinchart wrote:\n> > On Tue, Feb 19, 2019 at 05:56:20PM +0100, Jacopo Mondi wrote:\n> >> Add support for devices that provides video meta-data to v4l2_device.cpp\n> >\n> > s/provides/provide/\n> > s/to v4l2_device.cpp/to the V4L2Device class/ or just drop this part\n> >\n> >> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> >> ---\n> >>  src/libcamera/include/v4l2_device.h |  4 ++++\n> >>  src/libcamera/v4l2_device.cpp       | 12 ++++++++++--\n> >>  2 files changed, 14 insertions(+), 2 deletions(-)\n> >>\n> >> diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/v4l2_device.h\n> >> index 1d31d1b403bc..52eb6785cc15 100644\n> >> --- a/src/libcamera/include/v4l2_device.h\n> >> +++ b/src/libcamera/include/v4l2_device.h\n> >> @@ -53,6 +53,10 @@ struct V4L2Capability final : v4l2_capability {\n> >>  \t\treturn device_caps() & (V4L2_CAP_VIDEO_CAPTURE |\n> >>  \t\t\t\t\tV4L2_CAP_VIDEO_CAPTURE_MPLANE);\n> >>  \t}\n> >> +\tbool isMeta() const\n> >> +\t{\n> >> +\t\treturn device_caps() & V4L2_CAP_META_CAPTURE;\n> >\n> > How about META_OUTPUT ? We will need that for the ImgU parameters. It\n> > would make sense to have 4 helpers, isVideo(), isMeta(), isCapture(),\n> > isOutput().\n> >\n> \n> META_OUTPUT went in in v4.20, our headers come from v4.19 iirc\n\nFeel free to update them :-) Doesn't the IPU3 parameters queue use\nMETA_OUTPUT ?\n\n> >> +\t}\n> >>  \tbool isOutput() const\n> >>  \t{\n> >>  \t\treturn device_caps() & (V4L2_CAP_VIDEO_OUTPUT |\n> >> diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp\n> >> index 24e115554a99..7fe6476bf035 100644\n> >> --- a/src/libcamera/v4l2_device.cpp\n> >> +++ b/src/libcamera/v4l2_device.cpp\n> >> @@ -79,6 +79,12 @@ LOG_DEFINE_CATEGORY(V4L2)\n> >>   * \\return True if the device can output video frames\n> >>   */\n> >>\n> >> +/**\n> >> + * \\fn bool V4L2Capability::isMeta()\n> >> + * \\brief Identify if the device is capable of providing video meta-data\n> >> + * \\return True if the device can provide video meta-data\n> >> + */\n> >> +\n> >>  /**\n> >>   * \\fn bool V4L2Capability::hasStreaming()\n> >>   * \\brief Determine if the device can perform Streaming I/O\n> >> @@ -280,7 +286,7 @@ int V4L2Device::open()\n> >>  \t\t<< \"Opened device \" << caps_.bus_info() << \": \"\n> >>  \t\t<< caps_.driver() << \": \" << caps_.card();\n> >>\n> >> -\tif (!caps_.isCapture() && !caps_.isOutput()) {\n> >> +\tif (!caps_.isCapture() && !caps_.isOutput() && !caps_.isMeta()) {\n> >>  \t\tLOG(V4L2, Debug) << \"Device is not a supported type\";\n> >>  \t\treturn -EINVAL;\n> >>  \t}\n> >> @@ -294,10 +300,12 @@ int V4L2Device::open()\n> >>  \t\tbufferType_ = caps_.isMultiplanar()\n> >>  \t\t\t    ? V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE\n> >>  \t\t\t    : V4L2_BUF_TYPE_VIDEO_CAPTURE;\n> >> -\telse\n> >> +\telse if (caps_.isOutput())\n> >>  \t\tbufferType_ = caps_.isMultiplanar()\n> >>  \t\t\t    ? V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE\n> >>  \t\t\t    : V4L2_BUF_TYPE_VIDEO_OUTPUT;\n> >> +\telse\n> >> +\t\tbufferType_ = V4L2_BUF_TYPE_META_CAPTURE;\n> >>\n> >>  \t/*\n> >>  \t *  We wait for Read notifications on CAPTURE devices (POLLIN), and","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 83F1D610B6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Feb 2019 20:49:50 +0100 (CET)","from pendragon.ideasonboard.com (unknown [83.145.195.18])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 667CD67;\n\tMon, 25 Feb 2019 20:49:49 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1551124190;\n\tbh=2qduiU1ZwA2ZhsEUsQZ2SPGnhZYK+maNBsFrxOA++ZA=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=gZMk70269+XyEOMHXL0iTc1pzMBoUNV8mF9RwpV++W8Q5jgHrvs+GyWfORGnlnjUa\n\t1vnudCunRnJf0BipdK03jVdxGKt7bFQYvBhvby2gpPbXYh8so+54XTGA4+pQcjA4Fz\n\tTV+s1qoMwzXc1QpXcvX6kL3UlbGhy7lhbGFRnMck=","Date":"Mon, 25 Feb 2019 21:49:39 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190225194939.GD4756@pendragon.ideasonboard.com>","References":"<20190219165620.2385-1-jacopo@jmondi.org>\n\t<20190219165620.2385-4-jacopo@jmondi.org>\n\t<20190221232237.GG3485@pendragon.ideasonboard.com>\n\t<20190225093113.poqetdazfrol27g7@uno.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20190225093113.poqetdazfrol27g7@uno.localdomain>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_device: Add\n\tsupport for META_CAPTURE devices","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, 25 Feb 2019 19:49:50 -0000"}},{"id":887,"web_url":"https://patchwork.libcamera.org/comment/887/","msgid":"<20190226100441.tjzwxkxxlmlutnz2@uno.localdomain>","date":"2019-02-26T10:04:41","subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_device: Add\n\tsupport for META_CAPTURE devices","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n   an update on the META_OUTPUT thing\n\nOn Mon, Feb 25, 2019 at 09:49:39PM +0200, Laurent Pinchart wrote:\n> Hi Jacopo,\n>\n> On Mon, Feb 25, 2019 at 10:31:13AM +0100, Jacopo Mondi wrote:\n> > On Fri, Feb 22, 2019 at 01:22:37AM +0200, Laurent Pinchart wrote:\n> > > On Tue, Feb 19, 2019 at 05:56:20PM +0100, Jacopo Mondi wrote:\n> > >> Add support for devices that provides video meta-data to v4l2_device.cpp\n> > >\n> > > s/provides/provide/\n> > > s/to v4l2_device.cpp/to the V4L2Device class/ or just drop this part\n> > >\n> > >> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > >> ---\n> > >>  src/libcamera/include/v4l2_device.h |  4 ++++\n> > >>  src/libcamera/v4l2_device.cpp       | 12 ++++++++++--\n> > >>  2 files changed, 14 insertions(+), 2 deletions(-)\n> > >>\n> > >> diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/v4l2_device.h\n> > >> index 1d31d1b403bc..52eb6785cc15 100644\n> > >> --- a/src/libcamera/include/v4l2_device.h\n> > >> +++ b/src/libcamera/include/v4l2_device.h\n> > >> @@ -53,6 +53,10 @@ struct V4L2Capability final : v4l2_capability {\n> > >>  \t\treturn device_caps() & (V4L2_CAP_VIDEO_CAPTURE |\n> > >>  \t\t\t\t\tV4L2_CAP_VIDEO_CAPTURE_MPLANE);\n> > >>  \t}\n> > >> +\tbool isMeta() const\n> > >> +\t{\n> > >> +\t\treturn device_caps() & V4L2_CAP_META_CAPTURE;\n> > >\n> > > How about META_OUTPUT ? We will need that for the ImgU parameters. It\n> > > would make sense to have 4 helpers, isVideo(), isMeta(), isCapture(),\n> > > isOutput().\n> > >\n> >\n> > META_OUTPUT went in in v4.20, our headers come from v4.19 iirc\n>\n\nI was wrong. The the patch that introduces META_OUTPUT went in in\nv4.20-7 in the media tree, but hit Linus' tree in the 5.0 merge\nwindow.\n\n> Feel free to update them :-) Doesn't the IPU3 parameters queue use\n> META_OUTPUT ?\n\nI would wait another week or so and update headers to the 5.0 version,\nonce v5.0 is released.\n\nIt's not blocking IPU3 support anyway.\n\nThanks\n  j\n\n>\n> > >> +\t}\n> > >>  \tbool isOutput() const\n> > >>  \t{\n> > >>  \t\treturn device_caps() & (V4L2_CAP_VIDEO_OUTPUT |\n> > >> diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp\n> > >> index 24e115554a99..7fe6476bf035 100644\n> > >> --- a/src/libcamera/v4l2_device.cpp\n> > >> +++ b/src/libcamera/v4l2_device.cpp\n> > >> @@ -79,6 +79,12 @@ LOG_DEFINE_CATEGORY(V4L2)\n> > >>   * \\return True if the device can output video frames\n> > >>   */\n> > >>\n> > >> +/**\n> > >> + * \\fn bool V4L2Capability::isMeta()\n> > >> + * \\brief Identify if the device is capable of providing video meta-data\n> > >> + * \\return True if the device can provide video meta-data\n> > >> + */\n> > >> +\n> > >>  /**\n> > >>   * \\fn bool V4L2Capability::hasStreaming()\n> > >>   * \\brief Determine if the device can perform Streaming I/O\n> > >> @@ -280,7 +286,7 @@ int V4L2Device::open()\n> > >>  \t\t<< \"Opened device \" << caps_.bus_info() << \": \"\n> > >>  \t\t<< caps_.driver() << \": \" << caps_.card();\n> > >>\n> > >> -\tif (!caps_.isCapture() && !caps_.isOutput()) {\n> > >> +\tif (!caps_.isCapture() && !caps_.isOutput() && !caps_.isMeta()) {\n> > >>  \t\tLOG(V4L2, Debug) << \"Device is not a supported type\";\n> > >>  \t\treturn -EINVAL;\n> > >>  \t}\n> > >> @@ -294,10 +300,12 @@ int V4L2Device::open()\n> > >>  \t\tbufferType_ = caps_.isMultiplanar()\n> > >>  \t\t\t    ? V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE\n> > >>  \t\t\t    : V4L2_BUF_TYPE_VIDEO_CAPTURE;\n> > >> -\telse\n> > >> +\telse if (caps_.isOutput())\n> > >>  \t\tbufferType_ = caps_.isMultiplanar()\n> > >>  \t\t\t    ? V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE\n> > >>  \t\t\t    : V4L2_BUF_TYPE_VIDEO_OUTPUT;\n> > >> +\telse\n> > >> +\t\tbufferType_ = V4L2_BUF_TYPE_META_CAPTURE;\n> > >>\n> > >>  \t/*\n> > >>  \t *  We wait for Read notifications on CAPTURE devices (POLLIN), and\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net\n\t[217.70.183.195])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 515E4600FD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Feb 2019 11:04:13 +0100 (CET)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay3-d.mail.gandi.net (Postfix) with ESMTPSA id B65E36000A;\n\tTue, 26 Feb 2019 10:04:12 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","Date":"Tue, 26 Feb 2019 11:04:41 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190226100441.tjzwxkxxlmlutnz2@uno.localdomain>","References":"<20190219165620.2385-1-jacopo@jmondi.org>\n\t<20190219165620.2385-4-jacopo@jmondi.org>\n\t<20190221232237.GG3485@pendragon.ideasonboard.com>\n\t<20190225093113.poqetdazfrol27g7@uno.localdomain>\n\t<20190225194939.GD4756@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"gncqp3ydfmqdac7b\"","Content-Disposition":"inline","In-Reply-To":"<20190225194939.GD4756@pendragon.ideasonboard.com>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_device: Add\n\tsupport for META_CAPTURE devices","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, 26 Feb 2019 10:04:13 -0000"}},{"id":927,"web_url":"https://patchwork.libcamera.org/comment/927/","msgid":"<20190227171021.GJ4813@pendragon.ideasonboard.com>","date":"2019-02-27T17:10:21","subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_device: Add\n\tsupport for META_CAPTURE devices","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn Tue, Feb 26, 2019 at 11:04:41AM +0100, Jacopo Mondi wrote:\n> On Mon, Feb 25, 2019 at 09:49:39PM +0200, Laurent Pinchart wrote:\n> > On Mon, Feb 25, 2019 at 10:31:13AM +0100, Jacopo Mondi wrote:\n> >> On Fri, Feb 22, 2019 at 01:22:37AM +0200, Laurent Pinchart wrote:\n> >>> On Tue, Feb 19, 2019 at 05:56:20PM +0100, Jacopo Mondi wrote:\n> >>>> Add support for devices that provides video meta-data to v4l2_device.cpp\n> >>>\n> >>> s/provides/provide/\n> >>> s/to v4l2_device.cpp/to the V4L2Device class/ or just drop this part\n> >>>\n> >>>> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> >>>> ---\n> >>>>  src/libcamera/include/v4l2_device.h |  4 ++++\n> >>>>  src/libcamera/v4l2_device.cpp       | 12 ++++++++++--\n> >>>>  2 files changed, 14 insertions(+), 2 deletions(-)\n> >>>>\n> >>>> diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/v4l2_device.h\n> >>>> index 1d31d1b403bc..52eb6785cc15 100644\n> >>>> --- a/src/libcamera/include/v4l2_device.h\n> >>>> +++ b/src/libcamera/include/v4l2_device.h\n> >>>> @@ -53,6 +53,10 @@ struct V4L2Capability final : v4l2_capability {\n> >>>>  \t\treturn device_caps() & (V4L2_CAP_VIDEO_CAPTURE |\n> >>>>  \t\t\t\t\tV4L2_CAP_VIDEO_CAPTURE_MPLANE);\n> >>>>  \t}\n> >>>> +\tbool isMeta() const\n> >>>> +\t{\n> >>>> +\t\treturn device_caps() & V4L2_CAP_META_CAPTURE;\n> >>>\n> >>> How about META_OUTPUT ? We will need that for the ImgU parameters. It\n> >>> would make sense to have 4 helpers, isVideo(), isMeta(), isCapture(),\n> >>> isOutput().\n> >>\n> >> META_OUTPUT went in in v4.20, our headers come from v4.19 iirc\n> \n> I was wrong. The the patch that introduces META_OUTPUT went in in\n> v4.20-7 in the media tree, but hit Linus' tree in the 5.0 merge\n> window.\n\nIndeed, my bad.\n\n> > Feel free to update them :-) Doesn't the IPU3 parameters queue use\n> > META_OUTPUT ?\n> \n> I would wait another week or so and update headers to the 5.0 version,\n> once v5.0 is released.\n\nThat's fine with me, but you'll have to change the API introduced by\nthis patch, and may fail to catch all required changes, so there's a\nsmall risk of introducting a bug. Up to you, but I don't think the V4L2\nheaders will change between v5.0-rc8 and v5.0, so updating them doesn't\nseem to be a problem to me.\n\n> It's not blocking IPU3 support anyway.\n> \n> >>>> +\t}\n> >>>>  \tbool isOutput() const\n> >>>>  \t{\n> >>>>  \t\treturn device_caps() & (V4L2_CAP_VIDEO_OUTPUT |\n> >>>> diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp\n> >>>> index 24e115554a99..7fe6476bf035 100644\n> >>>> --- a/src/libcamera/v4l2_device.cpp\n> >>>> +++ b/src/libcamera/v4l2_device.cpp\n> >>>> @@ -79,6 +79,12 @@ LOG_DEFINE_CATEGORY(V4L2)\n> >>>>   * \\return True if the device can output video frames\n> >>>>   */\n> >>>>\n> >>>> +/**\n> >>>> + * \\fn bool V4L2Capability::isMeta()\n> >>>> + * \\brief Identify if the device is capable of providing video meta-data\n> >>>> + * \\return True if the device can provide video meta-data\n> >>>> + */\n> >>>> +\n> >>>>  /**\n> >>>>   * \\fn bool V4L2Capability::hasStreaming()\n> >>>>   * \\brief Determine if the device can perform Streaming I/O\n> >>>> @@ -280,7 +286,7 @@ int V4L2Device::open()\n> >>>>  \t\t<< \"Opened device \" << caps_.bus_info() << \": \"\n> >>>>  \t\t<< caps_.driver() << \": \" << caps_.card();\n> >>>>\n> >>>> -\tif (!caps_.isCapture() && !caps_.isOutput()) {\n> >>>> +\tif (!caps_.isCapture() && !caps_.isOutput() && !caps_.isMeta()) {\n> >>>>  \t\tLOG(V4L2, Debug) << \"Device is not a supported type\";\n> >>>>  \t\treturn -EINVAL;\n> >>>>  \t}\n> >>>> @@ -294,10 +300,12 @@ int V4L2Device::open()\n> >>>>  \t\tbufferType_ = caps_.isMultiplanar()\n> >>>>  \t\t\t    ? V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE\n> >>>>  \t\t\t    : V4L2_BUF_TYPE_VIDEO_CAPTURE;\n> >>>> -\telse\n> >>>> +\telse if (caps_.isOutput())\n> >>>>  \t\tbufferType_ = caps_.isMultiplanar()\n> >>>>  \t\t\t    ? V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE\n> >>>>  \t\t\t    : V4L2_BUF_TYPE_VIDEO_OUTPUT;\n> >>>> +\telse\n> >>>> +\t\tbufferType_ = V4L2_BUF_TYPE_META_CAPTURE;\n> >>>>\n> >>>>  \t/*\n> >>>>  \t *  We wait for Read notifications on CAPTURE devices (POLLIN), and","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 D52FB610B3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Feb 2019 18:10:32 +0100 (CET)","from pendragon.ideasonboard.com (unknown [83.145.195.18])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 22FBA49;\n\tWed, 27 Feb 2019 18:10:32 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1551287432;\n\tbh=E7xPzMDrA9P2hFiAGNjIUd85FV5TzlkjtxI3+qWtz5Y=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=PW36eEFMz+NJ8lypuMJVZADGOwwnSTvftRZfdkqeCq58rZrbGMmWHRj6pvKxvdOgf\n\tYW6sZbjdnss+EJKubjbHArCtU/lK5xaEnXR53mcDiQWLFmBjhg5qC45u2DaCK947hy\n\tfhcvM/b2wG59SrO+si20Bmw/jtBNlivNpfu7YyGE=","Date":"Wed, 27 Feb 2019 19:10:21 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190227171021.GJ4813@pendragon.ideasonboard.com>","References":"<20190219165620.2385-1-jacopo@jmondi.org>\n\t<20190219165620.2385-4-jacopo@jmondi.org>\n\t<20190221232237.GG3485@pendragon.ideasonboard.com>\n\t<20190225093113.poqetdazfrol27g7@uno.localdomain>\n\t<20190225194939.GD4756@pendragon.ideasonboard.com>\n\t<20190226100441.tjzwxkxxlmlutnz2@uno.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20190226100441.tjzwxkxxlmlutnz2@uno.localdomain>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 3/3] libcamera: v4l2_device: Add\n\tsupport for META_CAPTURE devices","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":"Wed, 27 Feb 2019 17:10:33 -0000"}}]