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