RTP context enable flags.
Enumerator |
---|
RCE_SRTP | Use SRTP for this connection
|
RCE_SRTP_KMNGMNT_ZRTP | Use ZRTP for key management
If this flag is provided, before the session starts, ZRTP will negotiate keys with the remote participants and these keys are used as salting/keying material for the session.
This flag must be coupled with RCE_SRTP and is mutually exclusive with RCE_SRTP_KMNGMNT_USER.
|
RCE_SRTP_KMNGMNT_USER | Use user-defined way to manage keys
If this flag is provided, before the media transportation starts, user must provide a master key and salt form which SRTP session keys are derived
This flag must be coupled with RCE_SRTP and is mutually exclusive with RCE_SRTP_KMNGMNT_ZRTP
|
RCE_NO_H26X_INTRA_DELAY | When uvgRTP is receiving H26X stream, as an attempt to improve QoS, it will set frame delay for intra frames to be the same as intra period.
What this means is that if the regular timer expires for frame (100 ms) and the frame type is intra, uvgRTP will not drop the frame but will continue receiving packets in hopes that all the packets of the intra frame will be received and the frame can be returned to user. During this period, when the intra frame is deemed to be late and incomplete, uvgRTP will drop all inter frames until a) all the packets of late intra frame are received or b) a new intra frame is received
This behaviour should reduce the number of gray screens during video decoding but might cause the video stream to freeze for a while which is subjectively lesser of two evils
This behavior can be disabled with RCE_NO_H26X_INTRA_DELAY If this flag is given, uvgRTP treats all frame types equally and drops all frames that are late
|
RCE_FRAGMENT_GENERIC | Fragment generic frames into RTP packets of 1500 bytes.
If RCE_FRAGMENT_GENERIC is given to create_stream(), uvgRTP will split frames of type RTP_FORMAT_GENERIC into packets of 1500 bytes automatically and reconstruct the full frame from the fragments in the receiver
This behavior is not from any specification and only supported by uvgRTP so it will break interoperability between libraries if enabled.
RCE_FRAGMENT_GENERIC can be used, for example, when you're using uvgRTP for both sender and receiver and the media stream you wish to stream is not supported by uvgRTP but requires packetization because MEDIA_FRAME_SIZE > MTU
|
RCE_SRTP_INPLACE_ENCRYPTION | If SRTP is enabled and RCE_INPLACE_ENCRYPTION flag is not given, uvgRTP will make a copy of the frame given to push_frame().
If the frame is writable and the application no longer needs the frame, RCE_INPLACE_ENCRYPTION should be given to create_stream() to prevent unnecessary copy operations.
If RCE_INPLACE_ENCRYPTION is given to push_frame(), the input pointer must be writable!
|
RCE_NO_SYSTEM_CALL_CLUSTERING | Disable System Call Clustering (SCC)
|
RCE_SRTP_NULL_CIPHER | Disable RTP payload encryption
|
RCE_SRTP_AUTHENTICATE_RTP | Enable RTP packet authentication
This flag forces the security layer to add authentication tag to each outgoing RTP packet for all streams that have SRTP enabled.
NOTE: this flag must be coupled with at least RCE_SRTP
|
RCE_SRTP_REPLAY_PROTECTION | Enable packet replay protection
|
RCE_RTCP | Enable RTCP for the media stream. If SRTP is enabled, SRTCP is used instead
|
RCE_H26X_PREPEND_SC | Prepend a 4-byte start code (0x00000001) to HEVC each frame
|
RCE_HOLEPUNCH_KEEPALIVE | If the Mediastream object is used as a unidirectional stream but holepunching has been enabled, this flag can be used to make uvgRTP periodically send a short UDP datagram to keep the hole in the firewall open
|
RCE_SRTP_KEYSIZE_192 | Use 192-bit keys with SRTP
|
RCE_SRTP_KEYSIZE_256 | Use 256-bit keys with SRTP
|