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>`

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...

## 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.