RTP Trace System  1.0
Coral Namespace Reference

Namespaces

namespace  Coral
namespace  RTPConstants

Classes

class  AbstractLayerDescription
 Abstract Layer Description. More...
class  AbstractQoSDescription
 Abstract QoS Description. More...
struct  BandwidthInfo
 Bandwidth Info. More...
struct  ResourceUtilizationSimplePoint
 Resource Utilization Simple Point. More...
struct  ResourceUtilizationMultiPoint
 Resource Utilization Simple Point. More...
class  BandwidthManager
 Bandwidth Manager. More...
class  ConstantBitrateFrameSizeScalability
 Constant Bitrate Frame Size Scalability. More...
struct  DecoderPacket
 DecoderPacket. More...
class  DecoderInterface
 Decoder Interface. More...
class  DecoderRepositoryInterface
 Decoder Repository. More...
struct  EncoderPacket
 EncoderPacket. More...
class  EncoderInterface
 Encoder Interface. More...
class  EncoderRepositoryInterface
 Encoder Repository Interface. More...
class  FrameRateScalabilityInterface
 Frame Rate Scalability Interface. More...
class  FrameSizeScalabilityInterface
 Frame Rate Scalability Interface. More...
class  GenericFrameSizeScalability
 Generic Frame Size Scalability. More...
class  GNUPlotData
 GNUPlot Data. More...
class  GNUPlotScript
 GNUPlot Data. More...
class  H263QoSDescription
 H263 QoS Description. More...
class  H263TraceArray
 H263 Trace Array. More...
class  H263WriterQoSDescription
 H263 Writer QoS Description. More...
class  InternetAddress
 Socket Address. More...
class  InternetFlow
 Internet Flow. More...
struct  in6_flowlabel_req
class  ManagedStreamInterface
 Managed Stream Interface. More...
class  MediaInfo
 Media Info. More...
class  MP3QoSDescription
 MP3 QoS Description. More...
class  MP3TraceArray
 MP3 Trace Array. More...
class  MP3WriterQoSDescription
 MP3 Writer QoS Description. More...
class  MPEGQoSDescription
 MPEG QoS Description. More...
class  MPEGTraceArray
 MPEG Trace Array. More...
class  MPEGWriterQoSDescription
 MPEG Writer QoS Description. More...
struct  PingerHost
 PingerHost. More...
class  PortableAddress
 Portable Internet Address. More...
class  Randomizer
 Randomizer. More...
struct  LayerClassMappingPossibility
 Layer Class Mapping Possibility. More...
struct  LayerClassMapping
 Layer Class Mapping. More...
class  ResourceUtilizationPoint
 Resource Utilization Point. More...
struct  icmp_filter
class  RoundTripTimePinger
 Round Trip Time Pinger. More...
class  RTCPAbstractServer
 RTCP abstract server. More...
class  RTCPCommonHeader
 RTCP Common Header. More...
class  RTCPSenderInfoBlock
 RTCP Sender Info Block. More...
class  RTCPReceptionReportBlock
 RTCP Reception Report Block. More...
class  RTCPReport
 RTCP Report. More...
class  RTCPSenderReport
 RTCP Sender Report. More...
class  RTCPReceiverReport
 RTCP Sender Report. More...
class  RTCPSourceDescriptionItem
 RTCP Source Description Item. More...
class  RTCPSourceDescriptionChunk
 RTCP Source Description Chunk. More...
class  RTCPSourceDescription
 RTCP Source Description (SDES) More...
class  RTCPBye
 RTCP BYE Message. More...
class  RTCPApp
 RTCP APP Message. More...
class  RTCPReceiver
 RTCP Receiver. More...
class  RTCPSender
 RTCP Sender. More...
class  RTPPacket
 RTP Packet. More...
class  RTPReceiver
 RTP Receiver. More...
class  RTPSender
 RTP Sender. More...
class  SeqNumValidator
 Sequence Number Validator. More...
struct  DiffServClass
 DiffServ Class. More...
class  ServiceLevelAgreement
 Trace Layer Configuration. More...
struct  SessionDescription
 Session Description. More...
class  Socket
 Socket. More...
class  SocketAddress
 Socket Address. More...
class  SourceStateInfo
 Source State Info. More...
class  StreamDescription
 Stream Description. More...
class  Synchronizable
 Synchronizable. More...
struct  TDTFPrefixExtensionHeader
 TDTF Prefix Extension Header. More...
struct  TDTFPrefix
 TDTF Prefix. More...
struct  TDTFSuffix
 TDTF Suffix. More...
struct  EmpiricalEnvelopePair
 Empirical Envelope Pair. More...
struct  EmpiricalEnvelope
 Empirical Envelope Header. More...
struct  FrameDescription
 Frame Description. More...
struct  TraceHeader
 Trace Header. More...
struct  UtilizationHeader
 Trace Header. More...
struct  ResourceUtilizationEntry
 Resource Utilization Entry. More...
struct  ResourceUtilizationHeader
 Resource Utilization Header. More...
struct  IntervalHeader
 Interval Header. More...
struct  LayerHeader
 Layer Header. More...
struct  PositionLengthIntervalIndexEntry
 Layer Header. More...
struct  PositionLengthIntervalIndexHeader
 Layer Header. More...
struct  ResourceUtilizationListIndexEntry
 Resource Utilization List Index Entry. More...
struct  ResourceUtilizationListIndexHeader
 Resource Utilization List Index Header. More...
struct  MainIndexEntry
 Layer Header. More...
struct  MainIndexHeader
 Main Index Header. More...
class  TDTFMediaReader
 TDTF Media Reader. More...
class  TDTFReader
 Trace Reader. More...
class  TDTFWriter
 TDTF Writer. More...
class  Thread
 Thread. More...
class  TimedThread
 Timed Thread. More...
class  TraceArray
 Trace Array. More...
class  TraceClient
 Trace Client. More...
class  TraceClientAppPacket
 Trace Client RTCP-SDES-APP-PRIV Packet. More...
struct  TraceLayerConfiguration
 Trace Layer Configuration. More...
struct  TraceConfiguration
 Trace Configuration. More...
class  TraceDecoder
 Trace Decoder. More...
class  TraceDecoderInterface
 Trace Decoder Interface. More...
class  TraceDecoderRepository
 Trace Decoder Repository. More...
struct  QualityScenarioEntry
struct  QualityScenario
class  TraceEncoder
 Trace Encoder. More...
class  TraceEncoderInterface
 Trace Encoder Interface. More...
class  TraceEncoderRepository
 Trace Encoder Repository. More...
class  TraceFrameRateScalability
 Trace Frame Rate Scalability. More...
class  TraceFrameSizeScalability
 Trace Frame Size Scalability. More...
class  TracePacket
 Trace Packet. More...
struct  TracePacketData
 Trace Packet Data. More...
class  TraceLayerDescription
 Trace Layer QoS Description. More...
class  TraceQoSDescription
 Trace QoS Description. More...
class  TraceServer
 Trace Server. More...
class  TrafficClassValues
 Traffic Class Values. More...
class  TrafficPolicer
 Traffic Policer. More...
class  TrafficShaperSingleton
 Traffic Shaper Singleton. More...
class  TrafficShaper
 Traffic Shaper. More...
class  UnixAddress
 Socket Address. More...

Enumerations

enum  MediaError {
  ME_NoError = 0, ME_NoMedia = 1, ME_EOF = 2, ME_UnrecoverableError = 20,
  ME_BadMedia = ME_UnrecoverableError + 0, ME_ReadError = ME_UnrecoverableError + 1, ME_OutOfMemory = ME_UnrecoverableError + 2
}
enum  RTCP_Type {
  RTCP_SR = 200, RTCP_RR = 201, RTCP_SDES = 202, RTCP_BYE = 203,
  RTCP_APP = 204
}
enum  RTCP_SDES_Type {
  RTCP_SDES_END = 0, RTCP_SDES_CNAME = 1, RTCP_SDES_NAME = 2, RTCP_SDES_EMAIL = 3,
  RTCP_SDES_PHONE = 4, RTCP_SDES_LOC = 5, RTCP_SDES_TOOL = 6, RTCP_SDES_NOTE = 7,
  RTCP_SDES_PRIV = 8
}
enum  UtilityFunctions { UF_Linear = 0x0000, UF_Exponential1 = 0x0010, UF_Exponential2 = 0x0011, UF_Undefined = 0xffff }

Functions

ostream & operator<< (ostream &os, const AbstractQoSDescription &aqd)
ostream & operator<< (ostream &os, const BandwidthInfo &bi)
ostream & operator<< (ostream &os, const ResourceUtilizationSimplePoint &srup)
ostream & operator<< (ostream &os, const ResourceUtilizationMultiPoint &srup)
void breakDetector (int signum)
void installBreakDetector ()
void uninstallBreakDetector ()
bool breakDetected ()
ostream & operator<< (ostream &os, const MediaInfo &mi)
int operator== (const PingerHost &ph1, const PingerHost &ph2)
int operator< (const PingerHost &ph1, const PingerHost &ph2)
int operator> (const PingerHost &ph1, const PingerHost &ph2)
ostream & operator<< (ostream &os, const ResourceUtilizationPoint &rup)
ostream & operator<< (ostream &os, RoundTripTimePinger &pinger)
ostream & operator<< (ostream &os, const RTPPacket &packet)
ostream & operator<< (ostream &os, const ServiceLevelAgreement sla)
ostream & operator<< (ostream &os, const SocketAddress &sa)
card64 getMicroTime ()
cardinal calculatePacketsPerSecond (const cardinal payloadBytesPerSecond, const cardinal framesPerSecond, const cardinal maxPacketSize, const cardinal headerLength)
cardinal calculateBytesPerSecond (const cardinal payloadBytesPerSecond, const cardinal framesPerSecond, const cardinal maxPacketSize, const cardinal headerLength)
bool scanURL (const String &location, String &protocol, String &host, String &path)
void printTimeStamp (ostream &os)
void debug (const char *string)
card16 translate16 (const card16 x)
card32 translate32 (const card32 x)
card64 translate64 (const card64 x)
card64 translateToBinary (const double x)
double translateToDouble (const card64 x)
template<class T >
void quickSort (T *array, const integer start, const integer end)
template<class T >
cardinal removeDuplicates (T *array, const cardinal length)
ostream & operator<< (ostream &os, const TraceArray &traceArray)
ostream & operator<< (ostream &os, const TraceConfiguration &config)
double evaluateUtilityFunction (const cardinal type, const double scaleFactor, const double *constantArray, const cardinal constants)
double evaluateUtilityFunctionTranslated (const cardinal type, const double scaleFactor, const card64 *constantArray, const cardinal constants)

Variables

bool DetectedBreak = false
bool PrintedBreak = false
TraceConfiguration TraceConfig
const card64 PositionStepsPerSecond = (card64)1000000000
const cardinal UDPHeaderSize = 8
const cardinal IPv4HeaderSize = 20
const cardinal IPv6HeaderSize = 40
const card8 TraceServerDefaultTrafficClass = 0x00
const card8 TraceClientDefaultTrafficClass = 0x00
QualityScenario QualityScenarios []

Enumeration Type Documentation

Definition of encoder errors.

Enumerator:
ME_NoError 
ME_NoMedia 
ME_EOF 
ME_UnrecoverableError 
ME_BadMedia 
ME_ReadError 
ME_OutOfMemory 

Definition of RTCP SDES message types.

Enumerator:
RTCP_SDES_END 
RTCP_SDES_CNAME 
RTCP_SDES_NAME 
RTCP_SDES_EMAIL 
RTCP_SDES_PHONE 
RTCP_SDES_LOC 
RTCP_SDES_TOOL 
RTCP_SDES_NOTE 
RTCP_SDES_PRIV 

Definition of RTCP message types.

Enumerator:
RTCP_SR 
RTCP_RR 
RTCP_SDES 
RTCP_BYE 
RTCP_APP 

This is an enumeration of predefined utility function types.

Enumerator:
UF_Linear 

Linear: U(x) = x. Parameters: none

UF_Exponential1 

Exponential #1 (from [LS98]): U(x) = 1 - exp(a*x + b). a = (ln(-0.95 + 1) - b) / q95 b = (q95 * ln(-0.05 + 1) - q50 * ln(-0.95 + 1)) / (q95 - q50)

Parameters: q50 = Scale factor for 50% perceptual quality. q95 = Scale facotr for 95% perceptual quality.

UF_Exponential2 

Exponential #2 (from [Rog98]): U(x) = a*ln(b*x + c). U(1) = 0, U(2) = 1. This is equal to U(x) = a*ln(b*(x+1) + c) with U(0) = 0, U(1) = 1. a = 1 / (p - 10) b = exp(1/a) - 1 c = 2 - exp(1/a)

Parameters: p = Sensitivity

UF_Undefined 

Undefined.


Function Documentation

Check, if break has been detected.

void Coral::breakDetector ( int  signum)
cardinal Coral::calculateBytesPerSecond ( const cardinal  payloadBytesPerSecond,
const cardinal  framesPerSecond,
const cardinal  maxPacketSize,
const cardinal  headerLength 
)

Calculate frames per second.

Asumption: Every frame has it's own packets.

Parameters:
payloadBytesPerSecondByte rate of payload data.
framesPerSecondFrame rate.
maxPacketSizeMaximum size of a packet.
headerLengthLength of header for each frame.
Returns:
Total frames per second.
cardinal Coral::calculatePacketsPerSecond ( const cardinal  payloadBytesPerSecond,
const cardinal  framesPerSecond,
const cardinal  maxPacketSize,
const cardinal  headerLength 
)

Calculate packets per second.

Asumption: Every frame has it's own packets.

Parameters:
payloadBytesPerSecondByte rate of payload data.
framesPerSecondFrame rate.
maxPacketSizeMaximum size of a packet.
headerLengthLength of header for each frame.
Returns:
Total bytes per second.
void Coral::debug ( const char *  string) [inline]

Debug output.

Parameters:
stringDebug string to be written to cerr.
double Coral::evaluateUtilityFunction ( const cardinal  type,
const double  scaleFactor,
const double *  constantArray,
const cardinal  constants 
)

Evaluate utility function of given type.

Parameters:
typeUtility function type.
scaleFactorScale factor to evaluate utility function for (out of [0,1]).
constantArrayArray of utility function's constants.
constantsNumber of constants.
Returns:
Result.
double Coral::evaluateUtilityFunctionTranslated ( const cardinal  type,
const double  scaleFactor,
const card64 constantArray,
const cardinal  constants 
) [inline]

Evaluate utility function of given type using byte-order translated constants (translateToDouble()).

Parameters:
typeUtility function type.
scaleFactorScale factor to evaluate utility function for (out of [0,1]).
constantArrayArray of utility function's constants.
constantsNumber of constants.
Returns:
Result.
See also:
translateToDouble
translateToBinary

Get microseconds since January 01, 1970.

Returns:
Microseconds since January 01, 1970.

Install break handler.

int Coral::operator< ( const PingerHost &  ph1,
const PingerHost &  ph2 
) [inline]

Operator "<".

ostream& Coral::operator<< ( ostream &  os,
const TraceConfiguration &  config 
)

Output operator.

ostream& Coral::operator<< ( ostream &  os,
const ServiceLevelAgreement  config 
)

Output operator.

ostream& Coral::operator<< ( ostream &  os,
const RTPPacket &  packet 
)

Output operator.

ostream& Coral::operator<< ( ostream &  os,
const BandwidthInfo &  bi 
)

Operator "<<".

ostream& Coral::operator<< ( ostream &  os,
const ResourceUtilizationSimplePoint &  srup 
)

Output operator.

ostream& Coral::operator<< ( ostream &  os,
const ResourceUtilizationPoint &  rup 
)

Output operator.

ostream& Coral::operator<< ( ostream &  os,
const MediaInfo &  mi 
)

Output operator.

ostream& Coral::operator<< ( ostream &  os,
const ResourceUtilizationMultiPoint &  srup 
)

Output operator.

ostream& Coral::operator<< ( ostream &  os,
const SocketAddress &  sa 
) [inline]

Output operator.

ostream& Coral::operator<< ( ostream &  os,
const TraceArray &  traceArray 
)

Output operator.

ostream& Coral::operator<< ( ostream &  os,
const AbstractQoSDescription &  aqd 
)

Output operator.

ostream& Coral::operator<< ( ostream &  os,
RoundTripTimePinger &  pinger 
)

Friend output operator.

int Coral::operator== ( const PingerHost &  ph1,
const PingerHost &  ph2 
) [inline]

Operator "==".

Operator "!=".

int Coral::operator> ( const PingerHost &  ph1,
const PingerHost &  ph2 
) [inline]

Operator ">".

void Coral::printTimeStamp ( ostream &  os = cout)

Print time stamp (date and time) to given output stream.

Parameters:
osOutput stream.
template<class T >
void Coral::quickSort ( T *  array,
const integer  start,
const integer  end 
)

Sort array using QuickSort algorithm.

Parameters:
arrayArray to be sorted.
startStart offset in array.
endEnd offset in array.
template<class T >
cardinal Coral::removeDuplicates ( T *  array,
const cardinal  length 
)

Remove duplicates from *sorted* array.

Parameters:
arrayArray to be sorted.
lengthLength of array.
bool Coral::scanURL ( const String location,
String protocol,
String host,
String path 
)

Scan protocol, host and path from an URL string. The protocol my be missing, if the String "protocol" is initialized with a default.

Parameters:
locationString with URL.
protocolPlace to store the protocol name.
hostPlace to store the host name.
pathPlace to store the path.
Returns:
true on success; false otherwise.
card16 Coral::translate16 ( const card16  x) [inline]

Translate 16-bit value to network byte order.

Parameters:
xValue to be translated.
Returns:
Translated value.
card32 Coral::translate32 ( const card32  x) [inline]

Translate 32-bit value to network byte order.

Parameters:
xValue to be translated.
Returns:
Translated value.
card64 Coral::translate64 ( const card64  x) [inline]

Translate 64-bit value to network byte order.

Parameters:
xValue to be translated.
Returns:
Translated value.
card64 Coral::translateToBinary ( const double  x) [inline]

Translate double to 64-bit binary.

Parameters:
xValue to be translated.
Returns:
Translated value.
double Coral::translateToDouble ( const card64  x) [inline]

Translate 64-bit binary to double.

Parameters:
xValue to be translated.
Returns:
Translated value.

Uninstall break handler.


Variable Documentation

bool Coral::DetectedBreak = false

IPv4 header size.

IPv6 header size.

Constant for position steps per second: 1 step = 1 nanosecond;

bool Coral::PrintedBreak = false

Default traffic class/TOS for RTCP control connection from client to server.

Global trace configuration, filled with default values.

Default traffic class/TOS for RTP data connection from server to client.

UDP header size.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines