[{"id":18604,"web_url":"https://patchwork.libcamera.org/comment/18604/","msgid":"<YQ/zN/aABEbwrlqZ@pendragon.ideasonboard.com>","date":"2021-08-08T15:07:35","subject":"Re: [libcamera-devel] [PATCH 00/10] Concurrent camera support in\n\tsimple pipeline handler","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Martin,\n\nWould you be able to test this series on the Librem5 ? I'd like to make\nsure it doesn't cause any regression.\n\nOn Fri, Aug 06, 2021 at 01:24:26AM +0300, Laurent Pinchart wrote:\n> Hello,\n> \n> Another day, another patch series that has been sitting in my tree and\n> that I'd like to stop rebasing.\n> \n> The series reworks the simple pipeline handler to correctly support\n> streaming from multiple cameras concurrently. The reason I haven't\n> posted it yet is that the libcamera core gets doesn't support this\n> feature yet. It's easy to work around by removing some checks for\n> testing, but will take more time to fix correctly.\n> \n> The simple pipeline handler already supports registering multiple\n> cameras, and relies on the libcamera core blocking concurrent access to\n> different cameras backed by the same media device. It thus doesn't\n> implement internally mutual exclusion between cameras that share\n> hardware resources, but, based on the assumption that a single camera\n> will be used at a time, implements camera operation around a global\n> active camera pointer.\n> \n> Patch 01/10 is the only libcamera core patch. It extends the MediaEntity\n> class to expose the type of userspace interface that the entity\n> implements. Patches 02/10 to 06/10 then rework the way the pipeline\n> handler stores data about pipelines and accesses video devices and\n> subdevs.\n> \n> Patch 02/10 extends the SimpleCameraData entity representation to store\n> more information about graph traversal, and patch 04/10 stores the\n> entity corresponding to the video node with all other pipeline entities\n> in SimpleCameraData. Patches 03/10, 05/10 and 06/10 generalize handling\n> of video devices and subdev by opening them all together at match time\n> and storing them in a single container in the SimplePipelineHandler\n> class.\n> \n> With this done, path 07/10 adds an entity reservation mechanism in the\n> SimplePipelineHandler class, to handle mutual exclusion when multiple\n> cameras use the same entities. With this change, the simple pipeline\n> handler handles concurrent access to cameras internally, without\n> depending on mutual exclusion implemented by the libcamera core anymore.\n> This doesn't result in any change of behaviour, but paves the way to\n> concurrent usage of multiple cameras that don't share entities once the\n> restriction in the libcamera core will be lifted.\n> \n> Patch 08/10 continues in that direction by moving the converter from the\n> SimplePipelineHandler class to the SimpleCameraData class. This allows\n> usage of the converter by multiple cameras concurrently. Patch 09/10\n> then moves the bufferReady handler to the SimpleCameraData class as\n> well, to handle buffer completion in the correct context without relying\n> on the global active camera pointer.\n> \n> Finally, patch 10/10 removes the active camera pointer as it's not used\n> anymore.\n> \n> This series has only been partially tested, as the libcamera core\n> doesn't correctly support concurrent streaming from cameras belonging to\n> the same pipeline handler. The code was tested with a single camera and\n> didn't introduce any regression, and was also tested on i.MX8MP with a\n> few hacks in the libcamera core to lift the restrictions and a few\n> out-of-tree patches to support the i.MX8MP (those are not ready for\n> submission yet). I would thus understand a reluctance to get this merged\n> already, even if I believe that the absence of regression, combined with\n> the cleaner (in my opinion) implementation of the simple pipeline\n> handler are good enough reasons by themselves to already merge this.\n> \n> Laurent Pinchart (10):\n>   libcamera: media_object: Expose entity type\n>   libcamera: pipeline: simple: Add sink and source pads to entity data\n>   libcamera: pipeline: simple: Delay opening of video device until\n>     init()\n>   libcamera: pipeline: simple: Store video node entity in camera data\n>   libcamera: pipeline: simple: Store all entity devices in common map\n>   libcamera: pipeline: simple: Open all video devices at match() time\n>   libcamera: pipeline: simple: Add pipeline pad reservation mechanism\n>   libcamera: pipeline: simple: Move converter to SimpleCameraData\n>   libcamera: pipeline: simple: Move bufferReady handler to\n>     SimpleCameraData\n>   libcamera: pipeline: simple: Remove\n>     SimplePipelineHandler::activeCamera_\n> \n>  include/libcamera/internal/media_object.h |  11 +-\n>  src/libcamera/media_device.cpp            |   9 +-\n>  src/libcamera/media_object.cpp            |  50 ++-\n>  src/libcamera/pipeline/simple/simple.cpp  | 506 ++++++++++++++--------\n>  4 files changed, 377 insertions(+), 199 deletions(-)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 62F9CBD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun,  8 Aug 2021 15:07:42 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A489D6884D;\n\tSun,  8 Aug 2021 17:07:41 +0200 (CEST)","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 69E54687FA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun,  8 Aug 2021 17:07:37 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C69E8EE;\n\tSun,  8 Aug 2021 17:07:36 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"kMOvfJqD\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1628435257;\n\tbh=8v1Oj8zXrNSNzQlSiYPdDrg+SWv4zLKzOFgvCyJuMIQ=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=kMOvfJqDsWa8MzX2QYMS2pfs9ECcu6Ty4I+b+qha0q7ClucL6Kzd8G/LVQK5f0CQ3\n\t5LfEysbOxiSccSb9q4SmDWGXsf8/4b2huO2Lt3apcqqYBNWnUqf1937itgNLxhbVMK\n\tP4nNHAMjP1i4iMKd6yZQCfASvUe8dKTaG0VHaR7E=","Date":"Sun, 8 Aug 2021 18:07:35 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Martin Kepplinger <martin.kepplinger@puri.sm>","Message-ID":"<YQ/zN/aABEbwrlqZ@pendragon.ideasonboard.com>","References":"<20210805222436.6263-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210805222436.6263-1-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 00/10] Concurrent camera support in\n\tsimple pipeline handler","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19026,"web_url":"https://patchwork.libcamera.org/comment/19026/","msgid":"<f0a72caa57e3ec2b198ff20ebff587bb25c505da.camel@puri.sm>","date":"2021-08-24T14:57:15","subject":"Re: [libcamera-devel] [PATCH 00/10] Concurrent camera support in\n\tsimple pipeline handler","submitter":{"id":93,"url":"https://patchwork.libcamera.org/api/people/93/","name":"Martin Kepplinger","email":"martin.kepplinger@puri.sm"},"content":"Am Sonntag, dem 08.08.2021 um 18:07 +0300 schrieb Laurent Pinchart:\n> Hi Martin,\n> \n> Would you be able to test this series on the Librem5 ? I'd like to\n> make\n> sure it doesn't cause any regression.\n\nhi Laurent, could you send me the patches directly and tell me where\nthey apply?\n\nthanks,\n                          martin\n\n> \n> On Fri, Aug 06, 2021 at 01:24:26AM +0300, Laurent Pinchart wrote:\n> > Hello,\n> > \n> > Another day, another patch series that has been sitting in my tree\n> > and\n> > that I'd like to stop rebasing.\n> > \n> > The series reworks the simple pipeline handler to correctly support\n> > streaming from multiple cameras concurrently. The reason I haven't\n> > posted it yet is that the libcamera core gets doesn't support this\n> > feature yet. It's easy to work around by removing some checks for\n> > testing, but will take more time to fix correctly.\n> > \n> > The simple pipeline handler already supports registering multiple\n> > cameras, and relies on the libcamera core blocking concurrent\n> > access to\n> > different cameras backed by the same media device. It thus doesn't\n> > implement internally mutual exclusion between cameras that share\n> > hardware resources, but, based on the assumption that a single\n> > camera\n> > will be used at a time, implements camera operation around a global\n> > active camera pointer.\n> > \n> > Patch 01/10 is the only libcamera core patch. It extends the\n> > MediaEntity\n> > class to expose the type of userspace interface that the entity\n> > implements. Patches 02/10 to 06/10 then rework the way the pipeline\n> > handler stores data about pipelines and accesses video devices and\n> > subdevs.\n> > \n> > Patch 02/10 extends the SimpleCameraData entity representation to\n> > store\n> > more information about graph traversal, and patch 04/10 stores the\n> > entity corresponding to the video node with all other pipeline\n> > entities\n> > in SimpleCameraData. Patches 03/10, 05/10 and 06/10 generalize\n> > handling\n> > of video devices and subdev by opening them all together at match\n> > time\n> > and storing them in a single container in the SimplePipelineHandler\n> > class.\n> > \n> > With this done, path 07/10 adds an entity reservation mechanism in\n> > the\n> > SimplePipelineHandler class, to handle mutual exclusion when\n> > multiple\n> > cameras use the same entities. With this change, the simple\n> > pipeline\n> > handler handles concurrent access to cameras internally, without\n> > depending on mutual exclusion implemented by the libcamera core\n> > anymore.\n> > This doesn't result in any change of behaviour, but paves the way\n> > to\n> > concurrent usage of multiple cameras that don't share entities once\n> > the\n> > restriction in the libcamera core will be lifted.\n> > \n> > Patch 08/10 continues in that direction by moving the converter\n> > from the\n> > SimplePipelineHandler class to the SimpleCameraData class. This\n> > allows\n> > usage of the converter by multiple cameras concurrently. Patch\n> > 09/10\n> > then moves the bufferReady handler to the SimpleCameraData class as\n> > well, to handle buffer completion in the correct context without\n> > relying\n> > on the global active camera pointer.\n> > \n> > Finally, patch 10/10 removes the active camera pointer as it's not\n> > used\n> > anymore.\n> > \n> > This series has only been partially tested, as the libcamera core\n> > doesn't correctly support concurrent streaming from cameras\n> > belonging to\n> > the same pipeline handler. The code was tested with a single camera\n> > and\n> > didn't introduce any regression, and was also tested on i.MX8MP\n> > with a\n> > few hacks in the libcamera core to lift the restrictions and a few\n> > out-of-tree patches to support the i.MX8MP (those are not ready for\n> > submission yet). I would thus understand a reluctance to get this\n> > merged\n> > already, even if I believe that the absence of regression, combined\n> > with\n> > the cleaner (in my opinion) implementation of the simple pipeline\n> > handler are good enough reasons by themselves to already merge\n> > this.\n> > \n> > Laurent Pinchart (10):\n> >   libcamera: media_object: Expose entity type\n> >   libcamera: pipeline: simple: Add sink and source pads to entity\n> > data\n> >   libcamera: pipeline: simple: Delay opening of video device until\n> >     init()\n> >   libcamera: pipeline: simple: Store video node entity in camera\n> > data\n> >   libcamera: pipeline: simple: Store all entity devices in common\n> > map\n> >   libcamera: pipeline: simple: Open all video devices at match()\n> > time\n> >   libcamera: pipeline: simple: Add pipeline pad reservation\n> > mechanism\n> >   libcamera: pipeline: simple: Move converter to SimpleCameraData\n> >   libcamera: pipeline: simple: Move bufferReady handler to\n> >     SimpleCameraData\n> >   libcamera: pipeline: simple: Remove\n> >     SimplePipelineHandler::activeCamera_\n> > \n> >  include/libcamera/internal/media_object.h |  11 +-\n> >  src/libcamera/media_device.cpp            |   9 +-\n> >  src/libcamera/media_object.cpp            |  50 ++-\n> >  src/libcamera/pipeline/simple/simple.cpp  | 506 ++++++++++++++----\n> > ----\n> >  4 files changed, 377 insertions(+), 199 deletions(-)\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 8EAFBBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 24 Aug 2021 15:02:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1A7DD688A3;\n\tTue, 24 Aug 2021 17:02:09 +0200 (CEST)","from comms.puri.sm (comms.puri.sm [159.203.221.185])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 58C3368892\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 24 Aug 2021 16:57:52 +0200 (CEST)","from localhost (localhost [127.0.0.1])\n\tby comms.puri.sm (Postfix) with ESMTP id 2130DDFD7B;\n\tTue, 24 Aug 2021 07:57:20 -0700 (PDT)","from comms.puri.sm ([127.0.0.1])\n\tby localhost (comms.puri.sm [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id iW5U3X71jZ7q; Tue, 24 Aug 2021 07:57:19 -0700 (PDT)"],"Message-ID":"<f0a72caa57e3ec2b198ff20ebff587bb25c505da.camel@puri.sm>","From":"Martin Kepplinger <martin.kepplinger@puri.sm>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Date":"Tue, 24 Aug 2021 16:57:15 +0200","In-Reply-To":"<YQ/zN/aABEbwrlqZ@pendragon.ideasonboard.com>","References":"<20210805222436.6263-1-laurent.pinchart@ideasonboard.com>\n\t<YQ/zN/aABEbwrlqZ@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","User-Agent":"Evolution 3.38.3-1 ","Content-Transfer-Encoding":"8bit","X-Mailman-Approved-At":"Tue, 24 Aug 2021 17:02:08 +0200","Subject":"Re: [libcamera-devel] [PATCH 00/10] Concurrent camera support in\n\tsimple pipeline handler","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19029,"web_url":"https://patchwork.libcamera.org/comment/19029/","msgid":"<YSWeM4N7HBrG3/iD@pendragon.ideasonboard.com>","date":"2021-08-25T01:34:43","subject":"Re: [libcamera-devel] [PATCH 00/10] Concurrent camera support in\n\tsimple pipeline handler","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Martin,\n\nOn Tue, Aug 24, 2021 at 04:57:15PM +0200, Martin Kepplinger wrote:\n> Am Sonntag, dem 08.08.2021 um 18:07 +0300 schrieb Laurent Pinchart:\n> > Hi Martin,\n> > \n> > Would you be able to test this series on the Librem5 ? I'd like to make\n> > sure it doesn't cause any regression.\n> \n> hi Laurent, could you send me the patches directly and tell me where\n> they apply?\n\nBetter, I can provide a branch :-)\n\nhttps://git.libcamera.org/libcamera/pinchartl/libcamera.git/log/?h=simple/multicam\n\n> > On Fri, Aug 06, 2021 at 01:24:26AM +0300, Laurent Pinchart wrote:\n> > > Hello,\n> > > \n> > > Another day, another patch series that has been sitting in my tree and\n> > > that I'd like to stop rebasing.\n> > > \n> > > The series reworks the simple pipeline handler to correctly support\n> > > streaming from multiple cameras concurrently. The reason I haven't\n> > > posted it yet is that the libcamera core gets doesn't support this\n> > > feature yet. It's easy to work around by removing some checks for\n> > > testing, but will take more time to fix correctly.\n> > > \n> > > The simple pipeline handler already supports registering multiple\n> > > cameras, and relies on the libcamera core blocking concurrent access to\n> > > different cameras backed by the same media device. It thus doesn't\n> > > implement internally mutual exclusion between cameras that share\n> > > hardware resources, but, based on the assumption that a single camera\n> > > will be used at a time, implements camera operation around a global\n> > > active camera pointer.\n> > > \n> > > Patch 01/10 is the only libcamera core patch. It extends the MediaEntity\n> > > class to expose the type of userspace interface that the entity\n> > > implements. Patches 02/10 to 06/10 then rework the way the pipeline\n> > > handler stores data about pipelines and accesses video devices and\n> > > subdevs.\n> > > \n> > > Patch 02/10 extends the SimpleCameraData entity representation to store\n> > > more information about graph traversal, and patch 04/10 stores the\n> > > entity corresponding to the video node with all other pipeline entities\n> > > in SimpleCameraData. Patches 03/10, 05/10 and 06/10 generalize handling\n> > > of video devices and subdev by opening them all together at match time\n> > > and storing them in a single container in the SimplePipelineHandler\n> > > class.\n> > > \n> > > With this done, path 07/10 adds an entity reservation mechanism in the\n> > > SimplePipelineHandler class, to handle mutual exclusion when multiple\n> > > cameras use the same entities. With this change, the simple pipeline\n> > > handler handles concurrent access to cameras internally, without\n> > > depending on mutual exclusion implemented by the libcamera core anymore.\n> > > This doesn't result in any change of behaviour, but paves the way to\n> > > concurrent usage of multiple cameras that don't share entities once the\n> > > restriction in the libcamera core will be lifted.\n> > > \n> > > Patch 08/10 continues in that direction by moving the converter from the\n> > > SimplePipelineHandler class to the SimpleCameraData class. This allows\n> > > usage of the converter by multiple cameras concurrently. Patch> 09/10\n> > > then moves the bufferReady handler to the SimpleCameraData class as\n> > > well, to handle buffer completion in the correct context without relying\n> > > on the global active camera pointer.\n> > > \n> > > Finally, patch 10/10 removes the active camera pointer as it's not used\n> > > anymore.\n> > > \n> > > This series has only been partially tested, as the libcamera core\n> > > doesn't correctly support concurrent streaming from cameras belonging to\n> > > the same pipeline handler. The code was tested with a single camera and\n> > > didn't introduce any regression, and was also tested on i.MX8MP with a\n> > > few hacks in the libcamera core to lift the restrictions and a few\n> > > out-of-tree patches to support the i.MX8MP (those are not ready for\n> > > submission yet). I would thus understand a reluctance to get this merged\n> > > already, even if I believe that the absence of regression, combined with\n> > > the cleaner (in my opinion) implementation of the simple pipeline\n> > > handler are good enough reasons by themselves to already merge this.\n> > > \n> > > Laurent Pinchart (10):\n> > >   libcamera: media_object: Expose entity type\n> > >   libcamera: pipeline: simple: Add sink and source pads to entity data\n> > >   libcamera: pipeline: simple: Delay opening of video device until init()\n> > >   libcamera: pipeline: simple: Store video node entity in camera data\n> > >   libcamera: pipeline: simple: Store all entity devices in common map\n> > >   libcamera: pipeline: simple: Open all video devices at match() time\n> > >   libcamera: pipeline: simple: Add pipeline pad reservation mechanism\n> > >   libcamera: pipeline: simple: Move converter to SimpleCameraData\n> > >   libcamera: pipeline: simple: Move bufferReady handler to SimpleCameraData\n> > >   libcamera: pipeline: simple: Remove SimplePipelineHandler::activeCamera_\n> > > \n> > >  include/libcamera/internal/media_object.h |  11 +-\n> > >  src/libcamera/media_device.cpp            |   9 +-\n> > >  src/libcamera/media_object.cpp            |  50 ++-\n> > >  src/libcamera/pipeline/simple/simple.cpp  | 506 ++++++++++++++----\n> > > ----\n> > >  4 files changed, 377 insertions(+), 199 deletions(-)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 5E4F3BD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 25 Aug 2021 01:35:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8A5EF688A6;\n\tWed, 25 Aug 2021 03:35:01 +0200 (CEST)","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 81EC16025B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 25 Aug 2021 03:34:54 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id E446924F;\n\tWed, 25 Aug 2021 03:34:53 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"qbfXXOvg\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1629855294;\n\tbh=/m9et4ZqGkPQJdxGCRcM2J4rSXHa5d7NtmZ9flH+YJA=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=qbfXXOvgnq2Pc9Fdw4Q2DXowmu7KowYgbqZHVEeTwOtKaP1e0ziJEv95iOZ3duTra\n\t7brV7vZbdMi2b0EC6j3gWHPKjhcPXwSOVMgHKunk/Q4XpyWRGKqy255PmRV+StiKkI\n\ta5D3cMfanByASt/SNTU4telZq5EUNphMt89UTgfw=","Date":"Wed, 25 Aug 2021 04:34:43 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Martin Kepplinger <martin.kepplinger@puri.sm>","Message-ID":"<YSWeM4N7HBrG3/iD@pendragon.ideasonboard.com>","References":"<20210805222436.6263-1-laurent.pinchart@ideasonboard.com>\n\t<YQ/zN/aABEbwrlqZ@pendragon.ideasonboard.com>\n\t<f0a72caa57e3ec2b198ff20ebff587bb25c505da.camel@puri.sm>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<f0a72caa57e3ec2b198ff20ebff587bb25c505da.camel@puri.sm>","Subject":"Re: [libcamera-devel] [PATCH 00/10] Concurrent camera support in\n\tsimple pipeline handler","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19174,"web_url":"https://patchwork.libcamera.org/comment/19174/","msgid":"<7e1b7cccc2c51d427cbf5dbfd753037ca4c7cfef.camel@puri.sm>","date":"2021-08-30T13:43:32","subject":"Re: [libcamera-devel] [PATCH 00/10] Concurrent camera support in\n\tsimple pipeline handler","submitter":{"id":93,"url":"https://patchwork.libcamera.org/api/people/93/","name":"Martin Kepplinger","email":"martin.kepplinger@puri.sm"},"content":"Am Mittwoch, dem 25.08.2021 um 04:34 +0300 schrieb Laurent Pinchart:\n> Hi Martin,\n> \n> On Tue, Aug 24, 2021 at 04:57:15PM +0200, Martin Kepplinger wrote:\n> > Am Sonntag, dem 08.08.2021 um 18:07 +0300 schrieb Laurent Pinchart:\n> > > Hi Martin,\n> > > \n> > > Would you be able to test this series on the Librem5 ? I'd like\n> > > to make\n> > > sure it doesn't cause any regression.\n> > \n> > hi Laurent, could you send me the patches directly and tell me\n> > where\n> > they apply?\n> \n> Better, I can provide a branch :-)\n> \n> https://git.libcamera.org/libcamera/pinchartl/libcamera.git/log/?h=simple/multicam\n> \n> > \n\n\nhi Laurent,\n\nusing the above branch, the cam application streams the highest mode\n(by default) just like the libcamera master branch. I don't see any\ndifference.\n\nDo you want to have anything else in this regard?\n\nthanks,\n                          martin","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id EDD73BD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 30 Aug 2021 13:44:16 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1C1466916A;\n\tMon, 30 Aug 2021 15:44:16 +0200 (CEST)","from comms.puri.sm (comms.puri.sm [159.203.221.185])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1048960258\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 30 Aug 2021 15:44:13 +0200 (CEST)","from localhost (localhost [127.0.0.1])\n\tby comms.puri.sm (Postfix) with ESMTP id 03213DFE25;\n\tMon, 30 Aug 2021 06:43:42 -0700 (PDT)","from comms.puri.sm ([127.0.0.1])\n\tby localhost (comms.puri.sm [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id ky-5PGib_ggt; Mon, 30 Aug 2021 06:43:37 -0700 (PDT)"],"Message-ID":"<7e1b7cccc2c51d427cbf5dbfd753037ca4c7cfef.camel@puri.sm>","From":"Martin Kepplinger <martin.kepplinger@puri.sm>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Date":"Mon, 30 Aug 2021 15:43:32 +0200","In-Reply-To":"<YSWeM4N7HBrG3/iD@pendragon.ideasonboard.com>","References":"<20210805222436.6263-1-laurent.pinchart@ideasonboard.com>\n\t<YQ/zN/aABEbwrlqZ@pendragon.ideasonboard.com>\n\t<f0a72caa57e3ec2b198ff20ebff587bb25c505da.camel@puri.sm>\n\t<YSWeM4N7HBrG3/iD@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","User-Agent":"Evolution 3.38.3-1 ","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH 00/10] Concurrent camera support in\n\tsimple pipeline handler","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19175,"web_url":"https://patchwork.libcamera.org/comment/19175/","msgid":"<YSztcB57EBp3c+CW@pendragon.ideasonboard.com>","date":"2021-08-30T14:38:40","subject":"Re: [libcamera-devel] [PATCH 00/10] Concurrent camera support in\n\tsimple pipeline handler","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Martin,\n\nOn Mon, Aug 30, 2021 at 03:43:32PM +0200, Martin Kepplinger wrote:\n> Am Mittwoch, dem 25.08.2021 um 04:34 +0300 schrieb Laurent Pinchart:\n> > On Tue, Aug 24, 2021 at 04:57:15PM +0200, Martin Kepplinger wrote:\n> > > Am Sonntag, dem 08.08.2021 um 18:07 +0300 schrieb Laurent Pinchart:\n> > > > Hi Martin,\n> > > > \n> > > > Would you be able to test this series on the Librem5 ? I'd like to make\n> > > > sure it doesn't cause any regression.\n> > > \n> > > hi Laurent, could you send me the patches directly and tell me\n> > > where\n> > > they apply?\n> > \n> > Better, I can provide a branch :-)\n> > \n> > https://git.libcamera.org/libcamera/pinchartl/libcamera.git/log/?h=simple/multicam\n> \n> hi Laurent,\n> \n> using the above branch, the cam application streams the highest mode\n> (by default) just like the libcamera master branch. I don't see any\n> difference.\n> \n> Do you want to have anything else in this regard?\n\nThank you for testing. This is all I need. Can I add a\n\nTested-by: Martin Kepplinger <martin.kepplinger@puri.sm>\n\nto all the patches in the series ?","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 000A4BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 30 Aug 2021 14:38:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7E7EA69169;\n\tMon, 30 Aug 2021 16:38:56 +0200 (CEST)","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 660AC60258\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 30 Aug 2021 16:38:55 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C94235A7;\n\tMon, 30 Aug 2021 16:38:54 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"Iq6Ak2Qt\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1630334335;\n\tbh=EllBfgR2Y62Rk5xjpu11BEyfjjeyTYo8S/kNDjjV+x4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Iq6Ak2QtaVadmuSQEqS2r+DzBr7ibzueyGxrZhw3u4+PJf56Mjvgzijh2OJBEUHrk\n\tjrBKIVIZ9kwL1g0ykCE7uGEIUfLxbRFP6r8Byrqx8Iiz8srMZgbGrgssQZNUeZsf6h\n\tpdF0/c8P0Kzd6bw9l6GpIBRiaSRM1leIJGC9+AfI=","Date":"Mon, 30 Aug 2021 17:38:40 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Martin Kepplinger <martin.kepplinger@puri.sm>","Message-ID":"<YSztcB57EBp3c+CW@pendragon.ideasonboard.com>","References":"<20210805222436.6263-1-laurent.pinchart@ideasonboard.com>\n\t<YQ/zN/aABEbwrlqZ@pendragon.ideasonboard.com>\n\t<f0a72caa57e3ec2b198ff20ebff587bb25c505da.camel@puri.sm>\n\t<YSWeM4N7HBrG3/iD@pendragon.ideasonboard.com>\n\t<7e1b7cccc2c51d427cbf5dbfd753037ca4c7cfef.camel@puri.sm>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<7e1b7cccc2c51d427cbf5dbfd753037ca4c7cfef.camel@puri.sm>","Subject":"Re: [libcamera-devel] [PATCH 00/10] Concurrent camera support in\n\tsimple pipeline handler","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19178,"web_url":"https://patchwork.libcamera.org/comment/19178/","msgid":"<40c9c4e5cadd5c11314ba3bfeeb3c030e55834fd.camel@puri.sm>","date":"2021-08-30T15:32:14","subject":"Re: [libcamera-devel] [PATCH 00/10] Concurrent camera support in\n\tsimple pipeline handler","submitter":{"id":93,"url":"https://patchwork.libcamera.org/api/people/93/","name":"Martin Kepplinger","email":"martin.kepplinger@puri.sm"},"content":"Am Montag, dem 30.08.2021 um 17:38 +0300 schrieb Laurent Pinchart:\n> Hi Martin,\n> \n> On Mon, Aug 30, 2021 at 03:43:32PM +0200, Martin Kepplinger wrote:\n> > Am Mittwoch, dem 25.08.2021 um 04:34 +0300 schrieb Laurent\n> > Pinchart:\n> > > On Tue, Aug 24, 2021 at 04:57:15PM +0200, Martin Kepplinger\n> > > wrote:\n> > > > Am Sonntag, dem 08.08.2021 um 18:07 +0300 schrieb Laurent\n> > > > Pinchart:\n> > > > > Hi Martin,\n> > > > > \n> > > > > Would you be able to test this series on the Librem5 ? I'd\n> > > > > like to make\n> > > > > sure it doesn't cause any regression.\n> > > > \n> > > > hi Laurent, could you send me the patches directly and tell me\n> > > > where\n> > > > they apply?\n> > > \n> > > Better, I can provide a branch :-)\n> > > \n> > > https://git.libcamera.org/libcamera/pinchartl/libcamera.git/log/?h=simple/multicam\n> > \n> > hi Laurent,\n> > \n> > using the above branch, the cam application streams the highest\n> > mode\n> > (by default) just like the libcamera master branch. I don't see any\n> > difference.\n> > \n> > Do you want to have anything else in this regard?\n> \n> Thank you for testing. This is all I need. Can I add a\n> \n> Tested-by: Martin Kepplinger <martin.kepplinger@puri.sm>\n> \n> to all the patches in the series ?\n> \n\nyes, you can. thanks,\n\n                           martin","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 614E4BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 30 Aug 2021 15:32:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BAA6E6916A;\n\tMon, 30 Aug 2021 17:32:55 +0200 (CEST)","from comms.puri.sm (comms.puri.sm [159.203.221.185])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A922C60258\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 30 Aug 2021 17:32:54 +0200 (CEST)","from localhost (localhost [127.0.0.1])\n\tby comms.puri.sm (Postfix) with ESMTP id 0F8C8DFE1E;\n\tMon, 30 Aug 2021 08:32:23 -0700 (PDT)","from comms.puri.sm ([127.0.0.1])\n\tby localhost (comms.puri.sm [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 6-y2Ek9G1IWT; Mon, 30 Aug 2021 08:32:18 -0700 (PDT)"],"Message-ID":"<40c9c4e5cadd5c11314ba3bfeeb3c030e55834fd.camel@puri.sm>","From":"Martin Kepplinger <martin.kepplinger@puri.sm>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Date":"Mon, 30 Aug 2021 17:32:14 +0200","In-Reply-To":"<YSztcB57EBp3c+CW@pendragon.ideasonboard.com>","References":"<20210805222436.6263-1-laurent.pinchart@ideasonboard.com>\n\t<YQ/zN/aABEbwrlqZ@pendragon.ideasonboard.com>\n\t<f0a72caa57e3ec2b198ff20ebff587bb25c505da.camel@puri.sm>\n\t<YSWeM4N7HBrG3/iD@pendragon.ideasonboard.com>\n\t<7e1b7cccc2c51d427cbf5dbfd753037ca4c7cfef.camel@puri.sm>\n\t<YSztcB57EBp3c+CW@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","User-Agent":"Evolution 3.38.3-1 ","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH 00/10] Concurrent camera support in\n\tsimple pipeline handler","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]