Description | Hierarchy | Fields | Methods | Properties |
type unaRTPTransmitter = class(unaObject)
Basic RTP transmitter (UDP only)
constructor create(const bind2addr: TSockAddrIn; payload: int; isRAW: bool = false; noRTCP: bool = false; ttl: int = -1; primaryDest: PSockAddrIn = nil); |
|
function destAdd(dstatic: bool; addrRTP, addrRTCP: PSockAddrIn; doOpen: bool = false; fromHole: bool = false; recSSRC: uint32 = 0): int; overload; |
|
function destAdd(dstatic: bool; const remoteHost, remotePortRTP, remotePortRTCP: string; doOpen: bool = false; ttl: int = -1; recSSRC: uint32 = 0; fromHole: bool = false): int; overload; |
|
function destAdd(dstatic: bool; const uri: string; doOpen: bool = false; ttl: int = -1; recSSRC: uint32 = 0): int; overload; |
|
function destAdd(dstatic: bool; const ipN: TIPv4N): int; overload; |
|
function destGetAcq(index: int; ro: bool): unaRTPDestination; overload; |
|
function destGetAcq(const addrRTP: sockaddr_in; ro: bool): unaRTPDestination; overload; |
|
function destGetCount(): int; |
|
function destHas(const addr: sockaddr_in): bool; |
|
function open(waitForThreadsToStart: bool = true): bool; |
|
function retransmit(data: pointer; len: uint; updateWeSent: bool = true; isRTCP: bool = false): int; |
|
function sendTo(addr: PSockAddrIn; data: pointer; len: uint; isRTCP: bool; ownPacket: bool = true): int; |
|
function transmit(samplesDelta: uint; data: pointer; len: uint; marker: bool = false; tpayload: int = -1; addr: PSockAddrIn = nil; prebufData: pointer = nil; prebufDataLen: uint = 0; updateWeSent: bool = true): int; |
|
function doOpen(waitForThreadsToStart: bool = true): bool; virtual; |
|
function okAddDest(destRTP, destRTCP: PSockAddrIn; fromHole: bool): bool; virtual; |
|
procedure BeforeDestruction(); override; |
|
procedure close(clearAllDest: bool = false); |
|
procedure destEnable(index: int; doEnable: bool); overload; |
|
procedure destEnable(const uri: string; doEnable: bool); overload; |
|
procedure destRemove(const addrRTP: sockaddr_in); overload; |
|
procedure destRemove(const uri: string); overload; |
|
procedure destRemove(index: int); overload; |
|
procedure destRemove(dest: unaRTPDestination); overload; |
|
procedure setNewSSRC(newssrc: u_int32); |
|
procedure doClose(); virtual; |
|
procedure notifyBye(si: prtp_site_info; soft: bool); virtual; |
|
procedure onIdle(rtcpIdle: bool); virtual; |
|
procedure onPayload(addr: PSockAddrIn; hdr: prtp_hdr; data: pointer; len, packetSize: uint); virtual; |
|
procedure onRTCPPacket(ssrc: u_int32; addr: PSockAddrIn; hdr: prtcp_common_hdr; packetSize: uint); virtual; |
|
procedure onSsrcCNAME(ssrc: u_int32; cname: prtcp_sdes_item); virtual; |
|
procedure pushRTCPPacket(packet: pointer; len: uint); virtual; |
property active: bool read getActive write setActive; |
|
property bind2ip: string read f_bind2ip write f_bind2ip; |
|
property bind2port: string read f_bind2port; |
|
property dest[index:int]: unaRTPDestination read getDest; |
|
property isRAW: bool read f_isRAW write f_isRAW; |
|
property isTranslator: bool read f_isTranslator write f_isTranslator; |
|
property onAddDest: unaRTPOnAddDestination read f_onAddDest write f_onAddDest; |
|
property paused: bool read f_paused write f_paused; |
|
property payload: int read f_payload write setPayload; |
|
property receiver: unaRTPReceiver read f_receiver; |
|
property rtcp: unaRTCPstack read getRTCP; |
|
property RTPclockRate: unsigned read f_RTPclockRate write f_RTPclockRate; |
|
property rtpPing: bool read f_rtpPing write f_rtpPing; |
|
property samplingRate: unsigned read f_sr write f_sr; |
|
property socketError: int read f_socketError; |
|
property ttl: int read f_ttl write f_ttl; |
|
property _SSRC: u_int32 read getSsrc; |
constructor create(const bind2addr: TSockAddrIn; payload: int; isRAW: bool = false; noRTCP: bool = false; ttl: int = -1; primaryDest: PSockAddrIn = nil); |
|
Creates a new instance of IPTransmitter.
Parameters
|
function destAdd(dstatic: bool; addrRTP, addrRTCP: PSockAddrIn; doOpen: bool = false; fromHole: bool = false; recSSRC: uint32 = 0): int; overload; |
|
Adds new destination for transmission. Returnsindex of new dest |
function destAdd(dstatic: bool; const remoteHost, remotePortRTP, remotePortRTCP: string; doOpen: bool = false; ttl: int = -1; recSSRC: uint32 = 0; fromHole: bool = false): int; overload; |
|
Adds new destination for transmission. Returnsindex of just added destination. |
function destAdd(dstatic: bool; const uri: string; doOpen: bool = false; ttl: int = -1; recSSRC: uint32 = 0): int; overload; |
|
Adds new destination for transmission. Returnsindex of just added destination. |
function destAdd(dstatic: bool; const ipN: TIPv4N): int; overload; |
|
Adds new destination for transmission. It will use receiver's socket for communication. This method is mostly used for multicast sockets. Returnsindex of new dest |
function destGetAcq(index: int; ro: bool): unaRTPDestination; overload; |
|
Returns destination by index. Acquires it as well. |
function destGetAcq(const addrRTP: sockaddr_in; ro: bool): unaRTPDestination; overload; |
|
Returns destination by RTP address. Acquires it as well. |
function destGetCount(): int; |
|
Returns number of destinations. |
function destHas(const addr: sockaddr_in): bool; |
|
Checks if specified dest was already added. ReturnsTrue if dest already exsits |
function open(waitForThreadsToStart: bool = true): bool; |
|
Opens transmitter. |
function retransmit(data: pointer; len: uint; updateWeSent: bool = true; isRTCP: bool = false): int; |
|
Re-transmits data to all destinations. Assumes data is already points to RTP header, or is pure payload in RAW mode. |
function sendTo(addr: PSockAddrIn; data: pointer; len: uint; isRTCP: bool; ownPacket: bool = true): int; |
|
Sends data to specified destination. Returns 0 if all data was send successfully, or WinSock error otherwise. |
function transmit(samplesDelta: uint; data: pointer; len: uint; marker: bool = false; tpayload: int = -1; addr: PSockAddrIn = nil; prebufData: pointer = nil; prebufDataLen: uint = 0; updateWeSent: bool = true): int; |
|
Transmits data over RTP. Adds RTP header if required.
Parameters
Returnsnumber of bytes actually sent to network |
function doOpen(waitForThreadsToStart: bool = true): bool; virtual; |
|
function okAddDest(destRTP, destRTCP: PSockAddrIn; fromHole: bool): bool; virtual; |
|
Called just before adding a new destination. Fires onAddDest if assigned, otherwise always return True Override for different behaviour
Parameters
ReturnsTrue if it is OK to add this destination |
procedure BeforeDestruction(); override; |
|
Releases destinations and other resources. |
procedure close(clearAllDest: bool = false); |
|
Closes transmitter. |
procedure destEnable(index: int; doEnable: bool); overload; |
|
Temporarely enables/disables streaming to specified destination. |
procedure destEnable(const uri: string; doEnable: bool); overload; |
|
Temporarely enables/disables streaming to specified destination. |
procedure destRemove(const addrRTP: sockaddr_in); overload; |
|
Removes destination. |
procedure destRemove(const uri: string); overload; |
|
Removes destination. |
procedure destRemove(index: int); overload; |
|
Removes destination. |
procedure destRemove(dest: unaRTPDestination); overload; |
|
Removes destination. |
procedure setNewSSRC(newssrc: u_int32); |
|
Not everyday function. |
procedure doClose(); virtual; |
|
procedure notifyBye(si: prtp_site_info; soft: bool); virtual; |
|
Called from context of receiver thread. |
procedure onIdle(rtcpIdle: bool); virtual; |
|
Called from context of idle thread. |
procedure onPayload(addr: PSockAddrIn; hdr: prtp_hdr; data: pointer; len, packetSize: uint); virtual; |
|
procedure onRTCPPacket(ssrc: u_int32; addr: PSockAddrIn; hdr: prtcp_common_hdr; packetSize: uint); virtual; |
|
New RTCP packed was received.
Parameters
|
procedure onSsrcCNAME(ssrc: u_int32; cname: prtcp_sdes_item); virtual; |
|
procedure pushRTCPPacket(packet: pointer; len: uint); virtual; |
|
Transmitter could have own set of destinations, give it a chance to push RTCP data over |
property active: bool read getActive write setActive; |
|
property bind2ip: string read f_bind2ip write f_bind2ip; |
|
property bind2port: string read f_bind2port; |
|
property dest[index:int]: unaRTPDestination read getDest; |
|
Destination |
property isRAW: bool read f_isRAW write f_isRAW; |
|
True if receiver is RAW (no RTP/RTCP will be used). |
property isTranslator: bool read f_isTranslator write f_isTranslator; |
|
property onAddDest: unaRTPOnAddDestination read f_onAddDest write f_onAddDest; |
|
Fired when new destination is about to be added |
property paused: bool read f_paused write f_paused; |
|
When true, no packets are sent |
property payload: int read f_payload write setPayload; |
|
Payload for own transmits. |
property receiver: unaRTPReceiver read f_receiver; |
|
property rtcp: unaRTCPstack read getRTCP; |
|
property RTPclockRate: unsigned read f_RTPclockRate write f_RTPclockRate; |
|
Timestamp clock rate. |
property rtpPing: bool read f_rtpPing write f_rtpPing; |
|
Send CN packets over RTP when not streaming data. Default is true. |
property samplingRate: unsigned read f_sr write f_sr; |
|
Sampling rate of a stream. |
property socketError: int read f_socketError; |
|
property ttl: int read f_ttl write f_ttl; |
|
TTL value |
property _SSRC: u_int32 read getSsrc; |
|
SSRC |
(c) 2012 Lake of Soft