{"id":4065,"url":"https://patchwork.libcamera.org/api/covers/4065/?format=json","web_url":"https://patchwork.libcamera.org/cover/4065/","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":"<20200616194523.23268-1-email@uajain.com>","date":"2020-06-16T19:45:32","name":"[libcamera-devel,v5,0/6] Introduce UVC hotplugging support","submitter":{"id":1,"url":"https://patchwork.libcamera.org/api/people/1/?format=json","name":"Umang Jain","email":"email@uajain.com"},"mbox":"https://patchwork.libcamera.org/cover/4065/mbox/","series":[{"id":1009,"url":"https://patchwork.libcamera.org/api/series/1009/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=1009","date":"2020-06-16T19:45:33","name":"Introduce UVC hotplugging support","version":5,"mbox":"https://patchwork.libcamera.org/series/1009/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/4065/comments/","headers":{"Return-Path":"<bounces+15657259-5c31-libcamera-devel=lists.libcamera.org@em7280.uajain.com>","Received":["from o1.f.az.sendgrid.net (o1.f.az.sendgrid.net [208.117.55.132])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D73C1603C4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 16 Jun 2020 21:45:34 +0200 (CEST)","by filter0135p3las1.sendgrid.net with SMTP id\n\tfilter0135p3las1-31150-5EE9215C-100\n\t2020-06-16 19:45:32.775346366 +0000 UTC m=+696613.763536559","from mail.uajain.com (unknown)\n\tby ismtpd0008p1hnd1.sendgrid.net (SG) with ESMTP\n\tid bOjg1rY5Q3-ViCCarMv85g Tue, 16 Jun 2020 19:45:32.528 +0000 (UTC)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=uajain.com\n\theader.i=@uajain.com header.b=\"eZOXOXmb\"; \n\tdkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=uajain.com;\n\th=from:subject:mime-version:to:cc:content-type:\n\tcontent-transfer-encoding;\n\ts=s1; bh=GMq6a7YbGQ5jWaj9l4gSPCTWEOe6U+/nbpJJpx8q/Bg=;\n\tb=eZOXOXmbHuzQgeUoNq9O2iayxF/7R8zhwRcX+nw6llh1GohyWfEe1t2rYCtTak4nbOZt\n\tCoj1yfAK1r5ZwkUJFA53o13aia30M4fROx6sVJSX0LcSv8qaBaTIvUFQPyRBefU6f0qs13\n\tu8Ri8FFRuhOtcON/7hKbQjseth9o0LNeI=","From":"Umang Jain <email@uajain.com>","Date":"Tue, 16 Jun 2020 19:45:32 +0000 (UTC)","Message-Id":"<20200616194523.23268-1-email@uajain.com>","Mime-Version":"1.0","X-SG-EID":"1Q40EQ7YGir8a9gjSIAdTjhngY657NMk9ckeo4dbHZDiOpywc/L3L9rFqlwE4KPcZSRriRpMrvF+w7NThKsF/EM5+TBU7M/eEzrVLp9sOiTJEiVNMkPnbkKGOxghb1AS6dyNJXPF3G45mB89RKDxJ8i+2H010mcgb1grItPOnr0eaMHV4Seer5M4/Ftbwd34xRBNdFU9hJ0VadaM5vjMt5nNCnrF6kOmkMEaSAOHCniK9cwXUI9QNd64suapfkMk","To":"laurent.pinchart@ideasonboard.com, kieran.bingham@ideasonboard.com,\n\tlibcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=us-ascii","Content-Transfer-Encoding":"7bit","Subject":"[libcamera-devel] [PATCH v5 0/6] Introduce UVC hotplugging support","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":"Tue, 16 Jun 2020 19:45:35 -0000"},"content":"v4->v5:\n  - Rework \"libcamera: CameraManager: Drop the vector of created\n    PipelineHandlers\" commit to guard against the possibility of\n    pipeline handler getting deleted in PipelineHandler::disconnect().\n    Add a _lot_ of documentation to it via commit message and a comment.\n  - Make sure no use-after-free errors are present when the unit-test\n    runs under valgrind. Fold the patch given by Laurent in previous\n    review to properly address and document it.\n  - Provide more past context to \"libcamera: CameraManager: Drop the\n    vector of created PipelineHandlers\" in commit message, to 'why'\n    pipes_ vector is not needed anymore.\n  - Few typos fixes.\n\nv3->v4:\n  - Introduce one additional commit to eliminate Pipehandlers' vector\n    from CameraManager. It was leaving behind a leaked reference which\n    was causing unclean unbind->bind operation (due to dangling dirs)\n    for the hotplug unit test to run.\n  - Simplify hotplug unit test with use of std::ofstream.\n  - Change CameraManager::Private::addCamera() signature to accept\n    Camera arg as pass-by-value instead of pass-by-reference.\n  - qcam: Finalize HotplugEvent naming with ::HotPlug and ::HotUnplug\n  - Few small improvements in commit messages and rebase. \n\nUmang Jain (6):\n  libcamera: CameraManager: Drop the vector of created PipelineHandlers\n  libcamera: camera_manager: Refactor pipelines creation into separate\n    function\n  libcamera: device_enumerator: Emit a signal when new devices are added\n  libcamera: camera_manager: Introduce signals when a camera is added or\n    removed\n  qcam: main_window: Introduce initial hotplug support\n  tests: Introduce hotplug hot-unplug unit test\n\n include/libcamera/camera_manager.h            |   6 +-\n .../libcamera/internal/device_enumerator.h    |   4 +\n src/libcamera/camera_manager.cpp              |  65 ++++++---\n src/libcamera/device_enumerator.cpp           |  13 ++\n src/libcamera/pipeline_handler.cpp            |  20 ++-\n src/qcam/main_window.cpp                      |  76 +++++++++++\n src/qcam/main_window.h                        |   6 +\n test/hotplug-cameras.cpp                      | 128 ++++++++++++++++++\n test/meson.build                              |   1 +\n 9 files changed, 298 insertions(+), 21 deletions(-)\n create mode 100644 test/hotplug-cameras.cpp"}