[libcamera-devel] [PATCH v5 0/6] Introduce UVC hotplugging support

Umang Jain email at uajain.com
Tue Jun 16 21:45:32 CEST 2020


v4->v5:
  - Rework "libcamera: CameraManager: Drop the vector of created
    PipelineHandlers" commit to guard against the possibility of
    pipeline handler getting deleted in PipelineHandler::disconnect().
    Add a _lot_ of documentation to it via commit message and a comment.
  - Make sure no use-after-free errors are present when the unit-test
    runs under valgrind. Fold the patch given by Laurent in previous
    review to properly address and document it.
  - Provide more past context to "libcamera: CameraManager: Drop the
    vector of created PipelineHandlers" in commit message, to 'why'
    pipes_ vector is not needed anymore.
  - Few typos fixes.

v3->v4:
  - Introduce one additional commit to eliminate Pipehandlers' vector
    from CameraManager. It was leaving behind a leaked reference which
    was causing unclean unbind->bind operation (due to dangling dirs)
    for the hotplug unit test to run.
  - Simplify hotplug unit test with use of std::ofstream.
  - Change CameraManager::Private::addCamera() signature to accept
    Camera arg as pass-by-value instead of pass-by-reference.
  - qcam: Finalize HotplugEvent naming with ::HotPlug and ::HotUnplug
  - Few small improvements in commit messages and rebase. 

Umang Jain (6):
  libcamera: CameraManager: Drop the vector of created PipelineHandlers
  libcamera: camera_manager: Refactor pipelines creation into separate
    function
  libcamera: device_enumerator: Emit a signal when new devices are added
  libcamera: camera_manager: Introduce signals when a camera is added or
    removed
  qcam: main_window: Introduce initial hotplug support
  tests: Introduce hotplug hot-unplug unit test

 include/libcamera/camera_manager.h            |   6 +-
 .../libcamera/internal/device_enumerator.h    |   4 +
 src/libcamera/camera_manager.cpp              |  65 ++++++---
 src/libcamera/device_enumerator.cpp           |  13 ++
 src/libcamera/pipeline_handler.cpp            |  20 ++-
 src/qcam/main_window.cpp                      |  76 +++++++++++
 src/qcam/main_window.h                        |   6 +
 test/hotplug-cameras.cpp                      | 128 ++++++++++++++++++
 test/meson.build                              |   1 +
 9 files changed, 298 insertions(+), 21 deletions(-)
 create mode 100644 test/hotplug-cameras.cpp

-- 
2.26.2



More information about the libcamera-devel mailing list