# OpalVideoRateController Class Reference

`#include <ratectl.h>`

Collaboration diagram for OpalVideoRateController:

[legend]

## Public Member Functions

| OpalVideoRateController ()
virtual | ~OpalVideoRateController ()
virtual void | Open (const OpalMediaFormat &mediaFormat)
virtual bool | SkipFrame (bool &forceIFrame)=0
virtual void | Push (RTP_DataFrameList &inputFrames, bool iFrame)
virtual bool | Pop (RTP_DataFrameList &outputPackets, bool &iFrame, bool force)

## Data Fields

OpalBitRateCalculator | m_bitRateCalc

## Protected Attributes

unsigned | m_targetBitRate
unsigned | m_outputFrameTime
PInt64 | m_inputFrameCount
PInt64 | m_outputFrameCount
std::deque< PacketEntry > | m_packets

## Data Structures

struct | PacketEntry

## Constructor & Destructor Documentation

OpalVideoRateController::OpalVideoRateController | ( |  | ) |

virtual OpalVideoRateController::~OpalVideoRateController | ( |  | ) | `[virtual]`

## Member Function Documentation

virtual void OpalVideoRateController::Open | ( | const OpalMediaFormat & | mediaFormat | ) | `[virtual]`

Open the rate controller with the specific parameters

virtual bool OpalVideoRateController::Pop | ( | RTP_DataFrameList & | outputPackets,
|  | bool & | iFrame,
|  | bool | force |
| ) |  |  | `[virtual]`

retreive encoded frames from the rate controller queue

virtual void OpalVideoRateController::Push | ( | RTP_DataFrameList & | inputFrames,
|  | bool | iFrame |
| ) |  |  | `[virtual]`

push encoded frames into the rate controller queue

virtual bool OpalVideoRateController::SkipFrame | ( | bool & | forceIFrame | ) | `[pure virtual]`

Determine if the next frame should be skipped. The rate controller can also indicate whether the next frame should be encoded as an I-frame, which is useful if many frames have been skipped

## Field Documentation

OpalBitRateCalculator OpalVideoRateController::m_bitRateCalc

Bit rate calculator used by rate controller

PInt64 OpalVideoRateController::m_inputFrameCount `[protected]`

PInt64 OpalVideoRateController::m_outputFrameCount `[protected]`

unsigned OpalVideoRateController::m_outputFrameTime `[protected]`

std::deque<PacketEntry> OpalVideoRateController::m_packets `[protected]`

unsigned OpalVideoRateController::m_targetBitRate `[protected]`

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

- ratectl.h