Show a cover letter.

GET /api/1.1/covers/1032/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 1032,
    "url": "https://patchwork.libcamera.org/api/1.1/covers/1032/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/1032/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20190418104715.22622-1-jacopo@jmondi.org>",
    "date": "2019-04-18T10:47:01",
    "name": "[libcamera-devel,v5,00/14] libcamera: ipu3: Multiple streams support",
    "submitter": {
        "id": 3,
        "url": "https://patchwork.libcamera.org/api/1.1/people/3/?format=api",
        "name": "Jacopo Mondi",
        "email": "jacopo@jmondi.org"
    },
    "mbox": "https://patchwork.libcamera.org/cover/1032/mbox/",
    "series": [
        {
            "id": 255,
            "url": "https://patchwork.libcamera.org/api/1.1/series/255/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=255",
            "date": "2019-04-18T10:47:01",
            "name": "libcamera: ipu3: Multiple streams support",
            "version": 5,
            "mbox": "https://patchwork.libcamera.org/series/255/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/1032/comments/",
    "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 BDE0660DC0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 18 Apr 2019 12:46:29 +0200 (CEST)",
            "from uno.lan (2-224-242-101.ip172.fastwebnet.it [2.224.242.101])\n\t(Authenticated sender: jacopo@jmondi.org)\n\tby relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 375471C0004;\n\tThu, 18 Apr 2019 10:46:29 +0000 (UTC)"
        ],
        "X-Originating-IP": "2.224.242.101",
        "From": "Jacopo Mondi <jacopo@jmondi.org>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Thu, 18 Apr 2019 12:47:01 +0200",
        "Message-Id": "<20190418104715.22622-1-jacopo@jmondi.org>",
        "X-Mailer": "git-send-email 2.21.0",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH v5 00/14] libcamera: ipu3: Multiple\n\tstreams support",
        "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, 18 Apr 2019 10:46:30 -0000"
    },
    "content": "Hello,\n   this series implements multiple stream support for IPU3 and contains\nwhat I've recently sent as\n\"[PATCH v7 0/8] libcamera: Framework changes to prepare for multiple streams support\"\n\nPatches from 0 to 8 were part of that series, I'm resending them here in the\nhope all the series could get in together.\nMost of these patches have been reviewed already, I just fixed:\n\"libcamera: camera: Validate Request before queueing it\"\nwhich was buggy, and I just noticed while testing multiple stream support\non top of it.\nIf you still have to look at v7 of the above mentioned series, you should look\nat this one instead.\n\nPatches from 9 to 14 extend the IPU3 pipeline handler to support operations\nfor multiple streams, up to two per cameras.\n\nI have included comments on v4 received from Laurent and Niklas and now the\npatches look much better, thanks you both for the comments.\n\nThe most relevant change is related to the long reply I gave to Niklas on v4's\n\"libcamera: ipu3: Queue requests for multiple streams\"\n\nThere I detailed how it was necessary to queue buffers to the 'output' node\nto have images processed by the ImgU and how I badly worked it around. We\nconcluded a kernel fix was needed to use dummy buffers in case no buffer has\nbeen made available from userspace. Well, I re-tested now, and it seems the\ndriver usese dummy buffers already, if the output node is \"enabled\" (aka the\nmedia link between it and the ImgU subdevice is active). With this current\nimplementation the 'output' node is active (as it was in v4, I cannot tell what\nchanged) and the driver uses dummy buffer, as I've verified enabling the\nipu3-imgu module debug output. For this reason the patch is greatly simplified\nand just simply queue buffers for the nodes part of the request.\n\nI have tested several stream combinations:\n- only viewfinder\n- only still capture\n- viewfinder + still capture\n- viewfinder + (viewfinder + still capture) every 10 frames (see patch 14/14)\n\nusing the cam application from the most recent master branch.\n\nPatches available at jmondi/imgu-multi-v5\n\nHopefully, we should be close to have this merged!\n\nThanks\n  j\n\nJacopo Mondi (14):\n  libcamera: stream: Make Stream inheritable\n  libcamera: camera: Pass the stream set to allocate/freeBuffers()\n  libcamera: camera: Don't call freeBuffer() on allocateBuffer() error\n  libcamera: v4l2_device: Propagate releaseBuffers() error\n  libcamera: request: Add hasPendingBuffers() method\n  libcamera: camera: Validate Request before queueing it\n  libcamera: request: Expose the Stream to Buffers map\n  libcamera: buffer: Store Request reference in Buffer\n  libcamera: ipu3: Create camera with 2 streams\n  libcamera: ipu3: Add multiple stream memory management\n  libcamera: ipu3: Queue requests for multiple streams\n  libcamera: ipu3: Connect viewfinder's BufferReady signal\n  libcamera: ipu3: Use roles in stream configuration\n  [HACK] still capture every 10 frames\n\n include/libcamera/buffer.h               |   6 +\n include/libcamera/request.h              |   3 +\n include/libcamera/stream.h               |   4 +-\n src/cam/main.cpp                         |  46 ++-\n src/libcamera/buffer.cpp                 |  25 +-\n src/libcamera/camera.cpp                 |  25 +-\n src/libcamera/include/pipeline_handler.h |   6 +-\n src/libcamera/pipeline/ipu3/ipu3.cpp     | 410 +++++++++++++++++------\n src/libcamera/pipeline/uvcvideo.cpp      |  13 +-\n src/libcamera/pipeline/vimc.cpp          |  13 +-\n src/libcamera/pipeline_handler.cpp       |  11 +-\n src/libcamera/request.cpp                |  37 +-\n src/libcamera/v4l2_device.cpp            |   3 +-\n 13 files changed, 453 insertions(+), 149 deletions(-)\n\n--\n2.21.0"
}