{"id":2242,"url":"https://patchwork.libcamera.org/api/1.1/series/2242/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=2242","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":""},"name":"Multi-camera support in the cam application","date":"2021-07-15T21:14:26","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/1.1/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"version":3,"total":33,"received_total":33,"received_all":true,"mbox":"https://patchwork.libcamera.org/series/2242/mbox/","cover_letter":{"id":12971,"url":"https://patchwork.libcamera.org/api/1.1/covers/12971/?format=json","web_url":"https://patchwork.libcamera.org/cover/12971/","msgid":"<20210715211459.19373-1-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:26","name":"[libcamera-devel,v3,00/33] Multi-camera support in the cam application","mbox":"https://patchwork.libcamera.org/cover/12971/mbox/"},"patches":[{"id":12972,"url":"https://patchwork.libcamera.org/api/1.1/patches/12972/?format=json","web_url":"https://patchwork.libcamera.org/patch/12972/","msgid":"<20210715211459.19373-2-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:27","name":"[libcamera-devel,v3,01/33] cam: options: Make KeyValueParser::usage() private","mbox":"https://patchwork.libcamera.org/patch/12972/mbox/"},{"id":12973,"url":"https://patchwork.libcamera.org/api/1.1/patches/12973/?format=json","web_url":"https://patchwork.libcamera.org/patch/12973/","msgid":"<20210715211459.19373-3-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:28","name":"[libcamera-devel,v3,02/33] cam: options: Move Option struct to options.cpp","mbox":"https://patchwork.libcamera.org/patch/12973/mbox/"},{"id":12974,"url":"https://patchwork.libcamera.org/api/1.1/patches/12974/?format=json","web_url":"https://patchwork.libcamera.org/patch/12974/","msgid":"<20210715211459.19373-4-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:29","name":"[libcamera-devel,v3,03/33] cam: options: Document the options parser API","mbox":"https://patchwork.libcamera.org/patch/12974/mbox/"},{"id":12975,"url":"https://patchwork.libcamera.org/api/1.1/patches/12975/?format=json","web_url":"https://patchwork.libcamera.org/patch/12975/","msgid":"<20210715211459.19373-5-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:30","name":"[libcamera-devel,v3,04/33] cam: options: Move OptionValue class after OptionsParser","mbox":"https://patchwork.libcamera.org/patch/12975/mbox/"},{"id":12976,"url":"https://patchwork.libcamera.org/api/1.1/patches/12976/?format=json","web_url":"https://patchwork.libcamera.org/patch/12976/","msgid":"<20210715211459.19373-6-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:31","name":"[libcamera-devel,v3,05/33] cam: options: Add optionName() function to Option structure","mbox":"https://patchwork.libcamera.org/patch/12976/mbox/"},{"id":12977,"url":"https://patchwork.libcamera.org/api/1.1/patches/12977/?format=json","web_url":"https://patchwork.libcamera.org/patch/12977/","msgid":"<20210715211459.19373-7-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:32","name":"[libcamera-devel,v3,06/33] cam: options: Slit OptionsParser::usage() in two functions","mbox":"https://patchwork.libcamera.org/patch/12977/mbox/"},{"id":12978,"url":"https://patchwork.libcamera.org/api/1.1/patches/12978/?format=json","web_url":"https://patchwork.libcamera.org/patch/12978/","msgid":"<20210715211459.19373-8-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:33","name":"[libcamera-devel,v3,07/33] cam: options: Disable copy for parsers","mbox":"https://patchwork.libcamera.org/patch/12978/mbox/"},{"id":12979,"url":"https://patchwork.libcamera.org/api/1.1/patches/12979/?format=json","web_url":"https://patchwork.libcamera.org/patch/12979/","msgid":"<20210715211459.19373-9-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:34","name":"[libcamera-devel,v3,08/33] cam: options: Move key string left in usage() for key-value parser","mbox":"https://patchwork.libcamera.org/patch/12979/mbox/"},{"id":12980,"url":"https://patchwork.libcamera.org/api/1.1/patches/12980/?format=json","web_url":"https://patchwork.libcamera.org/patch/12980/","msgid":"<20210715211459.19373-10-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:35","name":"[libcamera-devel,v3,09/33] cam: options: Support parent-child relationship between options","mbox":"https://patchwork.libcamera.org/patch/12980/mbox/"},{"id":12981,"url":"https://patchwork.libcamera.org/api/1.1/patches/12981/?format=json","web_url":"https://patchwork.libcamera.org/patch/12981/","msgid":"<20210715211459.19373-11-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:36","name":"[libcamera-devel,v3,10/33] cam: options: Drop some OptionValue cast operators","mbox":"https://patchwork.libcamera.org/patch/12981/mbox/"},{"id":12982,"url":"https://patchwork.libcamera.org/api/1.1/patches/12982/?format=json","web_url":"https://patchwork.libcamera.org/patch/12982/","msgid":"<20210715211459.19373-12-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:37","name":"[libcamera-devel,v3,11/33] cam: options: Add empty() function to OptionValue class","mbox":"https://patchwork.libcamera.org/patch/12982/mbox/"},{"id":12983,"url":"https://patchwork.libcamera.org/api/1.1/patches/12983/?format=json","web_url":"https://patchwork.libcamera.org/patch/12983/","msgid":"<20210715211459.19373-13-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:38","name":"[libcamera-devel,v3,12/33] cam: stream_options: Use OptionValue::empty() to test if option is set","mbox":"https://patchwork.libcamera.org/patch/12983/mbox/"},{"id":12984,"url":"https://patchwork.libcamera.org/api/1.1/patches/12984/?format=json","web_url":"https://patchwork.libcamera.org/patch/12984/","msgid":"<20210715211459.19373-14-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:39","name":"[libcamera-devel,v3,13/33] cam: options: Avoid copies of OptionvValue and KeyValueParser::Options","mbox":"https://patchwork.libcamera.org/patch/12984/mbox/"},{"id":12986,"url":"https://patchwork.libcamera.org/api/1.1/patches/12986/?format=json","web_url":"https://patchwork.libcamera.org/patch/12986/","msgid":"<20210715211459.19373-15-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:40","name":"[libcamera-devel,v3,14/33] cam: options: Fail parsing when non-option arguments are found","mbox":"https://patchwork.libcamera.org/patch/12986/mbox/"},{"id":12985,"url":"https://patchwork.libcamera.org/api/1.1/patches/12985/?format=json","web_url":"https://patchwork.libcamera.org/patch/12985/","msgid":"<20210715211459.19373-16-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:41","name":"[libcamera-devel,v3,15/33] cam: Rename Capture to CameraSession","mbox":"https://patchwork.libcamera.org/patch/12985/mbox/"},{"id":12987,"url":"https://patchwork.libcamera.org/api/1.1/patches/12987/?format=json","web_url":"https://patchwork.libcamera.org/patch/12987/","msgid":"<20210715211459.19373-17-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:42","name":"[libcamera-devel,v3,16/33] cam: camera_session: Access event loop through global instance","mbox":"https://patchwork.libcamera.org/patch/12987/mbox/"},{"id":12988,"url":"https://patchwork.libcamera.org/api/1.1/patches/12988/?format=json","web_url":"https://patchwork.libcamera.org/patch/12988/","msgid":"<20210715211459.19373-18-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:43","name":"[libcamera-devel,v3,17/33] cam: Move event loop exit from CameraSession to CamApp","mbox":"https://patchwork.libcamera.org/patch/12988/mbox/"},{"id":12990,"url":"https://patchwork.libcamera.org/api/1.1/patches/12990/?format=json","web_url":"https://patchwork.libcamera.org/patch/12990/","msgid":"<20210715211459.19373-19-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:44","name":"[libcamera-devel,v3,18/33] cam: Move event loop execution from CameraSession to CamApp","mbox":"https://patchwork.libcamera.org/patch/12990/mbox/"},{"id":12989,"url":"https://patchwork.libcamera.org/api/1.1/patches/12989/?format=json","web_url":"https://patchwork.libcamera.org/patch/12989/","msgid":"<20210715211459.19373-20-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:45","name":"[libcamera-devel,v3,19/33] cam: camera_session: Use std::unique_ptr<> to manage class members","mbox":"https://patchwork.libcamera.org/patch/12989/mbox/"},{"id":12991,"url":"https://patchwork.libcamera.org/api/1.1/patches/12991/?format=json","web_url":"https://patchwork.libcamera.org/patch/12991/","msgid":"<20210715211459.19373-21-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:46","name":"[libcamera-devel,v3,20/33] cam: Store camera session pointer in CamApp class","mbox":"https://patchwork.libcamera.org/patch/12991/mbox/"},{"id":12992,"url":"https://patchwork.libcamera.org/api/1.1/patches/12992/?format=json","web_url":"https://patchwork.libcamera.org/patch/12992/","msgid":"<20210715211459.19373-22-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:47","name":"[libcamera-devel,v3,21/33] cam: Move CameraConfiguration creation to CameraSession class","mbox":"https://patchwork.libcamera.org/patch/12992/mbox/"},{"id":12994,"url":"https://patchwork.libcamera.org/api/1.1/patches/12994/?format=json","web_url":"https://patchwork.libcamera.org/patch/12994/","msgid":"<20210715211459.19373-23-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:48","name":"[libcamera-devel,v3,22/33] cam: Move camera acquire to the CameraSession class","mbox":"https://patchwork.libcamera.org/patch/12994/mbox/"},{"id":12993,"url":"https://patchwork.libcamera.org/api/1.1/patches/12993/?format=json","web_url":"https://patchwork.libcamera.org/patch/12993/","msgid":"<20210715211459.19373-24-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:49","name":"[libcamera-devel,v3,23/33] cam: Use std::unique_ptr<> to manage CameraManager","mbox":"https://patchwork.libcamera.org/patch/12993/mbox/"},{"id":12996,"url":"https://patchwork.libcamera.org/api/1.1/patches/12996/?format=json","web_url":"https://patchwork.libcamera.org/patch/12996/","msgid":"<20210715211459.19373-25-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:50","name":"[libcamera-devel,v3,24/33] cam: Drop unneeded error check and message","mbox":"https://patchwork.libcamera.org/patch/12996/mbox/"},{"id":12995,"url":"https://patchwork.libcamera.org/api/1.1/patches/12995/?format=json","web_url":"https://patchwork.libcamera.org/patch/12995/","msgid":"<20210715211459.19373-26-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:51","name":"[libcamera-devel,v3,25/33] cam: Make CamApp::cameraName() static","mbox":"https://patchwork.libcamera.org/patch/12995/mbox/"},{"id":12998,"url":"https://patchwork.libcamera.org/api/1.1/patches/12998/?format=json","web_url":"https://patchwork.libcamera.org/patch/12998/","msgid":"<20210715211459.19373-27-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:52","name":"[libcamera-devel,v3,26/33] cam: Move camera session creation and monitoring setup to run()","mbox":"https://patchwork.libcamera.org/patch/12998/mbox/"},{"id":12997,"url":"https://patchwork.libcamera.org/api/1.1/patches/12997/?format=json","web_url":"https://patchwork.libcamera.org/patch/12997/","msgid":"<20210715211459.19373-28-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:53","name":"[libcamera-devel,v3,27/33] cam: Move printing of camera information to CameraSession class","mbox":"https://patchwork.libcamera.org/patch/12997/mbox/"},{"id":13000,"url":"https://patchwork.libcamera.org/api/1.1/patches/13000/?format=json","web_url":"https://patchwork.libcamera.org/patch/13000/","msgid":"<20210715211459.19373-29-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:54","name":"[libcamera-devel,v3,28/33] cam: Move session_ member variable to a local variable in run() function","mbox":"https://patchwork.libcamera.org/patch/13000/mbox/"},{"id":12999,"url":"https://patchwork.libcamera.org/api/1.1/patches/12999/?format=json","web_url":"https://patchwork.libcamera.org/patch/12999/","msgid":"<20210715211459.19373-30-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:55","name":"[libcamera-devel,v3,29/33] cam: Reorganize run() function and merge the two event loops","mbox":"https://patchwork.libcamera.org/patch/12999/mbox/"},{"id":13002,"url":"https://patchwork.libcamera.org/api/1.1/patches/13002/?format=json","web_url":"https://patchwork.libcamera.org/patch/13002/","msgid":"<20210715211459.19373-31-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:56","name":"[libcamera-devel,v3,30/33] cam: Allow specifying directories in the --file option","mbox":"https://patchwork.libcamera.org/patch/13002/mbox/"},{"id":13001,"url":"https://patchwork.libcamera.org/api/1.1/patches/13001/?format=json","web_url":"https://patchwork.libcamera.org/patch/13001/","msgid":"<20210715211459.19373-32-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:57","name":"[libcamera-devel,v3,31/33] cam: Make camera-related options sub-options of OptCamera","mbox":"https://patchwork.libcamera.org/patch/13001/mbox/"},{"id":13003,"url":"https://patchwork.libcamera.org/api/1.1/patches/13003/?format=json","web_url":"https://patchwork.libcamera.org/patch/13003/","msgid":"<20210715211459.19373-33-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:58","name":"[libcamera-devel,v3,32/33] cam: Add camera index to file name of capture frames","mbox":"https://patchwork.libcamera.org/patch/13003/mbox/"},{"id":13004,"url":"https://patchwork.libcamera.org/api/1.1/patches/13004/?format=json","web_url":"https://patchwork.libcamera.org/patch/13004/","msgid":"<20210715211459.19373-34-laurent.pinchart@ideasonboard.com>","date":"2021-07-15T21:14:59","name":"[libcamera-devel,v3,33/33] cam: Support using multiple cameras concurrently","mbox":"https://patchwork.libcamera.org/patch/13004/mbox/"}]}