# RTP_Session Class Reference

`#include <rtp.h>`

Inheritance diagram for RTP_Session:

[legend]
Collaboration diagram for RTP_Session:
[legend]

## Call back functions

enum | SendReceiveStatus { e_ProcessPacket, e_IgnorePacket, e_AbortTransport }
virtual SendReceiveStatus | OnSendData (RTP_DataFrame &frame)
virtual SendReceiveStatus | Internal_OnSendData (RTP_DataFrame &frame)
virtual SendReceiveStatus | OnSendControl (RTP_ControlFrame &frame, PINDEX &len)
virtual SendReceiveStatus | Internal_OnSendControl (RTP_ControlFrame &frame, PINDEX &len)
virtual SendReceiveStatus | OnReceiveData (RTP_DataFrame &frame)
virtual SendReceiveStatus | Internal_OnReceiveData (RTP_DataFrame &frame)
virtual SendReceiveStatus | OnReceiveControl (RTP_ControlFrame &frame)
| PARRAY (ReceiverReportArray, ReceiverReport)
virtual void | OnRxSenderReport (const SenderReport &sender, const ReceiverReportArray &reports)
virtual void | OnRxReceiverReport (DWORD src, const ReceiverReportArray &reports)
virtual void | OnReceiverReports (const ReceiverReportArray &reports)
| PARRAY (SourceDescriptionArray, SourceDescription)
virtual void | OnRxSourceDescription (const SourceDescriptionArray &descriptions)
virtual void | OnRxGoodbye (const PDWORDArray &sources, const PString &reason)
virtual void | OnRxApplDefined (const PString &type, unsigned subtype, DWORD src, const BYTE *data, PINDEX size)

## Member variable access

enum | { JitterRoundingGuardBits = 4 }
unsigned | GetSessionID () const
void | SetSessionID (unsigned id)
bool | IsAudio () const
void | SetAudio (bool aud)
PString | GetCanonicalName () const
void | SetCanonicalName (const PString &name)
PString | GetToolName () const
void | SetToolName (const PString &name)
RTP_UserData * | GetUserData () const
void | SetUserData (RTP_UserData *data, PBoolean autoDeleteUserData=true)
DWORD | GetSyncSourceOut () const
bool | AllowAnySyncSource () const
void | SetAnySyncSource (bool allow)
void | SetIgnorePayloadTypeChanges (PBoolean ignore)
const PTimeInterval & | GetReportTimeInterval ()
void | SetReportTimeInterval (const PTimeInterval &interval)
unsigned | GetTxStatisticsInterval ()
void | SetTxStatisticsInterval (unsigned packets)
unsigned | GetRxStatisticsInterval ()
void | SetRxStatisticsInterval (unsigned packets)
void | ClearStatistics ()
DWORD | GetPacketsSent () const
DWORD | GetOctetsSent () const
DWORD | GetPacketsReceived () const
DWORD | GetOctetsReceived () const
DWORD | GetPacketsLost () const
DWORD | GetPacketsLostByRemote () const
DWORD | GetPacketsOutOfOrder () const
DWORD | GetPacketsTooLate () const
DWORD | GetPacketOverruns () const
DWORD | GetAverageSendTime () const
DWORD | GetMarkerRecvCount () const
DWORD | GetMarkerSendCount () const
DWORD | GetMaximumSendTime () const
DWORD | GetMinimumSendTime () const
DWORD | GetAverageReceiveTime () const
DWORD | GetMaximumReceiveTime () const
DWORD | GetMinimumReceiveTime () const
DWORD | GetAvgJitterTime () const
DWORD | GetMaxJitterTime () const
DWORD | GetJitterTimeOnRemote () const

## Public Types

typedef PNotifierTemplate< SendReceiveStatus & > | FilterNotifier
| e_ProcessPacket
| e_IgnorePacket
| e_AbortTransport
| JitterRoundingGuardBits = 4

## Public Member Functions

virtual void | SetCloseOnBYE (PBoolean v)
virtual void | SendIntraFrameRequest (bool rfc2032, bool pictureLoss)
virtual void | SendTemporalSpatialTradeOff (unsigned tradeOff)
void | SetNextSentSequenceNumber (WORD num)
virtual PString | GetEncoding () const
virtual void | SetEncoding (const PString &newEncoding)
DWORD | GetSyncSourceIn () const
void | SetFailed (bool v)
bool | HasFailed () const
void | AddFilter (const FilterNotifier &filter)
virtual void | SendBYE ()
Construction
| RTP_Session (const Params &options)
| ~RTP_Session ()
Operations
void | SetJitterBufferSize (unsigned minJitterDelay, unsigned maxJitterDelay, unsigned timeUnits=0, PINDEX packetSize=2048)
unsigned | GetJitterBufferSize () const
unsigned | GetJitterBufferDelay () const
unsigned | GetJitterTimeUnits () const
virtual PBoolean | ModifyQOS (RTP_QOS *)
virtual PBoolean | ReadBufferedData (RTP_DataFrame &frame)
virtual PBoolean | ReadData (RTP_DataFrame &frame)=0
virtual void | FlushData ()
virtual PBoolean | WriteData (RTP_DataFrame &frame)=0
virtual PBoolean | WriteOOBData (RTP_DataFrame &frame, bool rewriteTimeStamp=true)
virtual PBoolean | WriteControl (RTP_ControlFrame &frame)=0
virtual bool | Close (PBoolean reading)=0
virtual void | Reopen (PBoolean isReading)=0
virtual PString | GetLocalHostName ()=0
virtual void | GetStatistics (OpalMediaStatistics &statistics, bool receiver) const

## Protected Types

typedef PSafePtr< RTP_JitterBuffer, PSafePtrMultiThreaded > | JitterBufferPtr

## Protected Member Functions

RTP_Session::ReceiverReportArray | BuildReceiverReportArray (const RTP_ControlFrame &frame, PINDEX offset)
void | AddReceiverReport (RTP_ControlFrame::ReceiverReport &receiver)
PBoolean | InsertReportPacket (RTP_ControlFrame &report)
void | SaveOutOfOrderPacket (RTP_DataFrame &frame)
| PDECLARE_NOTIFIER (PTimer, RTP_Session, SendReport)

## Protected Attributes

PString | m_encoding
PMutex | m_encodingMutex
RTP_Encoding * | m_encodingHandler
unsigned | sessionID
bool | isAudio
unsigned | m_timeUnits
PString | canonicalName
PString | toolName
RTP_UserData * | userData
PBoolean | autoDeleteUserData
JitterBufferPtr | m_jitterBuffer
DWORD | syncSourceOut
DWORD | syncSourceIn
DWORD | lastSentTimestamp
bool | allowAnySyncSource
bool | allowOneSyncSourceChange
PBoolean | allowRemoteTransmitAddressChange
PBoolean | allowSequenceChange
unsigned | txStatisticsInterval
unsigned | rxStatisticsInterval
WORD | lastSentSequenceNumber
WORD | expectedSequenceNumber
PTimeInterval | lastSentPacketTime
PTimeInterval | lastReceivedPacketTime
PTime | lastSRTimestamp
PTime | lastSRReceiveTime
PTimeInterval | delaySinceLastSR
WORD | lastRRSequenceNumber
bool | resequenceOutOfOrderPackets
unsigned | consecutiveOutOfOrderPackets
PTimeInterval | outOfOrderWaitTime
PTimeInterval | outOfOrderPacketTime
std::list< RTP_DataFrame > | m_outOfOrderPackets
PMutex | dataMutex
DWORD | timeStampOffs
PBoolean | oobTimeStampBaseEstablished
DWORD | oobTimeStampOutBase
PTimeInterval | oobTimeStampBase
PTime | firstPacketSent
DWORD | packetsSent
DWORD | rtcpPacketsSent
DWORD | octetsSent
PTime | firstPacketReceived
DWORD | packetsReceived
DWORD | senderReportsReceived
DWORD | octetsReceived
DWORD | packetsLost
DWORD | packetsLostByRemote
DWORD | packetsOutOfOrder
DWORD | averageSendTime
DWORD | maximumSendTime
DWORD | minimumSendTime
DWORD | averageReceiveTime
DWORD | maximumReceiveTime
DWORD | minimumReceiveTime
DWORD | jitterLevel
DWORD | jitterLevelOnRemote
DWORD | maximumJitterLevel
DWORD | markerSendCount
DWORD | markerRecvCount
unsigned | txStatisticsCount
unsigned | rxStatisticsCount
DWORD | averageSendTimeAccum
DWORD | maximumSendTimeAccum
DWORD | minimumSendTimeAccum
DWORD | averageReceiveTimeAccum
DWORD | maximumReceiveTimeAccum
DWORD | minimumReceiveTimeAccum
DWORD | packetsLostSinceLastRR
DWORD | lastTransitTime
RTP_DataFrame::PayloadTypes | lastReceivedPayloadType
PBoolean | ignorePayloadTypeChanges
PMutex | m_reportMutex
PTimer | m_reportTimer
PBoolean | closeOnBye
PBoolean | byeSent
bool | failed
| set to true if session has received too many ICMP destination unreachable
list< FilterNotifier > | m_filters

## Friends

class | EncodingLock

## Data Structures

class | EncodingLock
struct | Params
class | ReceiverReport
class | SenderReport
class | SourceDescription

## Detailed Description

This class is for encpsulating the IETF Real Time Protocol interface.

## Member Typedef Documentation

typedef PNotifierTemplate<SendReceiveStatus &> RTP_Session::FilterNotifier

typedef PSafePtr<RTP_JitterBuffer, PSafePtrMultiThreaded> RTP_Session::JitterBufferPtr `[protected]`

## Member Enumeration Documentation

anonymous enum

Enumerator:

  JitterRoundingGuardBits |

enum RTP_Session::SendReceiveStatus

Enumerator:

  e_ProcessPacket |
  e_IgnorePacket |
  e_AbortTransport |

## Constructor & Destructor Documentation

RTP_Session::RTP_Session | ( | const Params & | options | ) |

Create a new RTP session.

Parameters:

  options | Parameters to construct with session.

RTP_Session::~RTP_Session | ( |  | ) |

Delete a session. This deletes the userData field if autoDeleteUserData is true.

## Member Function Documentation

void RTP_Session::AddFilter | ( | const FilterNotifier & | filter | ) |

void RTP_Session::AddReceiverReport | ( | RTP_ControlFrame::ReceiverReport & | receiver | ) | `[protected]`

bool RTP_Session::AllowAnySyncSource | ( |  | ) | const`[inline]`

Indicate if will ignore all but first received SSRC value.

RTP_Session::ReceiverReportArray RTP_Session::BuildReceiverReportArray | ( | const RTP_ControlFrame & | frame,
|  | PINDEX | offset |
| ) |  |  | `[protected]`

void RTP_Session::ClearStatistics | ( |  | ) |

Clear statistics

virtual bool RTP_Session::Close | ( | PBoolean | reading | ) | `[pure virtual]`

Close down the RTP session.

Parameters:

  reading | Closing the read side of the session

Implemented in RTP_UDP.

virtual void RTP_Session::FlushData | ( |  | ) | `[virtual]`

Flush incoming data.

Reimplemented in RTP_UDP.

DWORD RTP_Session::GetAverageReceiveTime | ( |  | ) | const`[inline]`

Get average time between received packets. This is averaged over the last rxStatisticsInterval packets and is in milliseconds.

DWORD RTP_Session::GetAverageSendTime | ( |  | ) | const`[inline]`

Get average time between sent packets. This is averaged over the last txStatisticsInterval packets and is in milliseconds.

DWORD RTP_Session::GetAvgJitterTime | ( |  | ) | const`[inline]`

Get averaged jitter time for received packets. This is the calculated statistical variance of the interarrival time of received packets in milliseconds.

PString RTP_Session::GetCanonicalName | ( |  | ) | const

Get the canonical name for the RTP session.

virtual PString RTP_Session::GetEncoding | ( |  | ) | const`[inline, virtual]`

unsigned RTP_Session::GetJitterBufferDelay | ( |  | ) | const`[inline]`

unsigned RTP_Session::GetJitterBufferSize | ( |  | ) | const

Get current size of the jitter buffer. This returns the currently used jitter buffer delay in RTP timestamp units. It will be some value between the minimum and maximum set in the SetJitterBufferSize() function.

DWORD RTP_Session::GetJitterTimeOnRemote | ( |  | ) | const`[inline]`

Get jitter time for received packets on remote. This is the calculated statistical variance of the interarrival time of received packets in milliseconds.

unsigned RTP_Session::GetJitterTimeUnits | ( |  | ) | const`[inline]`

Get current time units of the jitter buffer.

virtual PString RTP_Session::GetLocalHostName | ( |  | ) | `[pure virtual]`

Get the local host name as used in SDES packes.

Implemented in RTP_UDP.

DWORD RTP_Session::GetMarkerRecvCount | ( |  | ) | const`[inline]`

Get the number of marker packets received this session. This can be used to find out the number of frames received in a video RTP stream.

DWORD RTP_Session::GetMarkerSendCount | ( |  | ) | const`[inline]`

Get the number of marker packets sent this session. This can be used to find out the number of frames sent in a video RTP stream.

DWORD RTP_Session::GetMaximumReceiveTime | ( |  | ) | const`[inline]`

Get maximum time between received packets. This is over the last rxStatisticsInterval packets and is in milliseconds.

DWORD RTP_Session::GetMaximumSendTime | ( |  | ) | const`[inline]`

Get maximum time between sent packets. This is over the last txStatisticsInterval packets and is in milliseconds.

DWORD RTP_Session::GetMaxJitterTime | ( |  | ) | const`[inline]`

Get averaged jitter time for received packets. This is the maximum value of jitterLevel for the session.

DWORD RTP_Session::GetMinimumReceiveTime | ( |  | ) | const`[inline]`

Get minimum time between received packets. This is over the last rxStatisticsInterval packets and is in milliseconds.

DWORD RTP_Session::GetMinimumSendTime | ( |  | ) | const`[inline]`

Get minimum time between sent packets. This is over the last txStatisticsInterval packets and is in milliseconds.

DWORD RTP_Session::GetOctetsReceived | ( |  | ) | const`[inline]`

Get total number of octets received in session.

DWORD RTP_Session::GetOctetsSent | ( |  | ) | const`[inline]`

Get total number of octets sent in session.

DWORD RTP_Session::GetPacketOverruns | ( |  | ) | const

Get total number received packets that could not fit into the jitter buffer.

DWORD RTP_Session::GetPacketsLost | ( |  | ) | const`[inline]`

Get total number received packets lost in session.

DWORD RTP_Session::GetPacketsLostByRemote | ( |  | ) | const`[inline]`

Get total number transmitted packets lost by remote in session. Determined via RTCP.

DWORD RTP_Session::GetPacketsOutOfOrder | ( |  | ) | const`[inline]`

Get total number of packets received out of order in session.

DWORD RTP_Session::GetPacketsReceived | ( |  | ) | const`[inline]`

Get total number of packets received in session.

DWORD RTP_Session::GetPacketsSent | ( |  | ) | const`[inline]`

Get total number of packets sent in session.

DWORD RTP_Session::GetPacketsTooLate | ( |  | ) | const

Get total number received packets too late to go into jitter buffer.

const PTimeInterval& RTP_Session::GetReportTimeInterval | ( |  | ) | `[inline]`

Get the time interval for sending RTCP reports in the session.

unsigned RTP_Session::GetRxStatisticsInterval | ( |  | ) | `[inline]`

Get the interval for receiver statistics in the session.

unsigned RTP_Session::GetSessionID | ( |  | ) | const`[inline]`

Get the ID for the RTP session.

virtual void RTP_Session::GetStatistics | ( | OpalMediaStatistics & | statistics,
|  | bool | receiver |
| ) |  |  | const`[virtual]`

DWORD RTP_Session::GetSyncSourceIn | ( |  | ) | const`[inline]`

DWORD RTP_Session::GetSyncSourceOut | ( |  | ) | const`[inline]`

Get the source output identifier.

PString RTP_Session::GetToolName | ( |  | ) | const

Get the tool name for the RTP session.

unsigned RTP_Session::GetTxStatisticsInterval | ( |  | ) | `[inline]`

Get the interval for transmitter statistics in the session.

RTP_UserData* RTP_Session::GetUserData | ( |  | ) | const`[inline]`

Get the user data for the session.

bool RTP_Session::HasFailed | ( |  | ) | const`[inline]`

PBoolean RTP_Session::InsertReportPacket | ( | RTP_ControlFrame & | report | ) | `[protected]`

virtual SendReceiveStatus RTP_Session::Internal_OnReceiveData | ( | RTP_DataFrame & | frame | ) | `[virtual]`

virtual SendReceiveStatus RTP_Session::Internal_OnSendControl | ( | RTP_ControlFrame & | frame,
|  | PINDEX & | len |
| ) |  |  | `[virtual]`

virtual SendReceiveStatus RTP_Session::Internal_OnSendData | ( | RTP_DataFrame & | frame | ) | `[virtual]`

bool RTP_Session::IsAudio | ( |  | ) | const`[inline]`

Get flag for is audio RTP.

virtual PBoolean RTP_Session::ModifyQOS | ( | RTP_QOS * |  | ) | `[inline, virtual]`

Modifies the QOS specifications for this RTP session

Reimplemented in RTP_UDP.

virtual SendReceiveStatus RTP_Session::OnReceiveControl | ( | RTP_ControlFrame & | frame | ) | `[virtual]`

virtual SendReceiveStatus RTP_Session::OnReceiveData | ( | RTP_DataFrame & | frame | ) | `[virtual]`

virtual void RTP_Session::OnReceiverReports | ( | const ReceiverReportArray & | reports | ) | `[virtual]`

virtual void RTP_Session::OnRxApplDefined | ( | const PString & | type,
|  | unsigned | subtype,
|  | DWORD | src,
|  | const BYTE * | data,
|  | PINDEX | size |
| ) |  |  | `[virtual]`

virtual void RTP_Session::OnRxGoodbye | ( | const PDWORDArray & | sources,
|  | const PString & | reason |
| ) |  |  | `[virtual]`

virtual void RTP_Session::OnRxReceiverReport | ( | DWORD | src,
|  | const ReceiverReportArray & | reports |
| ) |  |  | `[virtual]`

virtual void RTP_Session::OnRxSenderReport | ( | const SenderReport & | sender,
|  | const ReceiverReportArray & | reports |
| ) |  |  | `[virtual]`

virtual void RTP_Session::OnRxSourceDescription | ( | const SourceDescriptionArray & | descriptions | ) | `[virtual]`

virtual SendReceiveStatus RTP_Session::OnSendControl | ( | RTP_ControlFrame & | frame,
|  | PINDEX & | len |
| ) |  |  | `[virtual]`

virtual SendReceiveStatus RTP_Session::OnSendData | ( | RTP_DataFrame & | frame | ) | `[virtual]`

RTP_Session::PARRAY | ( | SourceDescriptionArray | ,
|  | SourceDescription |  |
| ) |  |  |

RTP_Session::PARRAY | ( | ReceiverReportArray | ,
|  | ReceiverReport |  |
| ) |  |  |

RTP_Session::PDECLARE_NOTIFIER | ( | PTimer | ,
|  | RTP_Session | ,
|  | SendReport |  |
| ) |  |  | `[protected]`

virtual PBoolean RTP_Session::ReadBufferedData | ( | RTP_DataFrame & | frame | ) | `[virtual]`

Read a data frame from the RTP channel. This function will conditionally read data from the jitter buffer or directly if there is no jitter buffer enabled. An application should generally use this in preference to directly calling ReadData().

Parameters:

  frame | Frame read from the RTP session

virtual PBoolean RTP_Session::ReadData | ( | RTP_DataFrame & | frame | ) | `[pure virtual]`

Read a data frame from the RTP channel. Any control frames received are dispatched to callbacks and are not returned by this function. It will block until a data frame is available or an error occurs.

Parameters:

  frame | Frame read from the RTP session

Implemented in RTP_UDP.

virtual void RTP_Session::Reopen | ( | PBoolean | isReading | ) | `[pure virtual]`

Reopens an existing session in the given direction.

Implemented in RTP_UDP.

void RTP_Session::SaveOutOfOrderPacket | ( | RTP_DataFrame & | frame | ) | `[protected]`

virtual void RTP_Session::SendBYE | ( |  | ) | `[virtual]`

virtual void RTP_Session::SendIntraFrameRequest | ( | bool | rfc2032,
|  | bool | pictureLoss |
| ) |  |  | `[virtual]`

Tell the rtp session to send out an intra frame request control packet. This is called when the media stream receives an OpalVideoUpdatePicture media command.

virtual void RTP_Session::SendTemporalSpatialTradeOff | ( | unsigned | tradeOff | ) | `[virtual]`

Tell the rtp session to send out an temporal spatial trade off request control packet. This is called when the media stream receives an OpalTemporalSpatialTradeOff media command.

void RTP_Session::SetAnySyncSource | ( | bool | allow | ) | `[inline]`

Indicate if will ignore all but first received SSRC value.

Parameters:

  allow | Flag for allow any SSRC values

void RTP_Session::SetAudio | ( | bool | aud | ) | `[inline]`

Set flag for RTP session is audio.

Parameters:

  aud | New audio indication flag

void RTP_Session::SetCanonicalName | ( | const PString & | name | ) |

Set the canonical name for the RTP session.

virtual void RTP_Session::SetCloseOnBYE | ( | PBoolean | v | ) | `[inline, virtual]`

virtual void RTP_Session::SetEncoding | ( | const PString & | newEncoding | ) | `[virtual]`

Reimplemented in RTP_UDP.

void RTP_Session::SetFailed | ( | bool | v | ) | `[inline]`

void RTP_Session::SetIgnorePayloadTypeChanges | ( | PBoolean | ignore | ) | `[inline]`

Indicate if will ignore rtp payload type changes in received packets.

Parameters:

  ignore | Flag to ignore payload type changes

void RTP_Session::SetJitterBufferSize | ( | unsigned | minJitterDelay,
|  | unsigned | maxJitterDelay,
|  | unsigned | timeUnits = `0`,
|  | PINDEX | packetSize = `2048` |
| ) |  |  |

Sets the size of the jitter buffer to be used by this RTP session. A session defaults to not having any jitter buffer enabled for reading and the ReadBufferedData() function simply calls ReadData().

If either jitter delay parameter is zero, it destroys the jitter buffer attached to this RTP session.

Parameters:

  minJitterDelay | Minimum jitter buffer delay in RTP timestamp units
  maxJitterDelay | Maximum jitter buffer delay in RTP timestamp units
  timeUnits | Time Units, zero uses default
  packetSize | Receive RTP packet size

void RTP_Session::SetNextSentSequenceNumber | ( | WORD | num | ) | `[inline]`

void RTP_Session::SetReportTimeInterval | ( | const PTimeInterval & | interval | ) | `[inline]`

Set the time interval for sending RTCP reports in the session.

Parameters:

  interval | New time interval for reports.

void RTP_Session::SetRxStatisticsInterval | ( | unsigned | packets | ) |

Set the interval for receiver statistics in the session.

Parameters:

  packets | Number of packets between callbacks

void RTP_Session::SetSessionID | ( | unsigned | id | ) | `[inline]`

Set the ID for the RTP session.

void RTP_Session::SetToolName | ( | const PString & | name | ) |

Set the tool name for the RTP session.

void RTP_Session::SetTxStatisticsInterval | ( | unsigned | packets | ) |

Set the interval for transmitter statistics in the session.

Parameters:

  packets | Number of packets between callbacks

void RTP_Session::SetUserData | ( | RTP_UserData * | data,
|  | PBoolean | autoDeleteUserData = `true` |
| ) |  |  |

Set the user data for the session.

Parameters:

  data | New user data to be used
  autoDeleteUserData | Delete optional data with session.

virtual PBoolean RTP_Session::WriteControl | ( | RTP_ControlFrame & | frame | ) | `[pure virtual]`

Write a control frame from the RTP channel.

Parameters:

  frame | Frame to write to the RTP session

Implemented in RTP_UDP.

virtual PBoolean RTP_Session::WriteData | ( | RTP_DataFrame & | frame | ) | `[pure virtual]`

Write a data frame from the RTP channel.

Parameters:

  frame | Frame to write to the RTP session

Implemented in RTP_UDP.

virtual PBoolean RTP_Session::WriteOOBData | ( | RTP_DataFrame & | frame,
|  | bool | rewriteTimeStamp = `true` |
| ) |  |  | `[virtual]`

Write data frame to the RTP channel outside the normal stream of media Used for RFC2833 packets

Reimplemented in RTP_UDP.

## Friends And Related Function Documentation

friend class EncodingLock `[friend]`

## Field Documentation

bool RTP_Session::allowAnySyncSource `[protected]`

bool RTP_Session::allowOneSyncSourceChange `[protected]`

PBoolean RTP_Session::allowRemoteTransmitAddressChange `[protected]`

PBoolean RTP_Session::allowSequenceChange `[protected]`

PBoolean RTP_Session::autoDeleteUserData `[protected]`

DWORD RTP_Session::averageReceiveTime `[protected]`

DWORD RTP_Session::averageReceiveTimeAccum `[protected]`

DWORD RTP_Session::averageSendTime `[protected]`

DWORD RTP_Session::averageSendTimeAccum `[protected]`

PBoolean RTP_Session::byeSent `[protected]`

PString RTP_Session::canonicalName `[protected]`

PBoolean RTP_Session::closeOnBye `[protected]`

unsigned RTP_Session::consecutiveOutOfOrderPackets `[protected]`

PMutex RTP_Session::dataMutex `[protected]`

PTimeInterval RTP_Session::delaySinceLastSR `[protected]`

WORD RTP_Session::expectedSequenceNumber `[protected]`

bool RTP_Session::failed `[protected]`

set to true if session has received too many ICMP destination unreachable

PTime RTP_Session::firstPacketReceived `[protected]`

PTime RTP_Session::firstPacketSent `[protected]`

PBoolean RTP_Session::ignorePayloadTypeChanges `[protected]`

bool RTP_Session::isAudio `[protected]`

DWORD RTP_Session::jitterLevel `[protected]`

DWORD RTP_Session::jitterLevelOnRemote `[protected]`

PTimeInterval RTP_Session::lastReceivedPacketTime `[protected]`

RTP_DataFrame::PayloadTypes RTP_Session::lastReceivedPayloadType `[protected]`

WORD RTP_Session::lastRRSequenceNumber `[protected]`

PTimeInterval RTP_Session::lastSentPacketTime `[protected]`

WORD RTP_Session::lastSentSequenceNumber `[protected]`

DWORD RTP_Session::lastSentTimestamp `[protected]`

PTime RTP_Session::lastSRReceiveTime `[protected]`

PTime RTP_Session::lastSRTimestamp `[protected]`

DWORD RTP_Session::lastTransitTime `[protected]`

PString RTP_Session::m_encoding `[protected]`

RTP_Encoding* RTP_Session::m_encodingHandler `[protected]`

PMutex RTP_Session::m_encodingMutex `[protected]`

list<FilterNotifier> RTP_Session::m_filters `[protected]`

JitterBufferPtr RTP_Session::m_jitterBuffer `[protected]`

std::list<RTP_DataFrame> RTP_Session::m_outOfOrderPackets `[protected]`

PMutex RTP_Session::m_reportMutex `[protected]`

PTimer RTP_Session::m_reportTimer `[protected]`

unsigned RTP_Session::m_timeUnits `[protected]`

DWORD RTP_Session::markerRecvCount `[protected]`

DWORD RTP_Session::markerSendCount `[protected]`

DWORD RTP_Session::maximumJitterLevel `[protected]`

DWORD RTP_Session::maximumReceiveTime `[protected]`

DWORD RTP_Session::maximumReceiveTimeAccum `[protected]`

DWORD RTP_Session::maximumSendTime `[protected]`

DWORD RTP_Session::maximumSendTimeAccum `[protected]`

DWORD RTP_Session::minimumReceiveTime `[protected]`

DWORD RTP_Session::minimumReceiveTimeAccum `[protected]`

DWORD RTP_Session::minimumSendTime `[protected]`

DWORD RTP_Session::minimumSendTimeAccum `[protected]`

DWORD RTP_Session::octetsReceived `[protected]`

DWORD RTP_Session::octetsSent `[protected]`

PTimeInterval RTP_Session::oobTimeStampBase `[protected]`

PBoolean RTP_Session::oobTimeStampBaseEstablished `[protected]`

DWORD RTP_Session::oobTimeStampOutBase `[protected]`

PTimeInterval RTP_Session::outOfOrderPacketTime `[protected]`

PTimeInterval RTP_Session::outOfOrderWaitTime `[protected]`

DWORD RTP_Session::packetsLost `[protected]`

DWORD RTP_Session::packetsLostByRemote `[protected]`

DWORD RTP_Session::packetsLostSinceLastRR `[protected]`

DWORD RTP_Session::packetsOutOfOrder `[protected]`

DWORD RTP_Session::packetsReceived `[protected]`

DWORD RTP_Session::packetsSent `[protected]`

bool RTP_Session::resequenceOutOfOrderPackets `[protected]`

DWORD RTP_Session::rtcpPacketsSent `[protected]`

unsigned RTP_Session::rxStatisticsCount `[protected]`

unsigned RTP_Session::rxStatisticsInterval `[protected]`

DWORD RTP_Session::senderReportsReceived `[protected]`

unsigned RTP_Session::sessionID `[protected]`

DWORD RTP_Session::syncSourceIn `[protected]`

DWORD RTP_Session::syncSourceOut `[protected]`

DWORD RTP_Session::timeStampOffs `[protected]`

PString RTP_Session::toolName `[protected]`

unsigned RTP_Session::txStatisticsCount `[protected]`

unsigned RTP_Session::txStatisticsInterval `[protected]`

RTP_UserData* RTP_Session::userData `[protected]`

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

- rtp.h