[libcamera-devel,v7,00/13] Python bindings
mbox series

Message ID 20220505104104.70841-1-tomi.valkeinen@ideasonboard.com
Headers show
Series
  • Python bindings
Related show

Message

Tomi Valkeinen May 5, 2022, 10:40 a.m. UTC
Hi,

v7 of the Python Bindings series. Changes to v6:

- I updated the minimum required meson version to 0.56 to get the
  'patch_directory' feature for wraps. That's actually in 0.55, but 0.56
  brings in meson.project_source_root and meson.project_build_root, so I
  thought to go to 0.56 right away.

- The pybind11 subproject no longer fetches the branch from my github
  repo, but uses the official pybind11 repo, from which it takes the
  smart_holder branch. To enable meson build, I use the meson's overlay
  feature to provide a meson.build, located in
  subprojects/packagefiles/pybind11/meson.build.

- I added multiple patches on top, taken from raspberrypi's picamera2
  branch. A few are almost unchanged, some I changed quite a bit, and
  the fb mmap change I implemented in a totally different way
  (MappedFrameBuffer). These are as separate patches, but could be
  squashed.

 Tomi

David Plowman (3):
  py: add support for the ColorSpace
  py: support controls in the start method
  py: add support for setting Rectangle and Size controls

Tomi Valkeinen (10):
  meson: require meson 0.56+
  meson: use new project_*_root() functions
  meson: add 'check: true' for run_command() calls
  Add Python bindings
  py: generate control enums from yaml
  py: add unittests.py
  py: Add cam.py
  py: support setting array-controls
  py: add Transform
  py: implement MappedFrameBuffer

 Documentation/meson.build                     |   4 +-
 README.rst                                    |   4 +-
 include/libcamera/ipa/meson.build             |   8 +-
 meson.build                                   |  17 +-
 meson_options.txt                             |   5 +
 src/libcamera/meson.build                     |   4 +-
 src/meson.build                               |   1 +
 src/py/cam/cam.py                             | 484 ++++++++++++++
 src/py/cam/cam_kms.py                         | 183 ++++++
 src/py/cam/cam_null.py                        |  47 ++
 src/py/cam/cam_qt.py                          | 354 ++++++++++
 src/py/cam/cam_qtgl.py                        | 385 +++++++++++
 src/py/cam/gl_helpers.py                      |  74 +++
 src/py/libcamera/__init__.py                  |  80 +++
 src/py/libcamera/gen-py-control-enums.py      |  95 +++
 src/py/libcamera/meson.build                  |  53 ++
 src/py/libcamera/pyenums.cpp                  |  53 ++
 src/py/libcamera/pyenums_generated.cpp.in     |  21 +
 src/py/libcamera/pymain.cpp                   | 608 ++++++++++++++++++
 src/py/meson.build                            |   1 +
 subprojects/.gitignore                        |   3 +-
 subprojects/packagefiles/pybind11/meson.build |   8 +
 subprojects/pybind11.wrap                     |   8 +
 test/meson.build                              |   1 +
 test/py/meson.build                           |  17 +
 test/py/unittests.py                          | 368 +++++++++++
 .../include/libcamera/ipa/meson.build         |   4 +-
 27 files changed, 2867 insertions(+), 23 deletions(-)
 create mode 100755 src/py/cam/cam.py
 create mode 100644 src/py/cam/cam_kms.py
 create mode 100644 src/py/cam/cam_null.py
 create mode 100644 src/py/cam/cam_qt.py
 create mode 100644 src/py/cam/cam_qtgl.py
 create mode 100644 src/py/cam/gl_helpers.py
 create mode 100644 src/py/libcamera/__init__.py
 create mode 100755 src/py/libcamera/gen-py-control-enums.py
 create mode 100644 src/py/libcamera/meson.build
 create mode 100644 src/py/libcamera/pyenums.cpp
 create mode 100644 src/py/libcamera/pyenums_generated.cpp.in
 create mode 100644 src/py/libcamera/pymain.cpp
 create mode 100644 src/py/meson.build
 create mode 100644 subprojects/packagefiles/pybind11/meson.build
 create mode 100644 subprojects/pybind11.wrap
 create mode 100644 test/py/meson.build
 create mode 100755 test/py/unittests.py