libcamera/include/libcamera
Laurent Pinchart e8dc74317a libcamera: Define constants for pixel formats in the public API
libcamera uses pixel format FourCC and modifier values from DRM. This
requires inclusion of drm_fourcc.h, creating a dependency on a header
that is packaged differently between distributions, and causing possible
issues with third-party applications.

Define constants for the supported pixel formats in the new formats.h
public API header, in order to remove the dependency on drm_fourcc.h.
The header is generated by a Python script from a list of supported
formats. The numerical values for the FourCC and modifier are extracted
from drm_fourcc.h by the script, ensuring that numerical values are not
inadvertently modified and preserving the direct interoperability.

The pixel formats constants can't be generated solely from drm_fourcc.h,
as that header defines FourCC values and modifier values, but doesn't
list the valid combinations. The supported formats are thus stored in a
YAML file, which contains the FourCC and optional modifier for each
supported format. We may later extend the YAML file to include formats
documentation, and possibly formats metadata to populate the
pixelFormatInfo map (in formats.cpp) automatically.

Now that two formats.h header are present (one in include/libcamera/ and
one in include/libcamera/internal/), we need to explicitly qualify the
Doxygen \file directive with a path.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2020-06-18 13:26:36 +03:00
..
internal libcamera: device_enumerator: Emit a signal when new devices are added 2020-06-17 00:27:51 +03:00
ipa meson: Rename variables storing headers lists 2020-05-18 12:56:20 +03:00
bound_method.h libcamera: Use C++14 std::*_t type traits 2020-02-18 02:15:25 +02:00
buffer.h libcamera: FrameBuffer: Add a setRequest() interface 2020-03-27 16:27:28 +01:00
camera.h libcamera: framebuffer_allocator: Lift camera restrictions on allocator 2020-03-18 19:15:18 +02:00
camera_manager.h libcamera: camera_manager: Introduce signals when a camera is added or removed 2020-06-17 00:27:54 +03:00
control_ids.h.in libcamera: Replace C++ comments with C comments 2020-06-06 00:25:04 +03:00
controls.h libcamera: controls: Add rectangle and size control types 2020-04-28 20:44:47 +03:00
event_dispatcher.h libcamera: event_dispatcher: Add interrupt() function 2019-01-23 18:51:56 +02:00
event_notifier.h libcamera: Add parent argument to constructors of Object-derived classes 2019-08-17 18:47:17 +03:00
file_descriptor.h libcamera: file_descriptor: Implement move semantics for constructor 2020-05-19 18:07:49 +03:00
formats.h.in libcamera: Define constants for pixel formats in the public API 2020-06-18 13:26:36 +03:00
framebuffer_allocator.h libcamera: framebuffer_allocator: Lift camera restrictions on allocator 2020-03-18 19:15:18 +02:00
gen-formats.py libcamera: Define constants for pixel formats in the public API 2020-06-18 13:26:36 +03:00
gen-header.sh include: libcamera: Improve automation of libcamera.h generation 2020-03-08 19:33:59 +02:00
geometry.h libcamera: geometry: Set steps to 0 in default SizeRange constructor 2020-05-22 04:54:02 +03:00
logging.h libcamera: logging: add syslog, stream, and nowhere logging targets 2019-07-17 14:36:35 +09:00
meson.build libcamera: Define constants for pixel formats in the public API 2020-06-18 13:26:36 +03:00
object.h libcamera: Use C++14 std::*_t type traits 2020-02-18 02:15:25 +02:00
pixel_format.h libcamera: pixel_format: Make PixelFormat usable as a constexpr 2020-06-06 00:25:04 +03:00
property_ids.h.in libcamera: Replace C++ comments with C comments 2020-06-06 00:25:04 +03:00
request.h libcamera: Switch to FrameBuffer interface 2020-01-12 16:10:38 +01:00
signal.h libcamera: Use C++14 std::*_t type traits 2020-02-18 02:15:25 +02:00
span.h libcamera: Add a C++20-compliant std::span<> implementation 2020-03-06 18:08:37 +02:00
stream.h libcamera: Rename pixelformats.{cpp,h} to pixel_format.{cpp,h} 2020-06-06 00:25:04 +03:00
timer.h libcamera: Standardise on C compatibility headers 2019-10-23 17:39:39 +03:00
version.h.in libcamera: Rework automatic version generation to avoid rebuilds 2019-07-09 12:34:10 +03:00