libcamera  v0.3.1+1-c9152bad
Supporting cameras in Linux since 2019
Classes | Namespaces
media_object.h File Reference

Provides a class hierarchy that represents the media objects exposed by the Linux kernel Media Controller APIs. More...

#include <string>
#include <vector>
#include <linux/media.h>
#include <libcamera/base/class.h>
Include dependency graph for media_object.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  libcamera::MediaObject
 Base class for all media objects. More...
 
class  libcamera::MediaLink
 The MediaLink represents a link between two pads in the media graph. More...
 
class  libcamera::MediaPad
 The MediaPad represents a pad of an entity in the media graph. More...
 
class  libcamera::MediaEntity
 The MediaEntity represents an entity in the media graph. More...
 

Namespaces

 libcamera
 Top-level libcamera namespace.
 

Detailed Description

Provides a class hierarchy that represents the media objects exposed by the Linux kernel Media Controller APIs.

The abstract MediaObject class represents any Media Controller graph object identified by an id unique in the media device context. It is subclassed by the MediaEntity, MediaPad and MediaLink classes that represent the entities, pads and links respectively. They are populated based on the media graph information exposed by the Linux kernel through the MEDIA_IOC_G_TOPOLOGY ioctl.

As the media objects represent their kernel counterpart, information about the properties they expose can be found in the Linux kernel documentation.

All media objects are meant to be created and destroyed solely by the MediaDevice and thus have private constructors and destructors.