{"id":1837,"url":"https://patchwork.libcamera.org/api/1.1/covers/1837/?format=json","web_url":"https://patchwork.libcamera.org/cover/1837/","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":"<20190818011329.14499-1-laurent.pinchart@ideasonboard.com>","date":"2019-08-18T01:13:15","name":"[libcamera-devel,00/14] Assorted fixes for Android camera HAL","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/1.1/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/1837/mbox/","series":[{"id":464,"url":"https://patchwork.libcamera.org/api/1.1/series/464/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=464","date":"2019-08-18T01:13:15","name":"Assorted fixes for Android camera HAL","version":1,"mbox":"https://patchwork.libcamera.org/series/464/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/1837/comments/","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5A9A960BE5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 18 Aug 2019 03:13:40 +0200 (CEST)","from pendragon.bb.dnainternet.fi\n\t(dfj612yhrgyx302h3jwwy-3.rev.dnainternet.fi\n\t[IPv6:2001:14ba:21f5:5b00:ce28:277f:58d7:3ca4])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C95F62AF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 18 Aug 2019 03:13:39 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1566090820;\n\tbh=JPGCH7895pQKeas4XQ+reYd9zfSrpmrSHkBOhAKjiYg=;\n\th=From:To:Subject:Date:From;\n\tb=VaaADpdI3WUNUiSxIz7QXvEp+grY9x71uNT6ub80vtqOAmIZikdAvID9ZD/AQPkG9\n\tQKsXarBdIu6nZhQ6Sf42HiaRhtjuyx94GtlLmjWmZZUC8mzCZ/2UKPNPeElhc7ZHBD\n\tKnZlJJVRFJF+Ib6Ua9z5e5eCgnCIkTG7LgGtGyXU=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Sun, 18 Aug 2019 04:13:15 +0300","Message-Id":"<20190818011329.14499-1-laurent.pinchart@ideasonboard.com>","X-Mailer":"git-send-email 2.21.0","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH 00/14] Assorted fixes for Android camera\n\tHAL","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":"Sun, 18 Aug 2019 01:13:40 -0000"},"content":"Hello,\n\nWhile trying to debug an issue on a recent Chromium OS image, I noticed\nthat the camera service crashes when exiting. Investigating the issue\nled to this patch series.\n\nThe main goal of this series is to improve destruction of resources at\ncleanup time, mainly through removal of the CameraManager::instance()\nmethod and making the CameraManager class manually constructible. The\nrationale is explained in path 13/14.\n\nPatches 01/14, 05/14, 06/14 and 09/14 are miscellaneous fixes (with\n05/14 notably fixing a compilation error on Chromium OS). Patches 02/14\nto 04/14, 07/14 and 08/14 then follow by preparing for the removal of\nCameraManager::instance().\n\nPatch 10/14 to 14/14 free, release or destroy resources in the camera\nHAL at cleanup time, with 13/14 removing Camera::instance() tree-wide.\n\nI would like to fast-track at least 05/14 to fix the build, reviews will\nbe appreciated.\n\nLaurent Pinchart (14):\n  libcamera: device_enumerator: Print media device name in error message\n  libcamera: proxy: Get event dispatcher from current thread\n  qcam: Remove double stop of the camera manager\n  qcam: Pass camera manager to MainWindow class\n  test: event-thread: Fix compilation on Chromium OS\n  test: unixsocket: Fix typo in error message\n  test: Get event dispatcher from current thread\n  test: camera: Use the CameraManager from the CameraTest base class\n  android: Pass Camera shared pointer to CameraDevice by const reference\n  android: camera_hal_manager: Stop thread when destroying\n  android: camera_hal_manager: Remove unused close() method\n  android: camera_hal_manager: Clean up resources when terminating\n  libcamera: camera_manager: Construct CameraManager instances manually\n  android: camera_device: Store static metadata in cache\n\n include/libcamera/camera_manager.h            | 12 ++---\n src/android/camera_device.cpp                 | 44 +++++++++----------\n src/android/camera_device.h                   |  2 +-\n src/android/camera_hal_manager.cpp            | 28 +++++++-----\n src/android/camera_hal_manager.h              |  3 +-\n src/android/camera_proxy.cpp                  |  2 +-\n src/android/camera_proxy.h                    |  2 +-\n src/cam/main.cpp                              |  8 +++-\n src/libcamera/camera_manager.cpp              | 36 +++++++--------\n src/libcamera/device_enumerator.cpp           |  3 +-\n .../proxy/worker/ipa_proxy_linux_worker.cpp   |  4 +-\n src/qcam/main.cpp                             |  6 ++-\n src/qcam/main_window.cpp                      |  9 ++--\n src/qcam/main_window.h                        |  5 ++-\n test/camera/buffer_import.cpp                 |  2 +-\n test/camera/camera_test.cpp                   |  3 +-\n test/camera/camera_test.h                     |  4 +-\n test/camera/capture.cpp                       |  2 +-\n test/controls/control_list.cpp                |  3 +-\n test/event-dispatcher.cpp                     |  4 +-\n test/event-thread.cpp                         |  6 ++-\n test/event.cpp                                |  4 +-\n test/ipc/unixsocket.cpp                       |  8 ++--\n test/list-cameras.cpp                         | 11 ++---\n test/log/log_process.cpp                      |  4 +-\n test/meson.build                              |  6 +--\n test/object-invoke.cpp                        |  3 +-\n test/pipeline/ipu3/ipu3_pipeline_test.cpp     |  3 +-\n test/process/process_test.cpp                 |  4 +-\n test/timer.cpp                                |  4 +-\n test/v4l2_videodevice/buffer_sharing.cpp      |  4 +-\n test/v4l2_videodevice/capture_async.cpp       |  4 +-\n test/v4l2_videodevice/v4l2_m2mdevice.cpp      |  4 +-\n 33 files changed, 132 insertions(+), 115 deletions(-)"}