[v1,0/2] treewide: Use `std::span`
mbox series

Message ID 20260825123412.837696-1-barnabas.pocze@ideasonboard.com
Headers show
Series
  • treewide: Use `std::span`
Related show

Message

Barnabás Pőcze Aug. 25, 2026, 12:34 p.m. UTC
These two changes mostly finish the C++20 migration by switching to `std::span`.
This has so far been postponed because gcc 9 does not support `std::span`,
but gcc 9 has just been dropped from CI.

Some points:

  0. patchwork did not pick up the "Use `std::span`" commit when it was
     sent the last time: https://patchwork.libcamera.org/cover/26313/
  1. should the minimum compiler versions be raised?
  2. notably, this also affects the public interfaces
     (e.g. Camera::generateConfiguration(), Control<>)

Barnabás Pőcze (2):
  treewide: Use `std::span`
  libcamera: base: span: Deprecate it

 Documentation/guides/pipeline-handler.rst     |  4 +-
 include/libcamera/base/file.h                 | 10 ++--
 include/libcamera/base/span.h                 | 16 +++----
 include/libcamera/base/thread.h               |  4 +-
 include/libcamera/camera.h                    |  6 +--
 include/libcamera/controls.h                  | 22 ++++++---
 include/libcamera/framebuffer.h               | 10 ++--
 .../libcamera/internal/byte_stream_buffer.h   |  6 +--
 include/libcamera/internal/camera_sensor.h    |  6 +--
 .../converter/converter_dw100_vertexmap.h     |  5 +-
 include/libcamera/internal/egl.h              | 14 +++---
 include/libcamera/internal/framebuffer.h      |  4 +-
 .../libcamera/internal/mapped_framebuffer.h   |  4 +-
 include/libcamera/internal/matrix.h           | 26 +++++------
 include/libcamera/internal/pipeline_handler.h |  2 +-
 include/libcamera/internal/process.h          |  6 +--
 include/libcamera/internal/pub_key.h          |  7 ++-
 .../libcamera/internal/shared_mem_object.h    |  6 +--
 include/libcamera/internal/v4l2_device.h      |  6 +--
 include/libcamera/internal/vector.h           |  4 +-
 src/android/camera_buffer.h                   | 11 +++--
 src/android/camera_capabilities.cpp           |  3 +-
 src/android/camera_request.cpp                |  4 +-
 src/android/jpeg/encoder.h                    |  4 +-
 src/android/jpeg/encoder_jea.cpp              |  2 +-
 src/android/jpeg/encoder_jea.h                |  2 +-
 src/android/jpeg/encoder_libjpeg.cpp          | 10 ++--
 src/android/jpeg/encoder_libjpeg.h            | 12 ++---
 src/android/jpeg/exif.cpp                     |  2 +-
 src/android/jpeg/exif.h                       |  7 ++-
 src/android/jpeg/post_processor_jpeg.cpp      |  2 +-
 src/android/mm/cros_camera_buffer.cpp         |  4 +-
 .../mm/cros_frame_buffer_allocator.cpp        |  2 +-
 src/android/mm/generic_camera_buffer.cpp      |  4 +-
 .../mm/generic_frame_buffer_allocator.cpp     |  2 +-
 src/apps/cam/capture_script.cpp               | 12 ++---
 src/apps/cam/drm.cpp                          |  6 +--
 src/apps/cam/drm.h                            |  4 +-
 src/apps/cam/file_sink.cpp                    |  2 +-
 src/apps/cam/sdl_sink.cpp                     |  4 +-
 src/apps/cam/sdl_texture.h                    |  4 +-
 src/apps/cam/sdl_texture_1plane.cpp           |  2 +-
 src/apps/cam/sdl_texture_1plane.h             |  2 +-
 src/apps/cam/sdl_texture_mjpg.cpp             |  4 +-
 src/apps/cam/sdl_texture_mjpg.h               |  4 +-
 src/apps/cam/sdl_texture_yuv.cpp              |  2 +-
 src/apps/cam/sdl_texture_yuv.h                |  2 +-
 src/apps/common/dng_writer.cpp                |  4 +-
 src/apps/common/image.cpp                     |  6 +--
 src/apps/common/image.h                       | 10 ++--
 src/apps/common/ppm_writer.cpp                |  2 +-
 src/apps/common/ppm_writer.h                  |  4 +-
 src/apps/ipa-verify/main.cpp                  |  4 +-
 src/apps/lc-compliance/helpers/capture.cpp    |  2 +-
 src/apps/lc-compliance/helpers/capture.h      |  3 +-
 src/gstreamer/gstlibcamera-controls.cpp.in    |  4 +-
 src/gstreamer/gstlibcamera-utils.cpp          | 20 ++++----
 src/ipa/ipu3/algorithms/af.cpp                |  6 +--
 src/ipa/ipu3/algorithms/af.h                  |  2 +-
 src/ipa/ipu3/algorithms/agc.cpp               |  2 +-
 src/ipa/ipu3/ipu3.cpp                         |  8 ++--
 src/ipa/libipa/awb.h                          |  2 +-
 src/ipa/libipa/awb_bayes.cpp                  |  2 +-
 src/ipa/libipa/awb_bayes.h                    |  4 +-
 src/ipa/libipa/exposure_mode_helper.cpp       |  2 +-
 src/ipa/libipa/exposure_mode_helper.h         |  4 +-
 src/ipa/libipa/histogram.cpp                  |  4 +-
 src/ipa/libipa/histogram.h                    |  8 ++--
 src/ipa/libipa/lsc_base.h                     |  2 -
 src/ipa/libipa/lsc_polynomial.cpp             |  4 +-
 src/ipa/libipa/lsc_polynomial.h               |  7 ++-
 src/ipa/libipa/lsc_table.h                    |  1 -
 src/ipa/libipa/v4l2_params.cpp                | 12 ++---
 src/ipa/libipa/v4l2_params.h                  | 18 ++++----
 src/ipa/libipa/v4l2_stats.cpp                 |  8 ++--
 src/ipa/libipa/v4l2_stats.h                   | 13 +++---
 src/ipa/mali-c55/algorithms/agc.cpp           | 10 ++--
 src/ipa/mali-c55/mali-c55.cpp                 |  4 +-
 src/ipa/mali-c55/params.h                     |  2 +-
 src/ipa/rkisp1/algorithms/agc.cpp             |  2 +-
 src/ipa/rkisp1/algorithms/agc.h               |  7 +--
 src/ipa/rkisp1/algorithms/lsc.cpp             |  3 +-
 src/ipa/rkisp1/params.cpp                     |  2 +-
 src/ipa/rkisp1/params.h                       |  8 ++--
 src/ipa/rkisp1/rkisp1.cpp                     |  2 +-
 src/ipa/rpi/cam_helper/cam_helper.cpp         |  4 +-
 src/ipa/rpi/cam_helper/cam_helper.h           |  6 +--
 src/ipa/rpi/cam_helper/cam_helper_imx296.cpp  |  4 +-
 src/ipa/rpi/cam_helper/cam_helper_imx477.cpp  |  4 +-
 src/ipa/rpi/cam_helper/cam_helper_imx519.cpp  |  4 +-
 src/ipa/rpi/cam_helper/cam_helper_imx708.cpp  |  4 +-
 src/ipa/rpi/cam_helper/md_parser.h            |  9 ++--
 src/ipa/rpi/cam_helper/md_parser_smia.cpp     |  4 +-
 src/ipa/rpi/common/ipa_base.cpp               | 20 ++++----
 src/ipa/rpi/common/ipa_base.h                 |  2 +-
 src/ipa/rpi/controller/af_algorithm.h         |  5 +-
 src/ipa/rpi/controller/rpi/af.cpp             |  2 +-
 src/ipa/rpi/controller/rpi/af.h               |  2 +-
 src/ipa/rpi/controller/rpi/alsc.cpp           |  2 +-
 src/ipa/rpi/controller/rpi/awb_nn.cpp         |  3 +-
 src/ipa/rpi/pisp/pisp.cpp                     | 10 ++--
 src/ipa/rpi/vc4/vc4.cpp                       | 46 +++++++++----------
 src/libcamera/base/backtrace.cpp              |  8 ++--
 src/libcamera/base/file.cpp                   |  6 +--
 src/libcamera/base/thread.cpp                 |  2 +-
 src/libcamera/byte_stream_buffer.cpp          |  8 ++--
 src/libcamera/camera.cpp                      |  2 +-
 src/libcamera/control_ids_rpi.yaml            |  4 +-
 src/libcamera/control_serializer.cpp          |  2 +-
 src/libcamera/controls.cpp                    | 22 ++++-----
 src/libcamera/converter/converter_dw100.cpp   |  2 +-
 .../converter/converter_dw100_vertexmap.cpp   |  4 +-
 src/libcamera/egl.cpp                         | 12 ++---
 src/libcamera/framebuffer.cpp                 |  6 +--
 src/libcamera/ipa_data_serializer.cpp         |  2 +-
 src/libcamera/ipa_manager.cpp                 |  2 +-
 src/libcamera/ipa_module.cpp                  | 16 +++----
 src/libcamera/mapped_framebuffer.cpp          |  4 +-
 src/libcamera/matrix.cpp                      | 36 +++++++--------
 src/libcamera/pipeline/imx8-isi/imx8-isi.cpp  |  4 +-
 src/libcamera/pipeline/ipu3/ipu3.cpp          |  6 +--
 src/libcamera/pipeline/mali-c55/mali-c55.cpp  |  6 +--
 src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  6 +--
 src/libcamera/pipeline/rkisp1/rkisp1_path.cpp |  2 +-
 src/libcamera/pipeline/rkisp1/rkisp1_path.h   |  6 +--
 .../pipeline/rpi/common/pipeline_base.cpp     | 12 ++---
 .../pipeline/rpi/common/pipeline_base.h       |  2 +-
 src/libcamera/pipeline/rpi/pisp/pisp.cpp      |  4 +-
 src/libcamera/pipeline/rpi/vc4/vc4.cpp        |  2 +-
 src/libcamera/pipeline/simple/simple.cpp      |  4 +-
 src/libcamera/pipeline/uvcvideo/uvcvideo.cpp  |  6 +--
 src/libcamera/pipeline/vimc/vimc.cpp          |  6 +--
 src/libcamera/pipeline/virtual/virtual.cpp    |  6 +--
 src/libcamera/process.cpp                     |  4 +-
 src/libcamera/pub_key.cpp                     |  6 +--
 src/libcamera/sensor/camera_sensor_legacy.cpp |  8 ++--
 src/libcamera/sensor/camera_sensor_raw.cpp    |  8 ++--
 src/libcamera/shared_mem_object.cpp           |  6 +--
 src/libcamera/software_isp/debayer_egl.cpp    |  6 +--
 src/libcamera/v4l2_device.cpp                 | 14 +++---
 src/libcamera/v4l2_videodevice.cpp            |  6 +--
 src/libcamera/value_node.cpp                  |  4 +-
 src/libcamera/vector.cpp                      |  2 +-
 src/libcamera/yaml_parser.cpp                 |  2 +-
 src/py/libcamera/py_helpers.cpp               |  2 +-
 src/py/libcamera/py_main.cpp                  |  4 +-
 src/v4l2/v4l2_camera_proxy.cpp                |  2 +-
 src/v4l2/v4l2_compat_manager.cpp              |  2 +-
 test/controls/control_value.cpp               | 28 +++++------
 test/file.cpp                                 |  2 +-
 test/span.cpp                                 |  1 +
 test/utils.cpp                                |  4 +-
 test/v4l2_videodevice/controls.cpp            |  4 +-
 utils/codegen/controls.py                     |  4 +-
 utils/gen-debug-controls.py                   |  6 +--
 155 files changed, 484 insertions(+), 477 deletions(-)

--
2.55.0