##

VideoEncoder Class Reference
Common

The VideoEncoder class supports encoding a series of images to a video format, and then writing the video to disk. More...

`#include <common/common.hh>`

## Public Member Functions

| VideoEncoder ()
| Constructor. More...
virtual | ~VideoEncoder ()
| Destructor. More...
bool | AddFrame (const unsigned char *_frame, const unsigned int _width, const unsigned int _height)
| Add a single frame to be encoded. More...
bool | AddFrame (const unsigned char *_frame, const unsigned int _width, const unsigned int _height, const std::chrono::steady_clock::time_point &_timestamp)
| Add a single timestamped frame to be encoded. More...
unsigned int | BitRate () const
| Get the bit rate. More...
std::string | Format () const
| Get the encoding format. More...
bool | IsEncoding () const
| True if the enoder has been started, false otherwise. More...
void | Reset ()
| Reset to default video properties and clean up allocated memory. More...
bool | SaveToFile (const std::string &_filename)
| Write the video to disk param[in] _filename File in which to save the encoded data. More...
bool | Start (const std::string &_format="mp4", const std::string &_filename="", const unsigned int _width=1280, const unsigned int _height=720, const unsigned int _fps=25, const unsigned int _bitRate=0)
| Start the encoder. More...
bool | Stop ()
| Stop the encoder. More...

## Detailed Description

The VideoEncoder class supports encoding a series of images to a video format, and then writing the video to disk.

## Constructor & Destructor Documentation

## VideoEncoder()

VideoEncoder | ( |  | ) |

Constructor.

## ~VideoEncoder()

virtual ~VideoEncoder | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## AddFrame() [1/2]

bool AddFrame | ( | const unsigned char * | _frame,
|  | const unsigned int | _width,
|  | const unsigned int | _height
| ) |  |

Add a single frame to be encoded.

Parameters

  [in] | _frame | Image buffer to be encoded
  [in] | _width | Input frame width
  [in] | _height | Input frame height

Returns
  True on success

## AddFrame() [2/2]

bool AddFrame | ( | const unsigned char * | _frame,
|  | const unsigned int | _width,
|  | const unsigned int | _height,
|  | const std::chrono::steady_clock::time_point & | _timestamp
| ) |  |

Add a single timestamped frame to be encoded.

Parameters

  [in] | _frame | Image buffer to be encoded
  [in] | _width | Input frame width
  [in] | _height | Input frame height
  [in] | _timestamp | Timestamp of the image frame

Returns
  True on success.

## BitRate()

unsigned int BitRate | ( |  | ) | const

Get the bit rate.

Returns
  Bit rate

## Format()

std::string Format | ( |  | ) | const

Get the encoding format.

Returns
  Encoding format

## IsEncoding()

bool IsEncoding | ( |  | ) | const

True if the enoder has been started, false otherwise.

Returns
  True if Start has been called.

## Reset()

void Reset | ( |  | ) |

Reset to default video properties and clean up allocated memory.

This will also delete any temporary files.

## SaveToFile()

bool SaveToFile | ( | const std::string & | _filename | ) |

Write the video to disk param[in] _filename File in which to save the encoded data.

Returns
  True on success.

## Start()

bool Start | ( | const std::string & | _format = `"mp4"`,
|  | const std::string & | _filename = `""`,
|  | const unsigned int | _width = `1280`,
|  | const unsigned int | _height = `720`,
|  | const unsigned int | _fps = `25`,
|  | const unsigned int | _bitRate = `0`
| ) |  |

Start the encoder.

This should be called once. Add new frames to the video using the AddFrame function. Use SaveToFile when the video is complete.

Parameters

  [in] | _width | Width in pixels of the output video.
  [in] | _height | Height in pixels of the output video.
  [in] | _format | String that represents the video type. Supported types include: "avi", "ogv", mp4", "v4l2". If using "v4l2", you must also specify a _filename.
  [in] | _bitRate | Bit rate to encode the video. A value of zero will cause this function to automatically compute a bitrate.
  [in] | _filename | Name of the file that stores the video while it is being created. This is a temporary file when recording to disk, or a video4linux loopback device like /dev/video0 when the _format is "v4l2". If blank, a default temporary file is used. However, the "v4l2" _format must be accompanied with a video loopback device filename.

Returns
  True on success

## Stop()

bool Stop | ( |  | ) |

Stop the encoder.

The SaveToFile function also calls this function.

Returns
  True on success.

The documentation for this class was generated from the following file:

- VideoEncoder.hh