Show a cover letter.

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

{
    "id": 3006,
    "url": "https://patchwork.libcamera.org/api/covers/3006/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/3006/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/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": "<20200306202637.525587-1-nicolas@ndufresne.ca>",
    "date": "2020-03-06T20:26:10",
    "name": "[libcamera-devel,v3,00/27] GStreamer Element for libcamera",
    "submitter": {
        "id": 30,
        "url": "https://patchwork.libcamera.org/api/people/30/?format=api",
        "name": "Nicolas Dufresne",
        "email": "nicolas@ndufresne.ca"
    },
    "mbox": "https://patchwork.libcamera.org/cover/3006/mbox/",
    "series": [
        {
            "id": 705,
            "url": "https://patchwork.libcamera.org/api/series/705/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=705",
            "date": "2020-03-06T20:26:10",
            "name": "GStreamer Element for libcamera",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/705/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/3006/comments/",
    "headers": {
        "Return-Path": "<nicolas@ndufresne.ca>",
        "Received": [
            "from bhuna.collabora.co.uk (bhuna.collabora.co.uk\n\t[IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EBC0260424\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  6 Mar 2020 21:26:54 +0100 (CET)",
            "from nicolas-tpx395.localdomain (unknown [IPv6:2610:98:8005::527])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits))\n\t(No client certificate requested) (Authenticated sender: nicolas)\n\tby bhuna.collabora.co.uk (Postfix) with ESMTPSA id 5590D2970E7;\n\tFri,  6 Mar 2020 20:26:54 +0000 (GMT)"
        ],
        "From": "Nicolas Dufresne <nicolas@ndufresne.ca>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Nicolas Dufresne <nicolas.dufresne@collabora.com>",
        "Date": "Fri,  6 Mar 2020 15:26:10 -0500",
        "Message-Id": "<20200306202637.525587-1-nicolas@ndufresne.ca>",
        "X-Mailer": "git-send-email 2.24.1",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH v3 00/27] GStreamer Element for libcamera",
        "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>",
        "X-List-Received-Date": "Fri, 06 Mar 2020 20:26:55 -0000"
    },
    "content": "From: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n\nThis patchset introduces two GStreamer features for libcamera. A\nGstDeviceProvider that allow enumerating the cameras and a libcamerasrc element\nthe allow streaming from a selected camera.\n\nThis is an early implementation that is not feature complete. It is designed to\nsupport multiple streams even though it currently only allow one srcpad. The goal\nof this submission is to get an inital element merged so that further\nimprovement can happen incrementally.\n\nTo test these features, you'll need GStreamer 1.14 or more. To get the list of\ncameras you can run the following. Regression exist in the monitor of GStreamer\n1.16.2 that may cause a crash, and also in master that may show nothing.\nThis will be addressed in later release of GStreamer.\n\n  gst-device-monitor-1.0 Video/Source\n\nTo stream from a camera, you can use the following pipeline:\n\n  gst-launch-1.0 libcamerasrc ! videoconvert ! autovideosink\n\nChanges since v2:\n  - Fixed review comments\n  - Fix include order and seperation\n  - Fixed C++ member naming in C++ wrappers\n  - Fixed (provided by Jakub) a crash in caps generator\n  - Moved from custom callback to GObject signal in buffer pool\n\nChanges since v1:\n  - Fixed review comments\n  - Use a C++ class for glib mutex scoped locker\n  - Fixed a potential deadlock on exhausted buffer pool\n  - Minimum GStreamer requirement now set to 1.14\n\nJakub Adam (2):\n  gst: utils: Factor-out the task resume helper\n  gst: libcamerasrc: Prevent src task deadlock on exhausted buffer pool\n\nNicolas Dufresne (25):\n  Add GStreamer plugin and element skeleton\n  gst: Add utility to convert StreamFormats to GstCaps\n  gst: Add initial device provider\n  gst: utils: Add simple scoped lockers for GMutex and GRectMutex\n  gst: Add pads to the source\n  gst: libcamerasrc: Allocate and add static pad\n  gst: libcamerasrc: Add camera-name property\n  gst: libcamerasrc: Add a debug category\n  gst: libcamerasrc: Implement selection and acquisition\n  gst: libcamerasrc: Add a task for the streaming thread\n  gst: libcamerapad: Add a method to access the role\n  gst: libcamerasrc: Store the srcpad in a vector\n  gst: libcamerasrc: Send stream start event\n  gst: utils: Add StreamConfiguration helpers\n  gst: libcamerasrc: Implement minimal caps negotiation\n  gst: libcamerasrc: Push segment event\n  gst: Add a pool and an allocator implementation\n  gst: libcamerapad: Allow storing a pool\n  gst: libcamerasrc: Allocate and release buffers\n  gst: Add getters for Stream and FrameBuffer\n  gst: pad: Add method to store retrieve pending buffers\n  gst: libcamerasrc: Implement initial streaming\n  gst: libcamerasrc: Implement timestamp support\n  gst: libcamerasrc: Add a TODO comment\n  gst: Document dependencies and quick usage\n\n README.rst                              |  19 +\n meson_options.txt                       |   5 +\n src/gstreamer/gstlibcamera-utils.cpp    | 180 +++++++\n src/gstreamer/gstlibcamera-utils.h      |  73 +++\n src/gstreamer/gstlibcamera.c            |  27 +\n src/gstreamer/gstlibcameraallocator.cpp | 253 +++++++++\n src/gstreamer/gstlibcameraallocator.h   |  32 ++\n src/gstreamer/gstlibcamerapad.cpp       | 198 +++++++\n src/gstreamer/gstlibcamerapad.h         |  37 ++\n src/gstreamer/gstlibcamerapool.cpp      | 147 ++++++\n src/gstreamer/gstlibcamerapool.h        |  34 ++\n src/gstreamer/gstlibcameraprovider.cpp  | 238 +++++++++\n src/gstreamer/gstlibcameraprovider.h    |  23 +\n src/gstreamer/gstlibcamerasrc.cpp       | 654 ++++++++++++++++++++++++\n src/gstreamer/gstlibcamerasrc.h         |  22 +\n src/gstreamer/meson.build               |  30 ++\n src/meson.build                         |   2 +\n 17 files changed, 1974 insertions(+)\n create mode 100644 src/gstreamer/gstlibcamera-utils.cpp\n create mode 100644 src/gstreamer/gstlibcamera-utils.h\n create mode 100644 src/gstreamer/gstlibcamera.c\n create mode 100644 src/gstreamer/gstlibcameraallocator.cpp\n create mode 100644 src/gstreamer/gstlibcameraallocator.h\n create mode 100644 src/gstreamer/gstlibcamerapad.cpp\n create mode 100644 src/gstreamer/gstlibcamerapad.h\n create mode 100644 src/gstreamer/gstlibcamerapool.cpp\n create mode 100644 src/gstreamer/gstlibcamerapool.h\n create mode 100644 src/gstreamer/gstlibcameraprovider.cpp\n create mode 100644 src/gstreamer/gstlibcameraprovider.h\n create mode 100644 src/gstreamer/gstlibcamerasrc.cpp\n create mode 100644 src/gstreamer/gstlibcamerasrc.h\n create mode 100644 src/gstreamer/meson.build"
}