libcamera/include/libcamera/internal
Laurent Pinchart c5a8152af2 libcamera: v4l2_subdevice: Add V4L2Subdevice::Route structure
The V4L2Subdevice class deals with streams in two places:

- In routing tables, streams as expressed as a pad number and a stream
  number in a v4l2_subdev_route instance.
- In the format and selection get and set functions, streams as
  expressed using the Stream structure, which binds the pad number and
  stream number.

Expressing streams in different ways requires pipeline handlers and
other helpers to convert between the two representations. This isn't
much of an issue yet as libcamera has little stream-aware code, but it
is expected to increasingly become a burden.

To simplify the API, introduce a V4L2Subdevice::Route structure that
mimicks the kernel v4l2_subdev_route structure but represents streams as
V4L2Subdevice::Stream instances. This will improve seamless integration
of routes, formats and selection rectangles.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2024-03-15 13:00:49 +02:00
..
converter libcamera: pipeline: simple: converter: Use generic converter interface 2022-12-14 16:19:52 +00:00
tracepoints libcamera: internal: tracepoints: Use correct include directive 2023-02-09 19:39:54 +05:30
bayer_format.h raspberrypi: Update Copyright statement in all Raspberry Pi source files 2022-07-27 18:12:15 +03:00
byte_stream_buffer.h libcamera: internal: Convert to pragma once 2021-11-24 12:18:17 +00:00
camera.h libcamera: Allow concurrent use of cameras from same pipeline handler 2022-08-10 20:33:28 +03:00
camera_controls.h libcamera: internal: Convert to pragma once 2021-11-24 12:18:17 +00:00
camera_lens.h libcamera: camera_lens: Add function to fetch subdev controls 2022-03-15 17:20:59 +00:00
camera_manager.h libcamera: CameraManager: Remove ::get(dev_t) 2023-07-11 15:19:13 +01:00
camera_sensor.h libcamera: camera_sensor: Cache mounting orientation instead of transform 2023-10-23 16:06:18 +03:00
camera_sensor_properties.h libcamera: camera_sensor: Reference test pattern modes by enum type 2021-12-06 17:41:45 +01:00
control_serializer.h libcamera: control_serializer: store/load all ControlValue types 2022-09-12 18:28:59 +09:00
control_validator.h libcamera: internal: Convert to pragma once 2021-11-24 12:18:17 +00:00
converter.h libcamera: Declare generic converter interface 2022-12-14 16:19:52 +00:00
delayed_controls.h raspberrypi: Update Copyright statement in all Raspberry Pi source files 2022-07-27 18:12:15 +03:00
device_enumerator.h libcamera: internal: Convert to pragma once 2021-11-24 12:18:17 +00:00
device_enumerator_sysfs.h libcamera: internal: Convert to pragma once 2021-11-24 12:18:17 +00:00
device_enumerator_udev.h libcamera: internal: Convert to pragma once 2021-11-24 12:18:17 +00:00
formats.h libcamera: formats: Merge V4L2 single and multi formats 2022-08-03 15:07:19 +02:00
framebuffer.h libcamera: framebuffer: Move remaining private data to Private class 2022-10-10 17:49:49 +03:00
ipa_data_serializer.h ipc: ipa_data_serializer: Use cend() in deserializers 2022-10-19 12:09:01 +09:00
ipa_manager.h apps: Add ipa-verify application 2023-07-05 15:38:59 +03:00
ipa_module.h libcamera: internal: Convert to pragma once 2021-11-24 12:18:17 +00:00
ipa_proxy.h libcamera: internal: Convert to pragma once 2021-11-24 12:18:17 +00:00
ipc_pipe.h libcamera: base: Rename FileDescriptor to SharedFD 2021-12-04 23:05:05 +02:00
ipc_pipe_unixsocket.h libcamera: internal: Convert to pragma once 2021-11-24 12:18:17 +00:00
ipc_unixsocket.h libcamera: ipc_unixsocket: Use UniqueFD for a file descriptor 2021-12-04 23:05:03 +02:00
mapped_framebuffer.h libcamera: internal: Convert to pragma once 2021-11-24 12:18:17 +00:00
media_device.h libcamera: media_device: Return string references to avoid copies 2022-05-27 16:06:21 +03:00
media_object.h libcamera: Add members to MediaEntity to support ancillary entities 2022-03-15 17:20:59 +00:00
meson.build meson: Fix space around colon issues 2023-07-07 11:39:19 +03:00
pipeline_handler.h libcamera: camera: Take span of StreamRole instead of vector 2023-07-04 22:48:30 +01:00
process.h libcamera: process: Manage pipe fds by UniqueFD 2021-12-04 23:05:03 +02:00
pub_key.h libcamera: pub_key: Support openssl as an alternative to gnutls 2022-08-09 16:05:58 +03:00
request.h libcamera: internal: request: convert to pragma once 2023-06-17 22:52:24 +01:00
source_paths.h libcamera: internal: Convert to pragma once 2021-11-24 12:18:17 +00:00
sysfs.h libcamera: internal: Convert to pragma once 2021-11-24 12:18:17 +00:00
tracepoints.h.in libcamera: tracing: Implement tracing infrastructure 2020-11-03 11:07:21 +09:00
v4l2_device.h libcamera: v4l2_device: Workaround faulty control menus 2022-11-28 17:15:35 +00:00
v4l2_pixelformat.h libcamera: formats: Fix warning for unknown V4L2 pixfmt 2022-08-10 09:33:30 +02:00
v4l2_subdevice.h libcamera: v4l2_subdevice: Add V4L2Subdevice::Route structure 2024-03-15 13:00:49 +02:00
v4l2_videodevice.h libcamera: v4l2_videodevice: Improve toColorSpace() readability 2022-09-01 16:49:59 +05:30
yaml_parser.h libcamera: yaml_parser: Enable YamlObject::get() for int8_t and uint8_t 2022-08-21 21:47:19 +03:00