From patchwork Sun Dec 30 14:23:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 109 Return-Path: Received: from relay2-d.mail.gandi.net (relay2-d.mail.gandi.net [217.70.183.194]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id DB082600CC for ; Sun, 30 Dec 2018 15:23:20 +0100 (CET) X-Originating-IP: 87.16.51.54 Received: from uno.homenet.telecomitalia.it (host54-51-dynamic.16-87-r.retail.telecomitalia.it [87.16.51.54]) (Authenticated sender: jacopo@jmondi.org) by relay2-d.mail.gandi.net (Postfix) with ESMTPSA id 278BA40004; Sun, 30 Dec 2018 14:23:19 +0000 (UTC) From: Jacopo Mondi To: libcamera-devel@lists.libcamera.org Date: Sun, 30 Dec 2018 15:23:11 +0100 Message-Id: <20181230142314.16263-1-jacopo@jmondi.org> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 0/3] MediaDevice class and MediaObject classes X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Dec 2018 14:23:21 -0000 Hello this is 3rd version of MediaDevice and associated MediaObject classes. v1 available for reference here: https://lists.libcamera.org/pipermail/libcamera-devel/2018-December/000120.html v2 available for reference here: https://lists.libcamera.org/pipermail/libcamera-devel/2018-December/000181.html This iteration addresses comments received from Laurent on v2. Notable changes: - Use references to class instances and not global ids to reference MediaObjects from other MediaObjects - Remove devnode path from entities: they will be reworked anyhow when integrating with DeviceEnumerator - Add public method to get a list of entities in the media device - Remove functions to enable MediaLinks from the MediaDevice: it requires better discussions on which API to expose. - Make the media graph printout functiona part of media device tests. - Expand documentation for classes and public methods, polish doxygen and remove doxygen comments from private members. Tested locally using the printout test on VIMC and integrated webcam media devices. Valgrind does not report memory leaks. Thanks j Jacopo Mondi (3): libcamera: Add MediaObject class hierarchy libcamera: Add MediaDevice class test: Add media device test src/libcamera/include/media_device.h | 61 ++++ src/libcamera/include/media_object.h | 107 +++++++ src/libcamera/media_device.cpp | 370 ++++++++++++++++++++++++ src/libcamera/media_object.cpp | 281 ++++++++++++++++++ src/libcamera/meson.build | 4 + test/media_device/media_device_test.cpp | 175 +++++++++++ test/media_device/meson.build | 5 + test/meson.build | 4 + 8 files changed, 1007 insertions(+) create mode 100644 src/libcamera/include/media_device.h create mode 100644 src/libcamera/include/media_object.h create mode 100644 src/libcamera/media_device.cpp create mode 100644 src/libcamera/media_object.cpp create mode 100644 test/media_device/media_device_test.cpp create mode 100644 test/media_device/meson.build --- 2.20.1