Show a cover letter.

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

{
    "id": 940,
    "url": "https://patchwork.libcamera.org/api/1.1/covers/940/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/940/",
    "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": "<20190408134817.15247-1-niklas.soderlund@ragnatech.se>",
    "date": "2019-04-08T13:48:09",
    "name": "[libcamera-devel,v4,0/8] libcamera: stream: Add basic stream usages",
    "submitter": {
        "id": 5,
        "url": "https://patchwork.libcamera.org/api/1.1/people/5/?format=api",
        "name": "Niklas Söderlund",
        "email": "niklas.soderlund@ragnatech.se"
    },
    "mbox": "https://patchwork.libcamera.org/cover/940/mbox/",
    "series": [
        {
            "id": 245,
            "url": "https://patchwork.libcamera.org/api/1.1/series/245/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=245",
            "date": "2019-04-08T13:48:09",
            "name": "libcamera: stream: Add basic stream usages",
            "version": 4,
            "mbox": "https://patchwork.libcamera.org/series/245/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/940/comments/",
    "headers": {
        "Return-Path": "<niklas.soderlund@ragnatech.se>",
        "Received": [
            "from bin-mail-out-05.binero.net (bin-mail-out-05.binero.net\n\t[195.74.38.228])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4D54060004\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Apr 2019 15:48:29 +0200 (CEST)",
            "from bismarck.berto.se (unknown [89.233.230.99])\n\tby bin-vsp-out-01.atm.binero.net (Halon) with ESMTPA\n\tid f44bb10a-5a04-11e9-846a-005056917a89;\n\tMon, 08 Apr 2019 15:48:22 +0200 (CEST)"
        ],
        "X-Halon-ID": "f44bb10a-5a04-11e9-846a-005056917a89",
        "Authorized-sender": "niklas@soderlund.pp.se",
        "From": "=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Mon,  8 Apr 2019 15:48:09 +0200",
        "Message-Id": "<20190408134817.15247-1-niklas.soderlund@ragnatech.se>",
        "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 v4 0/8] libcamera: stream: Add basic\n\tstream usages",
        "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, 08 Apr 2019 13:48:29 -0000"
    },
    "content": "Hi,\n\nThis series changes how the default configuration is retrieved from a\ncamera. It replaces the current method where applications have to\nenumerate a cameras streams and pick a set of them to ask for a default\nconfiguration and then try to tune them to its use-case.\n\nInstead the application asks libcamera for a set of stream usages to fit\nits use-case and receives in returns a set of streams with a default\nconfiguration (which it then can try and fine tune).\n\nThe goal of this series is to define the API towards the application and\nnot to implement smart choices in the pipeline handlers to actually\nselect streams. The main reason for this limitation in scope are that\nall upstream pipeline handlers only support one stream so the new API is\nnot really useful for pipeline handlers yet.\n\nThe code is tested with a modified cam tool (patches posted in a\ndifferent series) together with out of tree IPU3 patches to extend it to\nexpose more then one stream per camera. So the API is proven to work\nwith multiple streams and can support capturing multiple streams in the\nsame request.\n\n* Changes since v1\n- Renamed StreamRole to StreamUsage\n- Made geometry.h public header and use Size.\n- Added CameraConfiguration object to handle mapping of stream usages to\n  stream configurations.\n- Added more documentation, thanks all patient reviewers!\n\n- Changes since v2\n- Extend CameraConfiguratio with .valid(), ability use operator[](Stream\n  *) in a const context and add operator[](unsinged int) to fetch stream\n  pointers based on insertion index.\n- Fixed up a lot of documentation.\n- Added geometry.h to meason.build.\n- Camera::configureStreams() and PipelineHandler::configureStreams()\n  take a const CameraConfiguration.\n- Dropped #include <libcamera/stream.h> from camera.h.\n\n- Changes since v3\n- Add const Stream *CameraConfiguration::front() const.\n- Rename empty() and valid() to isEmpty() and isValid().\n- Improved the documentation.\n\nNiklas Söderlund (8):\n  cam: Rework how streams configuration is prepared\n  test: camera: Remove streams argument from configurationValid()\n  test: camera: Remove test for bad Stream IDs\n  libcamera: Make geometry.h a public header\n  libcamera: stream: Add basic stream usages\n  libcamera: camera: Add support for stream usages\n  libcamera: camera: Add CameraConfiguration\n  libcamera: Switch to CameraConfiguration\n\n include/libcamera/camera.h                    |  36 ++-\n .../include => include/libcamera}/geometry.h  |   0\n include/libcamera/meson.build                 |   1 +\n include/libcamera/stream.h                    |  40 +++\n src/cam/main.cpp                              |  34 +--\n src/libcamera/camera.cpp                      | 243 +++++++++++++++---\n src/libcamera/geometry.cpp                    |   2 +-\n src/libcamera/include/formats.h               |   2 +-\n src/libcamera/include/pipeline_handler.h      |   8 +-\n src/libcamera/include/v4l2_subdevice.h        |   3 +-\n src/libcamera/pipeline/ipu3/ipu3.cpp          |  14 +-\n src/libcamera/pipeline/uvcvideo.cpp           |  18 +-\n src/libcamera/pipeline/vimc.cpp               |  18 +-\n src/libcamera/pipeline_handler.cpp            |  16 +-\n src/libcamera/stream.cpp                      |  92 +++++++\n src/libcamera/v4l2_subdevice.cpp              |   3 +-\n src/qcam/main_window.cpp                      |   5 +-\n src/qcam/main_window.h                        |   2 +-\n test/camera/camera_test.cpp                   |  27 --\n test/camera/camera_test.h                     |   3 -\n test/camera/capture.cpp                       |  11 +-\n test/camera/configuration_default.cpp         |  40 +--\n test/camera/configuration_set.cpp             |   9 +-\n test/camera/statemachine.cpp                  |   6 +-\n test/v4l2_subdevice/list_formats.cpp          |   3 +-\n 25 files changed, 462 insertions(+), 174 deletions(-)\n rename {src/libcamera/include => include/libcamera}/geometry.h (100%)"
}