OPAL
Version 3.18.8
|
#include <vidcodec.h>
Inherits PObject.
Public Member Functions | |
OpalIntraFrameControl (const PTimeInterval &minThrottle=DefaultMinThrottle, const PTimeInterval &maxThrottle=DefaultMaxThrottle, const PTimeInterval &periodic=DefaultPeriodic) | |
void | IntraFrameRequest () |
bool | RequireIntraFrame () |
void | IntraFrameDetected () |
void | SetTimes (const PTimeInterval &minThrottle, const PTimeInterval &maxThrottle, const PTimeInterval &periodic, const PTimeInterval &retry) |
Static Public Attributes | |
static PTimeInterval const | DefaultMinThrottle |
static PTimeInterval const | DefaultMaxThrottle |
static PTimeInterval const | DefaultPeriodic |
Protected Types | |
enum | State { e_Idle, e_Periodic, e_Throttled, e_Requesting, e_Requested } |
Protected Member Functions | |
PDECLARE_MUTEX (m_mutex) | |
PDECLARE_NOTIFIER (PTimer, OpalIntraFrameControl, OnTimedRequest) | |
Protected Attributes | |
PTimeInterval | m_minThrottleTime |
PTimeInterval | m_maxThrottleTime |
PTimeInterval | m_periodicTime |
PTimeInterval | m_retryTime |
PTimeInterval | m_currentThrottleTime |
enum OpalIntraFrameControl::State | m_state |
unsigned | m_stuckCount |
PTime | m_lastRequest |
PTimer | m_requestTimer |
Handle logic for Intra frame control. This class deals with issues of too many and too few Intra frames being sent in response to requests from various sources.
|
protected |
OpalIntraFrameControl::OpalIntraFrameControl | ( | const PTimeInterval & | minThrottle = DefaultMinThrottle , |
const PTimeInterval & | maxThrottle = DefaultMaxThrottle , |
||
const PTimeInterval & | periodic = DefaultPeriodic |
||
) |
minThrottle | Minimum time between intra frames |
maxThrottle | If many requests, throttle period increases to this |
periodic | Make sure Intra frames are at least this often |
void OpalIntraFrameControl::IntraFrameDetected | ( | ) |
Detected Intra frame, so can cease requests.
void OpalIntraFrameControl::IntraFrameRequest | ( | ) |
Handling incoming request for Intra frame.
|
protected |
|
protected |
bool OpalIntraFrameControl::RequireIntraFrame | ( | ) |
Indicate that now is the time for an Intra frame to be generated.
void OpalIntraFrameControl::SetTimes | ( | const PTimeInterval & | minThrottle, |
const PTimeInterval & | maxThrottle, | ||
const PTimeInterval & | periodic, | ||
const PTimeInterval & | retry | ||
) |
Set throttle times for controlling Intra Frame. This is
minThrottle | Minimum time between intra frames |
maxThrottle | If many requests, throttle period increases to this |
periodic | Make sure Intra frames are at least this often |
retry | Retry request, typically the media round trip time, plus a bit. |
Referenced by OpalVideoTranscoder::SetDecodingIntraFrameControlTimes(), and OpalVideoTranscoder::SetEncodingIntraFrameControlTimes().
|
static |
|
static |
|
static |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |