Amazon Kinesis Webrtc C SDK
RtcpPacket.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  RtcpPacketHeader
 
struct  RtcpPacket
 

Macros

#define RTCP_PACKET_LEN_OFFSET   2
 
#define RTCP_PACKET_TYPE_OFFSET   1
 
#define RTCP_PACKET_RRC_BITMASK   0x1F
 
#define RTCP_PACKET_HEADER_LEN   4
 
#define RTCP_NACK_LIST_LEN   8
 
#define RTCP_PACKET_VERSION_VAL   2
 
#define RTCP_PACKET_LEN_WORD_SIZE   4
 
#define RTCP_PACKET_REMB_MIN_SIZE   16
 
#define RTCP_PACKET_REMB_IDENTIFIER_OFFSET   8
 
#define RTCP_PACKET_REMB_MANTISSA_BITMASK   0x3FFFF
 
#define RTCP_PACKET_SENDER_REPORT_MINLEN   24
 
#define RTCP_PACKET_RECEIVER_REPORT_BLOCK_LEN   24
 
#define RTCP_PACKET_RECEIVER_REPORT_MINLEN   4 + RTCP_PACKET_RECEIVER_REPORT_BLOCK_LEN
 
#define RTCP_FIRST_REPORT_DELAY   (3 * HUNDREDS_OF_NANOS_IN_A_SECOND)
 
#define NTP_OFFSET   2208988800ULL
 
#define NTP_TIMESCALE   4294967296ULL
 
#define DLSR_TIMESCALE   65536
 
#define MID_NTP(ntp_time)   (UINT32)((currentTimeNTP >> 16U) & 0xffffffffULL)
 

Typedefs

typedef struct RtcpPacketHeaderPRtcpPacketHeader
 
typedef struct RtcpPacketPRtcpPacket
 

Enumerations

enum  RTCP_PACKET_TYPE {
  RTCP_PACKET_TYPE_FIR = 192 , RTCP_PACKET_TYPE_SENDER_REPORT = 200 , RTCP_PACKET_TYPE_RECEIVER_REPORT = 201 , RTCP_PACKET_TYPE_SOURCE_DESCRIPTION = 202 ,
  RTCP_PACKET_TYPE_GENERIC_RTP_FEEDBACK = 205 , RTCP_PACKET_TYPE_PAYLOAD_SPECIFIC_FEEDBACK = 206
}
 
enum  RTCP_FEEDBACK_MESSAGE_TYPE { RTCP_FEEDBACK_MESSAGE_TYPE_NACK = 1 , RTCP_PSFB_PLI = 1 , RTCP_PSFB_SLI = 2 , RTCP_FEEDBACK_MESSAGE_TYPE_APPLICATION_LAYER_FEEDBACK = 15 }
 

Functions

STATUS setRtcpPacketFromBytes (PBYTE, UINT32, PRtcpPacket)
 
STATUS rtcpNackListGet (PBYTE, UINT32, PUINT32, PUINT32, PUINT16, PUINT32)
 
STATUS rembValueGet (PBYTE, UINT32, PDOUBLE, PUINT32, PUINT8)
 
STATUS isRembPacket (PBYTE, UINT32)
 
UINT64 convertTimestampToNTP (UINT64 time100ns)
 

Macro Definition Documentation

◆ DLSR_TIMESCALE

#define DLSR_TIMESCALE   65536

◆ MID_NTP

#define MID_NTP (   ntp_time)    (UINT32)((currentTimeNTP >> 16U) & 0xffffffffULL)

◆ NTP_OFFSET

#define NTP_OFFSET   2208988800ULL

◆ NTP_TIMESCALE

#define NTP_TIMESCALE   4294967296ULL

◆ RTCP_FIRST_REPORT_DELAY

#define RTCP_FIRST_REPORT_DELAY   (3 * HUNDREDS_OF_NANOS_IN_A_SECOND)

◆ RTCP_NACK_LIST_LEN

#define RTCP_NACK_LIST_LEN   8

◆ RTCP_PACKET_HEADER_LEN

#define RTCP_PACKET_HEADER_LEN   4

◆ RTCP_PACKET_LEN_OFFSET

#define RTCP_PACKET_LEN_OFFSET   2

◆ RTCP_PACKET_LEN_WORD_SIZE

#define RTCP_PACKET_LEN_WORD_SIZE   4

◆ RTCP_PACKET_RECEIVER_REPORT_BLOCK_LEN

#define RTCP_PACKET_RECEIVER_REPORT_BLOCK_LEN   24

◆ RTCP_PACKET_RECEIVER_REPORT_MINLEN

#define RTCP_PACKET_RECEIVER_REPORT_MINLEN   4 + RTCP_PACKET_RECEIVER_REPORT_BLOCK_LEN

◆ RTCP_PACKET_REMB_IDENTIFIER_OFFSET

#define RTCP_PACKET_REMB_IDENTIFIER_OFFSET   8

◆ RTCP_PACKET_REMB_MANTISSA_BITMASK

#define RTCP_PACKET_REMB_MANTISSA_BITMASK   0x3FFFF

◆ RTCP_PACKET_REMB_MIN_SIZE

#define RTCP_PACKET_REMB_MIN_SIZE   16

◆ RTCP_PACKET_RRC_BITMASK

#define RTCP_PACKET_RRC_BITMASK   0x1F

◆ RTCP_PACKET_SENDER_REPORT_MINLEN

#define RTCP_PACKET_SENDER_REPORT_MINLEN   24

◆ RTCP_PACKET_TYPE_OFFSET

#define RTCP_PACKET_TYPE_OFFSET   1

◆ RTCP_PACKET_VERSION_VAL

#define RTCP_PACKET_VERSION_VAL   2

Typedef Documentation

◆ PRtcpPacket

typedef struct RtcpPacket * PRtcpPacket

◆ PRtcpPacketHeader

Enumeration Type Documentation

◆ RTCP_FEEDBACK_MESSAGE_TYPE

Enumerator
RTCP_FEEDBACK_MESSAGE_TYPE_NACK 
RTCP_PSFB_PLI 
RTCP_PSFB_SLI 
RTCP_FEEDBACK_MESSAGE_TYPE_APPLICATION_LAYER_FEEDBACK 

◆ RTCP_PACKET_TYPE

Enumerator
RTCP_PACKET_TYPE_FIR 
RTCP_PACKET_TYPE_SENDER_REPORT 
RTCP_PACKET_TYPE_RECEIVER_REPORT 
RTCP_PACKET_TYPE_SOURCE_DESCRIPTION 
RTCP_PACKET_TYPE_GENERIC_RTP_FEEDBACK 
RTCP_PACKET_TYPE_PAYLOAD_SPECIFIC_FEEDBACK 

Function Documentation

◆ convertTimestampToNTP()

UINT64 convertTimestampToNTP ( UINT64  time100ns)
Here is the caller graph for this function:

◆ isRembPacket()

STATUS isRembPacket ( PBYTE  pPayload,
UINT32  payloadLen 
)

◆ rembValueGet()

STATUS rembValueGet ( PBYTE  pPayload,
UINT32  payloadLen,
PDOUBLE  pMaximumBitRate,
PUINT32  pSsrcList,
PUINT8  pSsrcListLen 
)

Get values from RTCP Payload

Parameters: pPayload - REMB Payload payloadLen - Total length of payload pMaximumBitRate - REMB Value pSsrcList - buffer to write list of SSRCes into. pSsrcListLen - destination PUINT32 to store the count of SSRCes from the incoming REMB.

Here is the caller graph for this function:

◆ rtcpNackListGet()

STATUS rtcpNackListGet ( PBYTE  pPayload,
UINT32  payloadLen,
PUINT32  pSenderSsrc,
PUINT32  pReceiverSsrc,
PUINT16  pSequenceNumberList,
PUINT32  pSequenceNumberListLen 
)
Here is the caller graph for this function:

◆ setRtcpPacketFromBytes()

STATUS setRtcpPacketFromBytes ( PBYTE  pRawPacket,
UINT32  pRawPacketsLen,
PRtcpPacket  pRtcpPacket 
)
Here is the caller graph for this function: