Public Member Functions |
| RTPDuplex (const InetAddress &bind, tpport_t local, tpport_t remote) |
virtual | ~RTPDuplex () |
|
|
UDPTransmit::Error | connect (const InetHostAddress &host, tpport_t port=0) |
void | setTypeOfService (Tos tos) |
| Specify the kind of service the application expects to use.
|
void | enableStack () |
| Enable packet queue processing in the stack.
|
void | disableStack () |
| Disable packet queue processing in the stack.
|
bool | isActive () const |
| Get active connection state flag.
|
uint32 | getCurrentTimestamp () const |
| Get the timestamp that should be given for a packet whose payload sampling instant corresponds to the current system time.
|
void | setSessionBandwidth (uint32 bw) |
| Specify the bandwidth of the current session.
|
uint32 | getDefaultSessionBandwidth () const |
uint32 | getSessionBandwidth () const |
void | setTimeclock () |
| Set the packet timeclock for synchronizing timestamps.
|
timeout_t | getTimeclock () const |
| Get the packet timeclock for synchronizing timestamps.
|
SyncSourcesIterator | begin () |
SyncSourcesIterator | end () |
const AppDataUnit * | getData (uint32 stamp, const SyncSource *src=NULL) |
| Retreive data from a specific timestamped packet if such a packet is currently available in the receive buffer.
|
bool | isWaiting (const SyncSource *src=NULL) const |
| Determine if packets are waiting in the reception queue.
|
uint32 | getFirstTimestamp (const SyncSource *src=NULL) const |
| Get timestamp of first packet waiting in the queue.
|
void | setMinValidPacketSequence (uint8 packets) |
| When receiving packets from a new source, it may be convenient to reject a first few packets before we are really sure the source is valid.
|
uint8 | getDefaultMinValidPacketSequence () const |
uint8 | getMinValidPacketSequence () const |
| Get the minimun number of consecutive packets that must be received from a source before accepting its data packets.
|
void | setMaxPacketMisorder (uint16 packets) |
uint16 | getDefaultMaxPacketMisorder () const |
uint16 | getMaxPacketMisorder () const |
void | setMaxPacketDropout (uint16 packets) |
| It also prevents packets sent after a restart of the source being immediately accepted.
|
uint16 | getDefaultMaxPacketDropout () const |
uint16 | getMaxPacketDropout () const |
void | setInQueueCryptoContext (CryptoContext *cc) |
| Set input queue CryptoContext.
|
void | removeInQueueCryptoContext (CryptoContext *cc) |
| Remove input queue CryptoContext.
|
CryptoContext * | getInQueueCryptoContext (uint32 ssrc) |
| Get an input queue CryptoContext identified by SSRC.
|
size_t | getDefaultMaxRecvPacketSize () const |
size_t | getMaxRecvPacketSize () const |
void | setMaxRecvPacketSize (size_t maxsize) |
bool | setPayloadFormat (const PayloadFormat &pf) |
| Set the payload format in use, for timing and payload type identification purposes.
|
uint32 | getLocalSSRC () const |
uint32 | getCurrentRTPClockRate () const |
| Get the clock rate in RTP clock units (for instance, 8000 units per second for PCMU, or 90000 units per second for MP2T).
|
PayloadType | getCurrentPayloadType () const |
timeval | getInitialTime () const |
bool | addDestination (const InetHostAddress &ia, tpport_t dataPort=DefaultRTPDataPort, tpport_t controlPort=0) |
bool | addDestination (const InetMcastAddress &ia, tpport_t dataPort=DefaultRTPDataPort, tpport_t controlPort=0) |
bool | forgetDestination (const InetHostAddress &ia, tpport_t dataPort=DefaultRTPDataPort, tpport_t controlPort=0) |
bool | forgetDestination (const InetMcastAddress &ia, tpport_t dataPort=DefaultRTPDataPort, tpport_t controlPort=0) |
void | addContributor (uint32 csrc) |
| Add csrc as the CSRC identifier of a new contributor.
|
bool | removeContributor (uint32 csrc) |
| Remove CSRC from the list of contributors.
|
bool | isSending () const |
| Determine if outgoing packets are waiting to send.
|
void | putData (uint32 stamp, const unsigned char *data=NULL, size_t len=0) |
| This is used to create a data packet in the send queue.
|
void | sendImmediate (uint32 stamp, const unsigned char *data=NULL, size_t len=0) |
| This is used to create a data packet and send it immediately.
|
void | setPadding (uint8 paddinglen) |
| Set padding.
|
void | setMark (bool mark) |
| Set marker bit for the packet in which the next data provided will be send.
|
bool | getMark () const |
| Get wheter the mark bit will be set in the next packet.
|
size_t | setPartial (uint32 timestamp, unsigned char *data, size_t offset, size_t max) |
| Set partial data for an already queued packet.
|
microtimeout_t | getDefaultSchedulingTimeout () const |
void | setSchedulingTimeout (microtimeout_t to) |
| Set the default scheduling timeout to use when no data packets are waiting to be sent.
|
microtimeout_t | getDefaultExpireTimeout () const |
void | setExpireTimeout (microtimeout_t to) |
| Set the "expired" timer for expiring packets pending in the send queue which have gone unsent and are already "too late" to be sent now.
|
microtimeout_t | getExpireTimeout () const |
uint32 | getSendPacketCount () const |
| Get the total number of packets sent so far.
|
uint32 | getSendOctetCount () const |
| Get the total number of octets (payload only) sent so far.
|
uint16 | getSequenceNumber () const |
| Get the sequence number of the next outgoing packet.
|
void | setOutQueueCryptoContext (CryptoContext *cc) |
| Set ouput queue CryptoContext.
|
void | removeOutQueueCryptoContext (CryptoContext *cc) |
| Remove output queue CryptoContext.
|
CryptoContext * | getOutQueueCryptoContext (uint32 ssrc) |
| Get an output queue CryptoContext identified by SSRC.
|
size_t | getDefaultMaxSendSegmentSize () |
void | setMaxSendSegmentSize (size_t size) |
| Set maximum payload segment size before fragmenting sends.
|
size_t | getMaxSendSegmentSize () |
Protected Member Functions |
bool | isPendingData (microtimeout_t timeout) |
size_t | sendData (const unsigned char *const buffer, size_t len) |
size_t | recvData (unsigned char *buffer, size_t len, InetHostAddress &na, tpport_t &tp) |
void | setDataPeer (const InetAddress &, tpport_t) |
void | setControlPeer (const InetAddress &, tpport_t) |
size_t | getNextDataPacketSize () const |
SyncSource & | getPeer () |
| RTPDataQueue (uint32 size=defaultMembersHashSize) |
| Constructor.
|
| RTPDataQueue (uint32 *ssrc, uint32 size=defaultMembersHashSize) |
| Using this constructor you can start a session with the given ssrc, instead of the usual randomly generated one.
|
virtual | ~RTPDataQueue () |
| The queue destructor flushes the queue and stops all services.
|
virtual void | timerTick () |
| A plugin point for timer tick driven events.
|
void | renewLocalSSRC () |
void | endQueue () |
| This method ends the queue.
|
| IncomingDataQueue (uint32 size) |
virtual | ~IncomingDataQueue () |
bool | checkSSRCInIncomingRTPPkt (SyncSourceLink &sourceLink, bool is_new, InetAddress &na, tpport_t tp) |
| Apply collision and loop detection and correction algorithm when receiving RTP data packets.
|
void | setSourceExpirationPeriod (uint8 intervals) |
| Set the number of RTCP intervals that the stack will wait to change the state of a source from stateActive to stateInactive, or to delete the source after being in stateInactive.
|
virtual size_t | takeInDataPacket () |
| This function is used by the service thread to process the next incoming packet and place it in the receive list.
|
IncomingDataQueue::IncomingRTPPktLink * | getWaiting (uint32 timestamp, const SyncSource *src=NULL) |
| This is used to fetch a packet in the receive queue and to expire packets older than the current timestamp.
|
bool | recordReception (SyncSourceLink &srcLink, const IncomingRTPPkt &pkt, const timeval recvtime) |
| Log reception of a new RTP packet from this source.
|
void | recordExtraction (const IncomingRTPPkt &pkt) |
| Log extraction of a packet from this source from the scheduled reception queue.
|
void | purgeIncomingQueue () |
virtual void | onNewSyncSource (const SyncSource &) |
| Virtual called when a new synchronization source has joined the session.
|
virtual bool | onRTPPacketRecv (IncomingRTPPkt &) |
| A virtual function to support parsing of arriving packets to determine if they should be kept in the queue and to dispatch events.
|
virtual void | onExpireRecv (IncomingRTPPkt &) |
| A hook to filter packets in the receive queue that are being expired.
|
virtual bool | onSRTPPacketError (IncomingRTPPkt &pkt, int32 errorCode) |
| A hook that gets called if the decoding of an incoming SRTP was erroneous.
|
virtual bool | end2EndDelayed (IncomingRTPPktLink &) |
bool | insertRecvPacket (IncomingRTPPktLink *packetLink) |
| Insert a just received packet in the queue (both general and source specific queues).
|
| IncomingDataQueueBase () |
virtual | ~IncomingDataQueueBase () |
| RTPQueueBase (uint32 *ssrc=NULL) |
void | setLocalSSRC (uint32 ssrc) |
uint32 | getLocalSSRCNetwork () const |
virtual | ~RTPQueueBase () |
virtual size_t | dispatchBYE (const std::string &) |
| A plugin point for posting of BYE messages.
|
size_t | getDefaultMembersHashSize () |
| MembershipBookkeeping (uint32 initialSize=defaultMembersHashSize) |
| The initial size is a hint to allocate the resources needed in order to keep the members' identifiers and associated information.
|
virtual | ~MembershipBookkeeping () |
| Purges all RTPSource structures created during the session, as well as the hash table and the list of sources.
|
SyncSourceLink * | getLink (const SyncSource &source) const |
bool | isMine (const SyncSource &source) const |
| Get whether a synchronization source is recorded in this membership controller.
|
bool | isRegistered (uint32 ssrc) |
| Returns whether there is already a synchronizacion source with "ssrc" SSRC identifier.
|
SyncSourceLink * | getSourceBySSRC (uint32 ssrc, bool &created) |
| Get the description of a source by its ssrc identifier.
|
bool | BYESource (uint32 ssrc) |
| Mark the source identified by ssrc as having sent a BYE packet.
|
bool | removeSource (uint32 ssrc) |
| Remove the description of the source identified by ssrc
|
SyncSourceLink * | getFirst () |
SyncSourceLink * | getLast () |
uint32 | getMembersCount () |
void | setMembersCount (uint32 n) |
uint32 | getSendersCount () |
Protected Member Functions inherited from SyncSourceHandler |
void | setLink (SyncSource &source, void *link) |
void | setParticipant (SyncSource &source, Participant &p) |
void | setState (SyncSource &source, SyncSource::State ns) |
void | setSender (SyncSource &source, bool active) |
void | setDataTransportPort (SyncSource &source, tpport_t p) |
void | setControlTransportPort (SyncSource &source, tpport_t p) |
void | setNetworkAddress (SyncSource &source, InetAddress addr) |
Protected Member Functions inherited from ParticipantHandler |
void | setSDESItem (Participant *part, SDESItemType item, const std::string &val) |
void | setPRIVPrefix (Participant *part, const std::string val) |
Protected Member Functions inherited from ApplicationHandler |
void | addParticipant (RTPApplication &app, Participant &part) |
void | removeParticipant (RTPApplication &app, RTPApplication::ParticipantLink *pl) |
Protected Member Functions inherited from ConflictHandler |
ConflictingTransportAddress * | searchDataConflict (InetAddress na, tpport_t dtp) |
ConflictingTransportAddress * | searchControlConflict (InetAddress na, tpport_t ctp) |
void | updateConflict (ConflictingTransportAddress &ca) |
void | addConflict (const InetAddress &na, tpport_t dtp, tpport_t ctp) |
| OutgoingDataQueue () |
virtual | ~OutgoingDataQueue () |
void | dispatchImmediate (OutgoingRTPPkt *packet) |
| This is used to write the RTP data packet to one or more destinations.
|
microtimeout_t | getSchedulingTimeout () |
| This computes the timeout period for scheduling transmission of the next packet at the "head" of the send buffer.
|
size_t | dispatchDataPacket () |
| This function is used by the service thread to process the next outgoing packet pending in the sending queue.
|
void | setNextSeqNum (uint32 seqNum) |
| For thoses cases in which the application requires a method to set the sequence number for the outgoing stream (such as for implementing the RTSP PLAY command).
|
uint32 | getCurrentSeqNum (void) |
void | setInitialTimestamp (uint32 ts) |
|
|
uint32 | getInitialTimestamp () |
|
|
void | purgeOutgoingQueue () |
| OutgoingDataQueueBase () |
virtual | ~OutgoingDataQueueBase () |
Protected Member Functions inherited from DestinationListHandler |
| DestinationListHandler () |
| ~DestinationListHandler () |
bool | isSingleDestination () const |
| Get whether there is only a destination in the list.
|
TransportAddress * | getFirstDestination () const |
void | lockDestinationList () const |
void | unlockDestinationList () const |
void | writeLockDestinationList () const |
bool | addDestinationToList (const InetAddress &ia, tpport_t data, tpport_t control) |
| Locks the object before modifying it.
|
bool | removeDestinationFromList (const InetAddress &ia, tpport_t dataPort, tpport_t controlPort) |
| Locks the object before modifying it.
|
A peer associated RTP socket pair for physically connected peer hosts.
This has no RTCP and assumes the receiver is connected to a known transmitter, hence no "foreign" packets will arrive.
- Author:
- David Sugar RTP peer host over UDP.
- Examples:
- rtpduphello.cpp.