libcamera  v0.3.0+93-437e6016
Supporting cameras in Linux since 2019
Classes | Namespaces | Enumerations | Functions
stream.h File Reference

Video stream for a Camera. More...

#include <map>
#include <memory>
#include <ostream>
#include <string>
#include <vector>
#include <libcamera/color_space.h>
#include <libcamera/framebuffer.h>
#include <libcamera/geometry.h>
#include <libcamera/pixel_format.h>
Include dependency graph for stream.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


class  libcamera::StreamFormats
 Hold information about supported stream formats. More...
struct  libcamera::StreamConfiguration
 Configuration parameters for a stream. More...
class  libcamera::Stream
 Video stream for a camera. More...


 Top-level libcamera namespace.


enum  libcamera::StreamRole { libcamera::StreamRole::Raw, libcamera::StreamRole::StillCapture, libcamera::StreamRole::VideoRecording, libcamera::StreamRole::Viewfinder }
 Identify the role a stream is intended to play. More...


std::ostream & libcamera::operator<< (std::ostream &out, StreamRole role)
 Insert a text representation of a StreamRole into an output stream. More...

Detailed Description

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.