{"id":515,"url":"https://patchwork.libcamera.org/api/covers/515/?format=json","web_url":"https://patchwork.libcamera.org/cover/515/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20190206060818.13907-1-laurent.pinchart@ideasonboard.com>","date":"2019-02-06T06:07:51","name":"[libcamera-devel,00/27] Capture frames throught requests","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/515/mbox/","series":[{"id":170,"url":"https://patchwork.libcamera.org/api/series/170/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=170","date":"2019-02-06T06:07:51","name":"Capture frames throught requests","version":1,"mbox":"https://patchwork.libcamera.org/series/170/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/515/comments/","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 66A6D6101F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  6 Feb 2019 07:08:23 +0100 (CET)","from pendragon.ideasonboard.com (d51A4137F.access.telenet.be\n\t[81.164.19.127])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id EA3C341\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  6 Feb 2019 07:08:22 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1549433303;\n\tbh=gEA+GAs1IXdqnCxAFEsoXMiL7KNyXu1k0EdpVWbB33A=;\n\th=From:To:Subject:Date:From;\n\tb=bO166y3NljRfIzOe3MIDie9hAHZNqt/Z51ybLgTuGQPbbfdmc5HC2WH5E8sk855Tf\n\teYhqImaD9VRzx031OzE7G3I7qySEjZdSymfqKWjvLauva0nFqHlkyBmZG51JeXtJ/m\n\tBhePQ2i++7QExGEpJ+EuZevBYwdh63wHE4xBdHPs=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Wed,  6 Feb 2019 08:07:51 +0200","Message-Id":"<20190206060818.13907-1-laurent.pinchart@ideasonboard.com>","X-Mailer":"git-send-email 2.19.2","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH 00/27] Capture frames throught requests","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, 06 Feb 2019 06:08:23 -0000"},"content":"Hello,\n\nThis patch series implements support for capturing frames through\nrequests. This serves primarly as a sketch of the camera API exposed to\napplications, and is still missing many features, but shows how the\nlibcamera API could be exercized.\n\nAll three pipeline handlers (UVC, IPU3 and VIMC) are implemented.\n\nJacopo Mondi (6):\n  libcamera: v4l2_device: Add comments to method parameters\n  libcamera: Add geometry.h\n  libcamera: Add V4L2Subdevice\n  libcamera: Provide a Request object\n  libcamera: pipeline: ipu3: Create video devices and subdevices\n  libcamera: pipeline: ipu3: Implement capture support\n\nKieran Bingham (10):\n  libcamera: Add Buffer Management\n  test: v4l2_device: Use DeviceEnumerator to find a UVCVideo\n  libcamera: v4l2_device: Request buffers from the device\n  test: v4l2_device: Add request_buffers test\n  libcamera: v4l2_device: Implement queue/dequeue operations\n  libcamera: v4l2_device: Implement stream{On,Off}\n  test: v4l2_device: Add StreamOn/StreamOff test\n  test: v4l2_device: Provide asynchronous capture test\n  libcamera: stream: Construct a stream\n  libcamera: pipeline: uvcvideo: Implement capture support\n\nNiklas Söderlund (11):\n  libcamera: v4l2_device: Update dequeued buffer information\n  libcamera: stream: Add stream configuration to the stream object\n  libcamera: pipeline_handler: Extend the interface to support capture\n  libcamera: camera: Add helper to check for exclusive access\n  libcamera: camera: Cache the stream configuration in the stream object\n  libcamera: camera: Extend the interface to support capture\n  libcamera: pipeline: vimc: Set a default format\n  libcamera: pipeline: vimc: Implement capture support\n  cam: Add capture operation\n  cam: Add BufferWriter helper\n  cam: Add option to write raw frames to disk\n\n include/libcamera/buffer.h               |  82 ++++++\n include/libcamera/camera.h               |  15 +\n include/libcamera/libcamera.h            |   2 +\n include/libcamera/meson.build            |   2 +\n include/libcamera/request.h              |  44 +++\n include/libcamera/stream.h               |  22 +-\n src/cam/buffer_writer.cpp                |  63 +++++\n src/cam/buffer_writer.h                  |  25 ++\n src/cam/main.cpp                         | 162 +++++++++--\n src/cam/meson.build                      |   1 +\n src/libcamera/buffer.cpp                 | 279 +++++++++++++++++++\n src/libcamera/camera.cpp                 | 181 +++++++++++-\n src/libcamera/geometry.cpp               |  49 ++++\n src/libcamera/include/geometry.h         |  22 ++\n src/libcamera/include/pipeline_handler.h |  10 +\n src/libcamera/include/v4l2_device.h      |  33 ++-\n src/libcamera/include/v4l2_subdevice.h   |  51 ++++\n src/libcamera/meson.build                |   4 +\n src/libcamera/pipeline/ipu3/ipu3.cpp     | 227 ++++++++++++---\n src/libcamera/pipeline/uvcvideo.cpp      |  57 +++-\n src/libcamera/pipeline/vimc.cpp          |  63 ++++-\n src/libcamera/pipeline_handler.cpp       |  67 +++++\n src/libcamera/request.cpp                | 125 +++++++++\n src/libcamera/stream.cpp                 |  60 ++--\n src/libcamera/v4l2_device.cpp            | 341 ++++++++++++++++++++++-\n src/libcamera/v4l2_subdevice.cpp         | 265 ++++++++++++++++++\n test/v4l2_device/capture_async.cpp       |  86 ++++++\n test/v4l2_device/meson.build             |   3 +\n test/v4l2_device/request_buffers.cpp     |  32 +++\n test/v4l2_device/stream_on_off.cpp       |  35 +++\n test/v4l2_device/v4l2_device_test.cpp    |  34 ++-\n test/v4l2_device/v4l2_device_test.h      |  14 +-\n 32 files changed, 2350 insertions(+), 106 deletions(-)\n create mode 100644 include/libcamera/buffer.h\n create mode 100644 include/libcamera/request.h\n create mode 100644 src/cam/buffer_writer.cpp\n create mode 100644 src/cam/buffer_writer.h\n create mode 100644 src/libcamera/buffer.cpp\n create mode 100644 src/libcamera/geometry.cpp\n create mode 100644 src/libcamera/include/geometry.h\n create mode 100644 src/libcamera/include/v4l2_subdevice.h\n create mode 100644 src/libcamera/request.cpp\n create mode 100644 src/libcamera/v4l2_subdevice.cpp\n create mode 100644 test/v4l2_device/capture_async.cpp\n create mode 100644 test/v4l2_device/request_buffers.cpp\n create mode 100644 test/v4l2_device/stream_on_off.cpp"}