libcamera: include/libcamera/internal/media_object.h File Reference

libcamera v0.0.1 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
namespace | 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.