diff options
-rw-r--r-- | include/libcamera/libcamera.h | 1 | ||||
-rw-r--r-- | include/libcamera/meson.build | 1 | ||||
-rw-r--r-- | include/libcamera/stream.h | 18 | ||||
-rw-r--r-- | src/libcamera/meson.build | 1 | ||||
-rw-r--r-- | src/libcamera/stream.cpp | 50 |
5 files changed, 71 insertions, 0 deletions
diff --git a/include/libcamera/libcamera.h b/include/libcamera/libcamera.h index c0511cf6..272dfd5e 100644 --- a/include/libcamera/libcamera.h +++ b/include/libcamera/libcamera.h @@ -12,6 +12,7 @@ #include <libcamera/event_dispatcher.h> #include <libcamera/event_notifier.h> #include <libcamera/signal.h> +#include <libcamera/stream.h> #include <libcamera/timer.h> #endif /* __LIBCAMERA_LIBCAMERA_H__ */ diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build index d7cb55ba..54a68078 100644 --- a/include/libcamera/meson.build +++ b/include/libcamera/meson.build @@ -5,6 +5,7 @@ libcamera_api = files([ 'event_notifier.h', 'libcamera.h', 'signal.h', + 'stream.h', 'timer.h', ]) diff --git a/include/libcamera/stream.h b/include/libcamera/stream.h new file mode 100644 index 00000000..4f47d85e --- /dev/null +++ b/include/libcamera/stream.h @@ -0,0 +1,18 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2019, Google Inc. + * + * stream.h - Video stream for a Camera + */ +#ifndef __LIBCAMERA_STREAM_H__ +#define __LIBCAMERA_STREAM_H__ + +namespace libcamera { + +class Stream final +{ +}; + +} /* namespace libcamera */ + +#endif /* __LIBCAMERA_STREAM_H__ */ diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build index f9f25c0e..9f6ff99e 100644 --- a/src/libcamera/meson.build +++ b/src/libcamera/meson.build @@ -10,6 +10,7 @@ libcamera_sources = files([ 'media_object.cpp', 'pipeline_handler.cpp', 'signal.cpp', + 'stream.cpp', 'timer.cpp', 'v4l2_device.cpp', ]) diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp new file mode 100644 index 00000000..9417c588 --- /dev/null +++ b/src/libcamera/stream.cpp @@ -0,0 +1,50 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2019, Google Inc. + * + * stream.cpp - Video stream for a Camera + */ + +#include <libcamera/stream.h> + +/** + * \file stream.h + * \brief Video stream for a Camera + * + * A camera device can provide frames in different resolutions and formats + * concurrently from a single image source. The Stream class represents + * one of the multiple concurrent streams. + * + * All streams exposed by a camera device share the same image source and are + * thus not fully independent. Parameters related to the image source, such as + * the exposure time or flash control, are common to all streams. Other + * parameters, such as format or resolution, may be specified per-stream, + * depending on the capabilities of the camera device. + * + * Camera devices expose at least one stream, and may expose additional streams + * based on the device capabilities. This can be used, for instance, to + * implement concurrent viewfinder and video capture, or concurrent viewfinder, + * video capture and still image capture. + */ + +namespace libcamera { + +/** + * \class Stream + * \brief Video stream for a camera + * + * The Stream class models all static information which are associated with a + * single video stream. Streams are exposed by the Camera object they belong to. + * + * Cameras may supply more than one stream from the same video source. In such + * cases an application can inspect all available streams and select the ones + * that best fit its use case. + * + * \todo Add capabilities to the stream API. Without this the Stream class only + * serves to reveal how many streams of unknown capabilities a camera supports. + * This in itself is productive as it allows applications to configure and + * capture from one or more streams even if they won't be able to select the + * optimal stream for the task. + */ + +} /* namespace libcamera */ |