{"id":62,"url":"https://patchwork.libcamera.org/api/1.1/covers/62/?format=json","web_url":"https://patchwork.libcamera.org/cover/62/","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":"<1545324285-16730-1-git-send-email-jacopo@jmondi.org>","date":"2018-12-20T16:44:43","name":"[libcamera-devel,0/2] Add MediaDevice and associated MediaObjects","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/1.1/people/3/?format=json","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"mbox":"https://patchwork.libcamera.org/cover/62/mbox/","series":[{"id":33,"url":"https://patchwork.libcamera.org/api/1.1/series/33/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=33","date":"2018-12-20T16:44:43","name":"Add MediaDevice and associated MediaObjects","version":1,"mbox":"https://patchwork.libcamera.org/series/33/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/62/comments/","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay10.mail.gandi.net (relay10.mail.gandi.net\n\t[217.70.178.230])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1873160B1F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 20 Dec 2018 17:45:01 +0100 (CET)","from w540.lan (2-224-242-101.ip172.fastwebnet.it [2.224.242.101])\n\t(Authenticated sender: jacopo@jmondi.org)\n\tby relay10.mail.gandi.net (Postfix) with ESMTPSA id 9BE8C240011;\n\tThu, 20 Dec 2018 16:45:00 +0000 (UTC)"],"From":"Jacopo Mondi <jacopo@jmondi.org>","To":"libcamera-devel@lists.libcamera.org","Date":"Thu, 20 Dec 2018 17:44:43 +0100","Message-Id":"<1545324285-16730-1-git-send-email-jacopo@jmondi.org>","X-Mailer":"git-send-email 2.7.4","Subject":"[libcamera-devel] [PATCH 0/2] Add MediaDevice and associated\n\tMediaObjects","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":"Thu, 20 Dec 2018 16:45:01 -0000"},"content":"Hello,\n   this two patches add a class hierarcy to represent the media device objects\nregistered in a media graph.\n\nThe first patch adds the hierarcy used to represent media entities, pads and\nlinks, while the second one adds a class that handles the media graph making\nuse of the here introduced MediaObjects.\n\nThe MediaDevice class allows enumerations of all media objects in the media\ngraph and supports handling of pad-2-pad links.\n\nThis classes will be used by pipeline managers to setup the media graph\nfor the selected use case, and they've been tested with a sketched pipeline\nmanager targetting Intel's IPU3 platforms.\n\nAs of now, the media device depends on receiving a static map that associates\neach entity with its video subdevice path. This might be modified once a media\nenumerator is available, and will provide said map by inspecting what's\navailable in the system.\n\nFor this reason, I have a unit test I'm not sharing yet as it needs to\nhardcode the entity-path map for the platform I'm currently developing for.\n\nAs a minor side note: comments. This code is over-commented, I know. I don't\nthink that's a bad thing in general, but as this aims to be the reference\nimplementation, I felt like it was worth commenting everything I could.\nWe decided to comment as much as we can in the .cpp file, to keep headers\nsimple and clean. I still tend to agree with this, but I'm open to discuss it\nif necessary.\n\nThanks\n   j\n\nJacopo Mondi (2):\n  libcamera: Add MediaObject class hierarchy\n  libcamera: Add MediaDevice class\n\n src/libcamera/include/media_device.h |  72 +++++\n src/libcamera/include/media_object.h | 119 +++++++\n src/libcamera/media_device.cpp       | 603 +++++++++++++++++++++++++++++++++++\n src/libcamera/media_object.cpp       | 302 ++++++++++++++++++\n src/libcamera/meson.build            |   2 +\n 5 files changed, 1098 insertions(+)\n create mode 100644 src/libcamera/include/media_device.h\n create mode 100644 src/libcamera/include/media_object.h\n create mode 100644 src/libcamera/media_device.cpp\n create mode 100644 src/libcamera/media_object.cpp\n\n--\n2.7.4"}