aboutsummaryrefslogtreecommitdiff
path: root/webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h
diff options
context:
space:
mode:
Diffstat (limited to 'webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h')
-rw-r--r--webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h440
1 files changed, 0 insertions, 440 deletions
diff --git a/webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h b/webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h
deleted file mode 100644
index 6936352aca..0000000000
--- a/webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h
+++ /dev/null
@@ -1,440 +0,0 @@
-/*
- * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef WEBRTC_MODULES_RTP_RTCP_INTERFACE_RTP_RTCP_DEFINES_H_
-#define WEBRTC_MODULES_RTP_RTCP_INTERFACE_RTP_RTCP_DEFINES_H_
-
-#include <stddef.h>
-#include <list>
-
-#include "webrtc/modules/interface/module_common_types.h"
-#include "webrtc/system_wrappers/include/clock.h"
-#include "webrtc/typedefs.h"
-
-#define RTCP_CNAME_SIZE 256 // RFC 3550 page 44, including null termination
-#define IP_PACKET_SIZE 1500 // we assume ethernet
-#define MAX_NUMBER_OF_PARALLEL_TELEPHONE_EVENTS 10
-#define TIMEOUT_SEI_MESSAGES_MS 30000 // in milliseconds
-
-namespace webrtc {
-namespace rtcp {
-class TransportFeedback;
-}
-
-const int kVideoPayloadTypeFrequency = 90000;
-
-// Minimum RTP header size in bytes.
-const uint8_t kRtpHeaderSize = 12;
-
-struct AudioPayload
-{
- uint32_t frequency;
- uint8_t channels;
- uint32_t rate;
-};
-
-struct VideoPayload
-{
- RtpVideoCodecTypes videoCodecType;
- uint32_t maxRate;
-};
-
-union PayloadUnion
-{
- AudioPayload Audio;
- VideoPayload Video;
-};
-
-enum RTPAliveType
-{
- kRtpDead = 0,
- kRtpNoRtp = 1,
- kRtpAlive = 2
-};
-
-enum ProtectionType {
- kUnprotectedPacket,
- kProtectedPacket
-};
-
-enum StorageType {
- kDontRetransmit,
- kAllowRetransmission
-};
-
-enum RTPExtensionType {
- kRtpExtensionNone,
- kRtpExtensionTransmissionTimeOffset,
- kRtpExtensionAudioLevel,
- kRtpExtensionAbsoluteSendTime,
- kRtpExtensionVideoRotation,
- kRtpExtensionTransportSequenceNumber,
-};
-
-enum RTCPAppSubTypes
-{
- kAppSubtypeBwe = 0x00
-};
-
-// TODO(sprang): Make this an enum class once rtcp_receiver has been cleaned up.
-enum RTCPPacketType : uint32_t {
- kRtcpReport = 0x0001,
- kRtcpSr = 0x0002,
- kRtcpRr = 0x0004,
- kRtcpSdes = 0x0008,
- kRtcpBye = 0x0010,
- kRtcpPli = 0x0020,
- kRtcpNack = 0x0040,
- kRtcpFir = 0x0080,
- kRtcpTmmbr = 0x0100,
- kRtcpTmmbn = 0x0200,
- kRtcpSrReq = 0x0400,
- kRtcpXrVoipMetric = 0x0800,
- kRtcpApp = 0x1000,
- kRtcpSli = 0x4000,
- kRtcpRpsi = 0x8000,
- kRtcpRemb = 0x10000,
- kRtcpTransmissionTimeOffset = 0x20000,
- kRtcpXrReceiverReferenceTime = 0x40000,
- kRtcpXrDlrrReportBlock = 0x80000,
- kRtcpTransportFeedback = 0x100000,
-};
-
-enum KeyFrameRequestMethod { kKeyFrameReqPliRtcp, kKeyFrameReqFirRtcp };
-
-enum RtpRtcpPacketType
-{
- kPacketRtp = 0,
- kPacketKeepAlive = 1
-};
-
-enum NACKMethod
-{
- kNackOff = 0,
- kNackRtcp = 2
-};
-
-enum RetransmissionMode : uint8_t {
- kRetransmitOff = 0x0,
- kRetransmitFECPackets = 0x1,
- kRetransmitBaseLayer = 0x2,
- kRetransmitHigherLayers = 0x4,
- kRetransmitAllPackets = 0xFF
-};
-
-enum RtxMode {
- kRtxOff = 0x0,
- kRtxRetransmitted = 0x1, // Only send retransmissions over RTX.
- kRtxRedundantPayloads = 0x2 // Preventively send redundant payloads
- // instead of padding.
-};
-
-const size_t kRtxHeaderSize = 2;
-
-struct RTCPSenderInfo
-{
- uint32_t NTPseconds;
- uint32_t NTPfraction;
- uint32_t RTPtimeStamp;
- uint32_t sendPacketCount;
- uint32_t sendOctetCount;
-};
-
-struct RTCPReportBlock {
- RTCPReportBlock()
- : remoteSSRC(0), sourceSSRC(0), fractionLost(0), cumulativeLost(0),
- extendedHighSeqNum(0), jitter(0), lastSR(0),
- delaySinceLastSR(0) {}
-
- RTCPReportBlock(uint32_t remote_ssrc,
- uint32_t source_ssrc,
- uint8_t fraction_lost,
- uint32_t cumulative_lost,
- uint32_t extended_high_sequence_number,
- uint32_t jitter,
- uint32_t last_sender_report,
- uint32_t delay_since_last_sender_report)
- : remoteSSRC(remote_ssrc),
- sourceSSRC(source_ssrc),
- fractionLost(fraction_lost),
- cumulativeLost(cumulative_lost),
- extendedHighSeqNum(extended_high_sequence_number),
- jitter(jitter),
- lastSR(last_sender_report),
- delaySinceLastSR(delay_since_last_sender_report) {}
-
- // Fields as described by RFC 3550 6.4.2.
- uint32_t remoteSSRC; // SSRC of sender of this report.
- uint32_t sourceSSRC; // SSRC of the RTP packet sender.
- uint8_t fractionLost;
- uint32_t cumulativeLost; // 24 bits valid.
- uint32_t extendedHighSeqNum;
- uint32_t jitter;
- uint32_t lastSR;
- uint32_t delaySinceLastSR;
-};
-
-struct RtcpReceiveTimeInfo {
- // Fields as described by RFC 3611 4.5.
- uint32_t sourceSSRC;
- uint32_t lastRR;
- uint32_t delaySinceLastRR;
-};
-
-typedef std::list<RTCPReportBlock> ReportBlockList;
-
-struct RtpState {
- RtpState()
- : sequence_number(0),
- start_timestamp(0),
- timestamp(0),
- capture_time_ms(-1),
- last_timestamp_time_ms(-1),
- media_has_been_sent(false) {}
- uint16_t sequence_number;
- uint32_t start_timestamp;
- uint32_t timestamp;
- int64_t capture_time_ms;
- int64_t last_timestamp_time_ms;
- bool media_has_been_sent;
-};
-
-class RtpData
-{
-public:
- virtual ~RtpData() {}
-
- virtual int32_t OnReceivedPayloadData(
- const uint8_t* payloadData,
- const size_t payloadSize,
- const WebRtcRTPHeader* rtpHeader) = 0;
-
- virtual bool OnRecoveredPacket(const uint8_t* packet,
- size_t packet_length) = 0;
-};
-
-class RtpFeedback
-{
-public:
- virtual ~RtpFeedback() {}
-
- // Receiving payload change or SSRC change. (return success!)
- /*
- * channels - number of channels in codec (1 = mono, 2 = stereo)
- */
- virtual int32_t OnInitializeDecoder(
- const int8_t payloadType,
- const char payloadName[RTP_PAYLOAD_NAME_SIZE],
- const int frequency,
- const uint8_t channels,
- const uint32_t rate) = 0;
-
- virtual void OnIncomingSSRCChanged(const uint32_t ssrc) = 0;
-
- virtual void OnIncomingCSRCChanged(const uint32_t CSRC,
- const bool added) = 0;
-};
-
-class RtpAudioFeedback {
- public:
- virtual void OnPlayTelephoneEvent(const uint8_t event,
- const uint16_t lengthMs,
- const uint8_t volume) = 0;
-
- protected:
- virtual ~RtpAudioFeedback() {}
-};
-
-class RtcpIntraFrameObserver {
- public:
- virtual void OnReceivedIntraFrameRequest(uint32_t ssrc) = 0;
-
- virtual void OnReceivedSLI(uint32_t ssrc,
- uint8_t picture_id) = 0;
-
- virtual void OnReceivedRPSI(uint32_t ssrc,
- uint64_t picture_id) = 0;
-
- virtual void OnLocalSsrcChanged(uint32_t old_ssrc, uint32_t new_ssrc) = 0;
-
- virtual ~RtcpIntraFrameObserver() {}
-};
-
-class RtcpBandwidthObserver {
- public:
- // REMB or TMMBR
- virtual void OnReceivedEstimatedBitrate(uint32_t bitrate) = 0;
-
- virtual void OnReceivedRtcpReceiverReport(
- const ReportBlockList& report_blocks,
- int64_t rtt,
- int64_t now_ms) = 0;
-
- virtual ~RtcpBandwidthObserver() {}
-};
-
-struct PacketInfo {
- PacketInfo(int64_t arrival_time_ms, uint16_t sequence_number)
- : PacketInfo(-1, arrival_time_ms, -1, sequence_number, 0, false) {}
-
- PacketInfo(int64_t arrival_time_ms,
- int64_t send_time_ms,
- uint16_t sequence_number,
- size_t payload_size,
- bool was_paced)
- : PacketInfo(-1,
- arrival_time_ms,
- send_time_ms,
- sequence_number,
- payload_size,
- was_paced) {}
-
- PacketInfo(int64_t creation_time_ms,
- int64_t arrival_time_ms,
- int64_t send_time_ms,
- uint16_t sequence_number,
- size_t payload_size,
- bool was_paced)
- : creation_time_ms(creation_time_ms),
- arrival_time_ms(arrival_time_ms),
- send_time_ms(send_time_ms),
- sequence_number(sequence_number),
- payload_size(payload_size),
- was_paced(was_paced) {}
-
- // Time corresponding to when this object was created.
- int64_t creation_time_ms;
- // Time corresponding to when the packet was received. Timestamped with the
- // receiver's clock.
- int64_t arrival_time_ms;
- // Time corresponding to when the packet was sent, timestamped with the
- // sender's clock.
- int64_t send_time_ms;
- // Packet identifier, incremented with 1 for every packet generated by the
- // sender.
- uint16_t sequence_number;
- // Size of the packet excluding RTP headers.
- size_t payload_size;
- // True if the packet was paced out by the pacer.
- bool was_paced;
-};
-
-class TransportFeedbackObserver {
- public:
- TransportFeedbackObserver() {}
- virtual ~TransportFeedbackObserver() {}
-
- // Note: Transport-wide sequence number as sequence number. Arrival time
- // must be set to 0.
- virtual void AddPacket(uint16_t sequence_number,
- size_t length,
- bool was_paced) = 0;
-
- virtual void OnTransportFeedback(const rtcp::TransportFeedback& feedback) = 0;
-};
-
-class RtcpRttStats {
- public:
- virtual void OnRttUpdate(int64_t rtt) = 0;
-
- virtual int64_t LastProcessedRtt() const = 0;
-
- virtual ~RtcpRttStats() {};
-};
-
-// Null object version of RtpFeedback.
-class NullRtpFeedback : public RtpFeedback {
- public:
- virtual ~NullRtpFeedback() {}
-
- int32_t OnInitializeDecoder(const int8_t payloadType,
- const char payloadName[RTP_PAYLOAD_NAME_SIZE],
- const int frequency,
- const uint8_t channels,
- const uint32_t rate) override {
- return 0;
- }
-
- void OnIncomingSSRCChanged(const uint32_t ssrc) override {}
- void OnIncomingCSRCChanged(const uint32_t CSRC, const bool added) override {}
-};
-
-// Null object version of RtpData.
-class NullRtpData : public RtpData {
- public:
- virtual ~NullRtpData() {}
-
- int32_t OnReceivedPayloadData(const uint8_t* payloadData,
- const size_t payloadSize,
- const WebRtcRTPHeader* rtpHeader) override {
- return 0;
- }
-
- bool OnRecoveredPacket(const uint8_t* packet, size_t packet_length) override {
- return true;
- }
-};
-
-// Null object version of RtpAudioFeedback.
-class NullRtpAudioFeedback : public RtpAudioFeedback {
- public:
- virtual ~NullRtpAudioFeedback() {}
-
- void OnPlayTelephoneEvent(const uint8_t event,
- const uint16_t lengthMs,
- const uint8_t volume) override {}
-};
-
-// Statistics about packet loss for a single directional connection. All values
-// are totals since the connection initiated.
-struct RtpPacketLossStats {
- // The number of packets lost in events where no adjacent packets were also
- // lost.
- uint64_t single_packet_loss_count;
- // The number of events in which more than one adjacent packet was lost.
- uint64_t multiple_packet_loss_event_count;
- // The number of packets lost in events where more than one adjacent packet
- // was lost.
- uint64_t multiple_packet_loss_packet_count;
-};
-
-class RtpPacketSender {
- public:
- RtpPacketSender() {}
- virtual ~RtpPacketSender() {}
-
- enum Priority {
- kHighPriority = 0, // Pass through; will be sent immediately.
- kNormalPriority = 2, // Put in back of the line.
- kLowPriority = 3, // Put in back of the low priority line.
- };
- // Low priority packets are mixed with the normal priority packets
- // while we are paused.
-
- // Returns true if we send the packet now, else it will add the packet
- // information to the queue and call TimeToSendPacket when it's time to send.
- virtual void InsertPacket(Priority priority,
- uint32_t ssrc,
- uint16_t sequence_number,
- int64_t capture_time_ms,
- size_t bytes,
- bool retransmission) = 0;
-};
-
-class TransportSequenceNumberAllocator {
- public:
- TransportSequenceNumberAllocator() {}
- virtual ~TransportSequenceNumberAllocator() {}
-
- virtual uint16_t AllocateSequenceNumber() = 0;
-};
-
-} // namespace webrtc
-#endif // WEBRTC_MODULES_RTP_RTCP_INTERFACE_RTP_RTCP_DEFINES_H_