OPAL  Version 3.18.8
RTP_ControlFrame Class Reference

#include <rtp.h>

Inherits PBYTEArray.

Data Structures

struct  ApplDefinedInfo
 
struct  DelayLastReceiverReport
 
struct  ExtendedReport
 
struct  FbFIR
 
struct  FbHeader
 
struct  FbNACK
 
struct  FbREMB
 
struct  FbTMMB
 
struct  FbTSTO
 
struct  FbTWCC
 
struct  LostPacketMask
 
struct  ReceiverReferenceTimeReport
 
struct  ReceiverReport
 
struct  SenderReport
 
struct  SourceDescription
 

Public Types

enum  PayloadTypes {
  e_FirstValidPayloadType = 192, e_IntraFrameRequest = 192, e_SenderReport = 200, e_ReceiverReport = 201,
  e_SourceDescription = 202, e_Goodbye = 203, e_ApplDefined = 204, e_TransportLayerFeedBack = 205,
  e_PayloadSpecificFeedBack = 206, e_ExtendedReport = 207, e_LastValidPayloadType = 223
}
 
enum  DescriptionTypes {
  e_END, e_CNAME, e_NAME, e_EMAIL,
  e_PHONE, e_LOC, e_TOOL, e_NOTE,
  e_PRIV, NumDescriptionTypes
}
 
enum  TransportLayerFbTypes { e_TransportNACK = 1, e_TMMBR = 3, e_TMMBN, e_TWCC = 15 }
 
enum  PayloadSpecificFbTypes {
  e_PictureLossIndication = 1, e_SliceLostIndication, e_ReferencePictureSelectionIndication, e_FullIntraRequest,
  e_TemporalSpatialTradeOffRequest, e_TemporalSpatialTradeOffNotification, e_VideoBackChannelMessage, e_ApplicationLayerFbMessage = 15
}
 

Public Member Functions

 RTP_ControlFrame (PINDEX compoundSize=2048)
 
 RTP_ControlFrame (const BYTE *data, PINDEX size, bool dynamic=true)
 
bool IsValid () const
 
unsigned GetVersion () const
 
unsigned GetCount () const
 
void SetCount (unsigned count)
 
RTP_SyncSourceId GetSenderSyncSource () const
 
PayloadTypes GetPayloadType () const
 
void SetPayloadType (PayloadTypes pt)
 
PINDEX GetPayloadSize () const
 
bool SetPayloadSize (PINDEX sz)
 
BYTE * GetPayloadPtr () const
 
bool ReadNextPacket ()
 
bool StartNewPacket (PayloadTypes pt)
 
void EndPacket ()
 
PINDEX GetPacketSize () const
 
bool SetPacketSize (PINDEX size)
 
bool ParseGoodbye (RTP_SyncSourceId &ssrc, RTP_SyncSourceArray &csrc, PString &msg)
 
bool ParseReceiverReport (RTP_SyncSourceId &ssrc, const ReceiverReport *&rr, unsigned &count)
 
ReceiverReportAddReceiverReport (RTP_SyncSourceId ssrc, unsigned receivers)
 
bool ParseSenderReport (RTP_SenderReport &txReport, const ReceiverReport *&rr, unsigned &count)
 
ReceiverReportAddSenderReport (RTP_SyncSourceId ssrc, const PTime &ntp, RTP_Timestamp ts, unsigned packets, uint64_t octets, unsigned receivers)
 
void AddReceiverReferenceTimeReport (RTP_SyncSourceId ssrc, const PTime &ntp)
 
DelayLastReceiverReport::ReceiverAddDelayLastReceiverReport (RTP_SyncSourceId ssrc, unsigned receivers)
 
void StartSourceDescription (RTP_SyncSourceId src)
 
void AddSourceDescriptionItem (unsigned type, const PString &data)
 
bool ParseSourceDescriptions (RTP_SourceDescriptionArray &descriptions)
 
void AddSourceDescription (RTP_SyncSourceId ssrc, const PString &cname, const PString &toolName, bool endPacket=true)
 
void AddIFR (RTP_SyncSourceId syncSourceIn)
 
unsigned GetFbType () const
 
FbHeaderAddFeedback (PayloadTypes pt, unsigned type, PINDEX fciSize)
 
template<typename FB >
void AddFeedback (PayloadTypes pt, unsigned type, FB *&data)
 
void AddNACK (RTP_SyncSourceId syncSourceOut, RTP_SyncSourceId syncSourceIn, const LostPacketMask &lostPackets)
 
bool ParseNACK (RTP_SyncSourceId &senderSSRC, RTP_SyncSourceId &targetSSRC, LostPacketMask &lostPackets)
 
void AddTMMB (RTP_SyncSourceId syncSourceOut, RTP_SyncSourceId syncSourceIn, unsigned maxBitRate, unsigned overhead, bool notify)
 
bool ParseTMMB (RTP_SyncSourceId &senderSSRC, RTP_SyncSourceId &targetSSRC, unsigned &maxBitRate, unsigned &overhead)
 
void AddTWCC (RTP_SyncSourceId syncSourceOut, const RTP_TransportWideCongestionControl &info)
 
bool ParseTWCC (RTP_SyncSourceId &senderSSRC, RTP_TransportWideCongestionControl &info)
 
void AddPLI (RTP_SyncSourceId syncSourceOut, RTP_SyncSourceId syncSourceIn)
 
bool ParsePLI (RTP_SyncSourceId &senderSSRC, RTP_SyncSourceId &targetSSRC)
 
void AddFIR (RTP_SyncSourceId syncSourceOut, RTP_SyncSourceId syncSourceIn, unsigned sequenceNumber)
 
bool ParseFIR (RTP_SyncSourceId &senderSSRC, RTP_SyncSourceId &targetSSRC, unsigned &sequenceNumber)
 
void AddTSTO (RTP_SyncSourceId syncSourceOut, RTP_SyncSourceId syncSourceIn, unsigned tradeOff, unsigned sequenceNumber)
 
bool ParseTSTO (RTP_SyncSourceId &senderSSRC, RTP_SyncSourceId &targetSSRC, unsigned &tradeOff, unsigned &sequenceNumber)
 
void AddREMB (RTP_SyncSourceId syncSourceOut, RTP_SyncSourceId syncSourceIn, unsigned maxBitRate)
 
bool ParseREMB (RTP_SyncSourceId &senderSSRC, RTP_SyncSourceArray &targetSSRCs, unsigned &maxBitRate)
 
void AddApplDefined (const ApplDefinedInfo &info)
 
bool ParseApplDefined (ApplDefinedInfo &info)
 

Static Public Member Functions

static void AddDelayLastReceiverReport (DelayLastReceiverReport::Receiver &dlrr, RTP_SyncSourceId ssrc, const PTime &ntp, const PTimeInterval &delay)
 

Protected Attributes

PINDEX m_packetSize
 
PINDEX m_compoundOffset
 
PINDEX m_payloadSize
 

Detailed Description

An RTP control frame encapsulation.

Member Enumeration Documentation

Enumerator
e_END 
e_CNAME 
e_NAME 
e_EMAIL 
e_PHONE 
e_LOC 
e_TOOL 
e_NOTE 
e_PRIV 
NumDescriptionTypes 
Enumerator
e_PictureLossIndication 
e_SliceLostIndication 
e_ReferencePictureSelectionIndication 
e_FullIntraRequest 
e_TemporalSpatialTradeOffRequest 
e_TemporalSpatialTradeOffNotification 
e_VideoBackChannelMessage 
e_ApplicationLayerFbMessage 
Enumerator
e_FirstValidPayloadType 
e_IntraFrameRequest 
e_SenderReport 
e_ReceiverReport 
e_SourceDescription 
e_Goodbye 
e_ApplDefined 
e_TransportLayerFeedBack 
e_PayloadSpecificFeedBack 
e_ExtendedReport 
e_LastValidPayloadType 
Enumerator
e_TransportNACK 
e_TMMBR 
e_TMMBN 
e_TWCC 

Constructor & Destructor Documentation

RTP_ControlFrame::RTP_ControlFrame ( PINDEX  compoundSize = 2048)
RTP_ControlFrame::RTP_ControlFrame ( const BYTE *  data,
PINDEX  size,
bool  dynamic = true 
)

Member Function Documentation

void RTP_ControlFrame::AddApplDefined ( const ApplDefinedInfo info)
DelayLastReceiverReport::Receiver* RTP_ControlFrame::AddDelayLastReceiverReport ( RTP_SyncSourceId  ssrc,
unsigned  receivers 
)
static void RTP_ControlFrame::AddDelayLastReceiverReport ( DelayLastReceiverReport::Receiver dlrr,
RTP_SyncSourceId  ssrc,
const PTime &  ntp,
const PTimeInterval &  delay 
)
static
FbHeader* RTP_ControlFrame::AddFeedback ( PayloadTypes  pt,
unsigned  type,
PINDEX  fciSize 
)
template<typename FB >
void RTP_ControlFrame::AddFeedback ( PayloadTypes  pt,
unsigned  type,
FB *&  data 
)
inline

References AddFeedback().

Referenced by AddFeedback().

void RTP_ControlFrame::AddFIR ( RTP_SyncSourceId  syncSourceOut,
RTP_SyncSourceId  syncSourceIn,
unsigned  sequenceNumber 
)
void RTP_ControlFrame::AddIFR ( RTP_SyncSourceId  syncSourceIn)
void RTP_ControlFrame::AddNACK ( RTP_SyncSourceId  syncSourceOut,
RTP_SyncSourceId  syncSourceIn,
const LostPacketMask lostPackets 
)
void RTP_ControlFrame::AddPLI ( RTP_SyncSourceId  syncSourceOut,
RTP_SyncSourceId  syncSourceIn 
)
void RTP_ControlFrame::AddReceiverReferenceTimeReport ( RTP_SyncSourceId  ssrc,
const PTime &  ntp 
)
ReceiverReport* RTP_ControlFrame::AddReceiverReport ( RTP_SyncSourceId  ssrc,
unsigned  receivers 
)
void RTP_ControlFrame::AddREMB ( RTP_SyncSourceId  syncSourceOut,
RTP_SyncSourceId  syncSourceIn,
unsigned  maxBitRate 
)
ReceiverReport* RTP_ControlFrame::AddSenderReport ( RTP_SyncSourceId  ssrc,
const PTime &  ntp,
RTP_Timestamp  ts,
unsigned  packets,
uint64_t  octets,
unsigned  receivers 
)
void RTP_ControlFrame::AddSourceDescription ( RTP_SyncSourceId  ssrc,
const PString &  cname,
const PString &  toolName,
bool  endPacket = true 
)
void RTP_ControlFrame::AddSourceDescriptionItem ( unsigned  type,
const PString &  data 
)
Parameters
typeDescription type
dataData for description
void RTP_ControlFrame::AddTMMB ( RTP_SyncSourceId  syncSourceOut,
RTP_SyncSourceId  syncSourceIn,
unsigned  maxBitRate,
unsigned  overhead,
bool  notify 
)
void RTP_ControlFrame::AddTSTO ( RTP_SyncSourceId  syncSourceOut,
RTP_SyncSourceId  syncSourceIn,
unsigned  tradeOff,
unsigned  sequenceNumber 
)
void RTP_ControlFrame::AddTWCC ( RTP_SyncSourceId  syncSourceOut,
const RTP_TransportWideCongestionControl info 
)
void RTP_ControlFrame::EndPacket ( )
unsigned RTP_ControlFrame::GetCount ( ) const
inline

References m_compoundOffset.

unsigned RTP_ControlFrame::GetFbType ( ) const
inline

References m_compoundOffset.

PINDEX RTP_ControlFrame::GetPacketSize ( ) const
inline

References m_packetSize.

BYTE* RTP_ControlFrame::GetPayloadPtr ( ) const
PINDEX RTP_ControlFrame::GetPayloadSize ( ) const
inline

References m_compoundOffset.

PayloadTypes RTP_ControlFrame::GetPayloadType ( ) const
inline

References m_compoundOffset.

RTP_SyncSourceId RTP_ControlFrame::GetSenderSyncSource ( ) const
inline
unsigned RTP_ControlFrame::GetVersion ( ) const
inline

References m_compoundOffset.

bool RTP_ControlFrame::IsValid ( ) const
bool RTP_ControlFrame::ParseApplDefined ( ApplDefinedInfo info)
bool RTP_ControlFrame::ParseFIR ( RTP_SyncSourceId senderSSRC,
RTP_SyncSourceId targetSSRC,
unsigned &  sequenceNumber 
)
bool RTP_ControlFrame::ParseGoodbye ( RTP_SyncSourceId ssrc,
RTP_SyncSourceArray csrc,
PString &  msg 
)
bool RTP_ControlFrame::ParseNACK ( RTP_SyncSourceId senderSSRC,
RTP_SyncSourceId targetSSRC,
LostPacketMask lostPackets 
)
bool RTP_ControlFrame::ParsePLI ( RTP_SyncSourceId senderSSRC,
RTP_SyncSourceId targetSSRC 
)
bool RTP_ControlFrame::ParseReceiverReport ( RTP_SyncSourceId ssrc,
const ReceiverReport *&  rr,
unsigned &  count 
)
bool RTP_ControlFrame::ParseREMB ( RTP_SyncSourceId senderSSRC,
RTP_SyncSourceArray targetSSRCs,
unsigned &  maxBitRate 
)
bool RTP_ControlFrame::ParseSenderReport ( RTP_SenderReport txReport,
const ReceiverReport *&  rr,
unsigned &  count 
)
bool RTP_ControlFrame::ParseSourceDescriptions ( RTP_SourceDescriptionArray descriptions)
bool RTP_ControlFrame::ParseTMMB ( RTP_SyncSourceId senderSSRC,
RTP_SyncSourceId targetSSRC,
unsigned &  maxBitRate,
unsigned &  overhead 
)
bool RTP_ControlFrame::ParseTSTO ( RTP_SyncSourceId senderSSRC,
RTP_SyncSourceId targetSSRC,
unsigned &  tradeOff,
unsigned &  sequenceNumber 
)
bool RTP_ControlFrame::ParseTWCC ( RTP_SyncSourceId senderSSRC,
RTP_TransportWideCongestionControl info 
)
bool RTP_ControlFrame::ReadNextPacket ( )
void RTP_ControlFrame::SetCount ( unsigned  count)
bool RTP_ControlFrame::SetPacketSize ( PINDEX  size)
bool RTP_ControlFrame::SetPayloadSize ( PINDEX  sz)
void RTP_ControlFrame::SetPayloadType ( PayloadTypes  pt)
bool RTP_ControlFrame::StartNewPacket ( PayloadTypes  pt)
void RTP_ControlFrame::StartSourceDescription ( RTP_SyncSourceId  src)
Parameters
srcSSRC/CSRC identifier

Field Documentation

PINDEX RTP_ControlFrame::m_compoundOffset
protected
PINDEX RTP_ControlFrame::m_packetSize
protected

Referenced by GetPacketSize().

PINDEX RTP_ControlFrame::m_payloadSize
protected

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