{"id":870,"url":"https://patchwork.libcamera.org/api/1.1/covers/870/?format=json","web_url":"https://patchwork.libcamera.org/cover/870/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/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":"<20190403011221.12711-1-niklas.soderlund@ragnatech.se>","date":"2019-04-03T01:12:16","name":"[libcamera-devel,0/5] libcamera: camera: Add support for stream roles","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/1.1/people/5/?format=json","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"mbox":"https://patchwork.libcamera.org/cover/870/mbox/","series":[{"id":232,"url":"https://patchwork.libcamera.org/api/1.1/series/232/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=232","date":"2019-04-03T01:12:16","name":"libcamera: camera: Add support for stream roles","version":1,"mbox":"https://patchwork.libcamera.org/series/232/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/870/comments/","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from bin-mail-out-06.binero.net (bin-mail-out-06.binero.net\n\t[195.74.38.229])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EFD06610B3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  3 Apr 2019 03:12:27 +0200 (CEST)","from bismarck.berto.se (unknown [89.233.230.99])\n\tby bin-vsp-out-03.atm.binero.net (Halon) with ESMTPA\n\tid 8736370b-55ad-11e9-8144-0050569116f7;\n\tWed, 03 Apr 2019 03:12:23 +0200 (CEST)"],"X-Halon-ID":"8736370b-55ad-11e9-8144-0050569116f7","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":"Wed,  3 Apr 2019 03:12:16 +0200","Message-Id":"<20190403011221.12711-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 0/5] libcamera: camera: Add support for\n\tstream roles","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, 03 Apr 2019 01:12:28 -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 roles 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\nNiklas Söderlund (5):\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: stream: Add basic stream roles definitions\n  libcamera: camera: Add support for stream roles\n\n include/libcamera/camera.h               |  3 +-\n include/libcamera/stream.h               | 41 +++++++++++\n src/cam/main.cpp                         | 35 ++++++----\n src/libcamera/camera.cpp                 | 30 +++-----\n src/libcamera/include/pipeline_handler.h |  2 +-\n src/libcamera/pipeline/ipu3/ipu3.cpp     |  4 +-\n src/libcamera/pipeline/uvcvideo.cpp      |  6 +-\n src/libcamera/pipeline/vimc.cpp          |  6 +-\n src/libcamera/pipeline_handler.cpp       |  8 +--\n src/libcamera/stream.cpp                 | 88 ++++++++++++++++++++++++\n src/qcam/main_window.cpp                 |  5 +-\n test/camera/camera_test.cpp              | 25 +++----\n test/camera/camera_test.h                |  3 +-\n test/camera/capture.cpp                  |  7 +-\n test/camera/configuration_default.cpp    | 32 ++-------\n test/camera/configuration_set.cpp        |  5 +-\n test/camera/statemachine.cpp             |  4 +-\n 17 files changed, 196 insertions(+), 108 deletions(-)"}