Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages   Examples  

rtp.h File Reference

General purpose interface of ccRTP. More...

#include <cc++/socket.h>

Go to the source code of this file.

Compounds

struct  RTPData::dataCounter
class  Members
class  MembershipControl
 Controls the group membership in the current session. More...

class  QueueRTCPManager
 Extends the RTP queue with the management of RTCP functions: Management of RTCP functions. More...

class  RTPData
 Interface to data received over RTP packets. More...

class  RTPDuplex
 A peer associated RTP socket pair for physically connected peer hosts. RTP peer host over UDP. More...

class  RTPQueue
 A thread serviced packet queue handler for building different kinds of RTP protocol systems. RTP protocol queue handler. More...

class  RTPSource
 A class of objects representing sources of RTP and RTCP packets. More...

class  T_RTPSocket
 Generic RTP protocol stack for exchange of realtime data. RTP protocol stack based on Common C++. More...

class  UDPIPv4Socket
 Wrapper for one or several sockets that provide the physical I/O related methods needed by the data or control connection of an RTP stack, based on UDP and IPv4. Socket for RTP stack based on UDP and IPv4. More...


Typedefs

typedef uint32 microtimeout_t
typedef uint32 nanotimeout_t
typedef T_RTPSocket< QueueRTCPManager,
UDPIPv4Socket, UDPIPv4Socket
RTPSocket

Enumerations

enum  rtp_payload_t {
  RTP_PAYLOAD_PCMU = 0, RTP_PAYLOAD_1016, RTP_PAYLOAD_G726, RTP_PAYLOAD_GSM,
  RTP_PAYLOAD_G723, RTP_PAYLOAD_DVI4_8000, RTP_PAYLOAD_DVI4_16000, RTP_PAYLOAD_LPC,
  RTP_PAYLOAD_PCMA, RTP_PAYLOAD_G722, RTP_PAYLOAD_L16_DUAL, RTP_PAYLOAD_L16_MONO,
  RTP_PAYLOAD_QCELP, RTP_PAYLOAD_MPA = 14, RTP_PAYLOAD_G728, RTP_PAYLOAD_DVI4_11025,
  RTP_PAYLOAD_DVI4_22050, RTP_PAYLOAD_G729, RTP_PAYLOAD_CELB = 25, RTP_PAYLOAD_JPEG,
  RTP_PAYLOAD_NV = 28, RTP_PAYLOAD_H261 = 31, RTP_PAYLOAD_MPV, RTP_PAYLOAD_MP2T,
  RTP_PAYLOAD_H263, RTP_PAYLOAD_INVALID = 128, RTP_PAYLOAD_G726_40, RTP_PAYLOAD_G726_24,
  RTP_PAYLOAD_G726_16, RTP_PAYLOAD_G729D, RTP_PAYLOAD_G729E, RTP_PAYLOAD_GSM_EFR,
  RTP_PAYLOAD_L8, RTP_PAYLOAD_RED, RTP_PAYLOAD_VDVI, RTP_PAYLOAD_BT656,
  RTP_PAYLOAD_H263_1998, RTP_PAYLOAD_MP1S, RTP_PAYLOAD_MP2P, RTP_PAYLOAD_BMPEG,
  RTP_PAYLOAD_EMPTY
}
 rtp.h cc++/rtp.h RTP static payload types. More...

enum  rtcp_type_t {
  RTCP_TYPE_SR = 200, RTCP_TYPE_RR, RTCP_TYPE_SDES, RTCP_TYPE_BYE,
  RTCP_TYPE_APP
}
 rtp.h cc++/rtp.h. More...

enum  sdes_item_type_t {
  RTCP_SDES_ITEM_END = 0, RTCP_SDES_ITEM_CNAME, RTCP_SDES_ITEM_NAME, RTCP_SDES_ITEM_EMAIL,
  RTCP_SDES_ITEM_PHONE, RTCP_SDES_ITEM_LOC, RTCP_SDES_ITEM_TOOL, RTCP_SDES_ITEM_NOTE,
  RTCP_SDES_ITEM_PRIV, RTCP_SDES_ITEM_H323_CADDR
}
 rtp.h cc++/rtp.h. More...

enum  type_of_service_t { BEST_EFFORT_SERVICE, ENHANCED_SERVICE }
 rtp.h cc++/rtp.h Type of network service the application uses. More...

enum  rtpsource_state_t { RTPSOURCE_STATE_PREVALID, RTPSOURCE_STATE_VALID, RTPSOURCE_STATE_SAYINGBYE }
enum  rtp_purge_t { RTP_PURGE_SEND, RTP_PURGE_RECV, RTP_PURGE_BOTH }
 rtp.h cc++/rtp.h Flags to select wheter to purge the transmission, reception or both queues. More...

enum  rtp_cast_t { CAST_MCAST, CAST_UCAST }

Variables

const uint8 CCRTP_VERSION = 2
CCXX_CLASS_EXPORT IncomingRTPPkt
CCXX_CLASS_EXPORT OutgoingRTPPkt
CCXX_CLASS_EXPORT RTPQueue
CCXX_CLASS_EXPORT QueueRTCPManager
CCXX_CLASS_EXPORT RTPSource


Detailed Description

General purpose interface of ccRTP.


Typedef Documentation

typedef T_RTPSocket<QueueRTCPManager,UDPIPv4Socket,UDPIPv4Socket> RTPSocket
 

typedef uint32 microtimeout_t
 

typedef uint32 nanotimeout_t
 


Enumeration Type Documentation

enum rtcp_type_t
 

rtp.h cc++/rtp.h.

RTCP packet types. These codes were initially specified in RFC 1889.

Enumeration values:
RTCP_TYPE_SR   Sender Report.
RTCP_TYPE_RR   Receiver Report.
RTCP_TYPE_SDES   Source DEScription.
RTCP_TYPE_BYE   End of participation.
RTCP_TYPE_APP   APPlication specific.

enum rtp_cast_t
 

Enumeration values:
CAST_MCAST  
CAST_UCAST  

enum rtp_payload_t
 

rtp.h cc++/rtp.h RTP static payload types.

RTP Payload Types (usually referred to as PT) for standard audio and video encodings. These codes were initially specified in RFC 1890, ``RTP Profile for Audio and Video Conferences with Minimal Control.'' Codes below 96 may be assigned statically, although some of them are already reserverd. Codes in the range 96-127 are assigned dinamically by means outside of the RTP profile or protocol specification.

Enumeration values:
RTP_PAYLOAD_PCMU   ITU-T G.711. $\mu-$law audio (RFC 1890).
RTP_PAYLOAD_1016   CELP audio (FED-STD 1016) (RFC 1890) (Will soon be deprecated).
RTP_PAYLOAD_G726   ITU-T G.726. ADPCM audio (RFC 1890).
RTP_PAYLOAD_GSM   GSM audio (RFC 1890).
RTP_PAYLOAD_G723   ITU-T G.723. MP-MLQ ACELP audio (RFC 1890).
RTP_PAYLOAD_DVI4_8000   Modified IMA ADPCM audio 8Khz (RFC 1890).
RTP_PAYLOAD_DVI4_16000   Modified IMA ADPCM audio 16Khz (RFC 1890).
RTP_PAYLOAD_LPC   LPC audio (RFC 1890).
RTP_PAYLOAD_PCMA   ITU-T G.711 A-law audio (RFC 1890).
RTP_PAYLOAD_G722   Audio (RFCs 1890, 3047).
RTP_PAYLOAD_L16_DUAL   Linear uncompressed dual audio (RFC 1890).
RTP_PAYLOAD_L16_MONO   Linear uncompressed mono audio (RFC 1890).
RTP_PAYLOAD_QCELP   Audio at 8000 hz.
RTP_PAYLOAD_MPA   MPEG Audio elem. stream (RFCs 1890, 2250).
RTP_PAYLOAD_G728   ITU-T G.728. LD-CELP audio.
RTP_PAYLOAD_DVI4_11025   DVI audio at 11025 hz (by Joseph Di Pol).
RTP_PAYLOAD_DVI4_22050   DVI audio at 22050 hz (by Joseph Di Pol).
RTP_PAYLOAD_G729   ITU-T G.729. CS-ACELP audio.
RTP_PAYLOAD_CELB   Sun's propietary audio. (RFCs 1890, 2029).
RTP_PAYLOAD_JPEG   JPEG (ISO 10918) video (RFCs 1890, 2435).
RTP_PAYLOAD_NV   Ron Frederick's nv audio (RFC 1890).
RTP_PAYLOAD_H261   ITU-T H.261 video (RFCs 1890, 2032).
RTP_PAYLOAD_MPV   MPEG Video elem. stream (RFCs 1890, 2250).
RTP_PAYLOAD_MP2T   MPEG 2 Transport stream (RFCs 1890, 2250).
RTP_PAYLOAD_H263   ITU-T H.263 video (RFCcs 2190, 2429).
RTP_PAYLOAD_INVALID  
RTP_PAYLOAD_G726_40  
RTP_PAYLOAD_G726_24  
RTP_PAYLOAD_G726_16  
RTP_PAYLOAD_G729D  
RTP_PAYLOAD_G729E  
RTP_PAYLOAD_GSM_EFR  
RTP_PAYLOAD_L8  
RTP_PAYLOAD_RED  
RTP_PAYLOAD_VDVI  
RTP_PAYLOAD_BT656   ITU BT.656-3 video (RFC 2431).
RTP_PAYLOAD_H263_1998   1998 version of H.263 video (RFC 2429).
RTP_PAYLOAD_MP1S   MPEG Systems stream.
RTP_PAYLOAD_MP2P   MPEG 2 Program stream.
RTP_PAYLOAD_BMPEG   Bundled MPEG (RFC 2343).
RTP_PAYLOAD_EMPTY   "empty" payload.

enum rtp_purge_t
 

rtp.h cc++/rtp.h Flags to select wheter to purge the transmission, reception or both queues.

Intended to be used when calling RTPQueue::Purge

Enumeration values:
RTP_PURGE_SEND   Purge only packets in the sending queue.
RTP_PURGE_RECV   Purge only packets in the reception queue.
RTP_PURGE_BOTH   Purge all packets.

enum rtpsource_state_t
 

Enumeration values:
RTPSOURCE_STATE_PREVALID  
RTPSOURCE_STATE_VALID  
RTPSOURCE_STATE_SAYINGBYE  

enum sdes_item_type_t
 

rtp.h cc++/rtp.h.

SDES items that may be carried in a Source DEScription RTCP packet. CNAME is mandatory, the rest are optional and have different sending frequencies.

Enumeration values:
RTCP_SDES_ITEM_END   END of SDES item list.
RTCP_SDES_ITEM_CNAME   Canonical end-point identifier.
RTCP_SDES_ITEM_NAME   Personal NAME of the user.
RTCP_SDES_ITEM_EMAIL   EMAIL address of the user.
RTCP_SDES_ITEM_PHONE   Phone number of the user.
RTCP_SDES_ITEM_LOC   Location where the user is.
RTCP_SDES_ITEM_TOOL   Application or tool.
RTCP_SDES_ITEM_NOTE   Comment usually reporting state.
RTCP_SDES_ITEM_PRIV   Private extension.
RTCP_SDES_ITEM_H323_CADDR   H323 callable address.

enum type_of_service_t
 

rtp.h cc++/rtp.h Type of network service the application uses.

If the application uses enhanced network service, for instance Integrated Services or Differentiated Services, it has not to ensure fair competition with TCP, provided that the requested service is actually being delivered. Whenever the application uses best-effort service or the requested enhanced service is not actually being delivered, it has to ensure fair competition with TCP. By default, best-effot is assumed.

Note:
Although not required, RTP packets are always sent on top of UDP segments. No other underlying transport protocol is supported at present.
Todo:
implement fair competition with tcp
Enumeration values:
BEST_EFFORT_SERVICE   Best-effort network service.
ENHANCED_SERVICE   Enhanced network service.


Variable Documentation

const uint8 CCRTP_VERSION = 2
 

class CCXX_CLASS_EXPORT IncomingRTPPkt
 

class CCXX_CLASS_EXPORT OutgoingRTPPkt
 

class CCXX_CLASS_EXPORT QueueRTCPManager
 

class CCXX_CLASS_EXPORT RTPQueue
 

class CCXX_CLASS_EXPORT RTPSource
 


Generated at Wed Dec 5 07:18:08 2001 for ccRTP by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001