Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(203)

Unified Diff: webrtc/modules/rtp_rtcp/source/rtcp_utility.h

Issue 2680183004: Remove rtcp_utility as mostly unused. (Closed)
Patch Set: NackStats -> RtcpNackStats Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtcp_sender.h ('k') | webrtc/modules/rtp_rtcp/source/rtcp_utility.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/rtp_rtcp/source/rtcp_utility.h
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_utility.h b/webrtc/modules/rtp_rtcp/source/rtcp_utility.h
deleted file mode 100644
index 86fee8ea681af8182f7f20761445429086136b22..0000000000000000000000000000000000000000
--- a/webrtc/modules/rtp_rtcp/source/rtcp_utility.h
+++ /dev/null
@@ -1,490 +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_SOURCE_RTCP_UTILITY_H_
-#define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_UTILITY_H_
-
-#include <stddef.h> // size_t, ptrdiff_t
-
-#include <memory>
-
-#include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
-#include "webrtc/modules/rtp_rtcp/source/rtp_rtcp_config.h"
-#include "webrtc/typedefs.h"
-
-namespace webrtc {
-namespace rtcp {
-class RtcpPacket;
-}
-namespace RTCPUtility {
-
-class NackStats {
- public:
- NackStats();
- ~NackStats();
-
- // Updates stats with requested sequence number.
- // This function should be called for each NACK request to calculate the
- // number of unique NACKed RTP packets.
- void ReportRequest(uint16_t sequence_number);
-
- // Gets the number of NACKed RTP packets.
- uint32_t requests() const { return requests_; }
-
- // Gets the number of unique NACKed RTP packets.
- uint32_t unique_requests() const { return unique_requests_; }
-
- private:
- uint16_t max_sequence_number_;
- uint32_t requests_;
- uint32_t unique_requests_;
-};
-
-uint32_t MidNtp(uint32_t ntp_sec, uint32_t ntp_frac);
-
-struct RTCPPacketRR {
- uint32_t SenderSSRC;
- uint8_t NumberOfReportBlocks;
-};
-struct RTCPPacketSR {
- uint32_t SenderSSRC;
- uint8_t NumberOfReportBlocks;
-
- // sender info
- uint32_t NTPMostSignificant;
- uint32_t NTPLeastSignificant;
- uint32_t RTPTimestamp;
- uint32_t SenderPacketCount;
- uint32_t SenderOctetCount;
-};
-struct RTCPPacketReportBlockItem {
- // report block
- uint32_t SSRC;
- uint8_t FractionLost;
- uint32_t CumulativeNumOfPacketsLost;
- uint32_t ExtendedHighestSequenceNumber;
- uint32_t Jitter;
- uint32_t LastSR;
- uint32_t DelayLastSR;
-};
-struct RTCPPacketSDESCName {
- // RFC3550
- uint32_t SenderSSRC;
- char CName[RTCP_CNAME_SIZE];
-};
-
-struct RTCPPacketExtendedJitterReportItem {
- // RFC 5450
- uint32_t Jitter;
-};
-
-struct RTCPPacketBYE {
- uint32_t SenderSSRC;
-};
-struct RTCPPacketXR {
- // RFC 3611
- uint32_t OriginatorSSRC;
-};
-struct RTCPPacketXRReceiverReferenceTimeItem {
- // RFC 3611 4.4
- uint32_t NTPMostSignificant;
- uint32_t NTPLeastSignificant;
-};
-struct RTCPPacketXRDLRRReportBlockItem {
- // RFC 3611 4.5
- uint32_t SSRC;
- uint32_t LastRR;
- uint32_t DelayLastRR;
-};
-struct RTCPPacketXRVOIPMetricItem {
- // RFC 3611 4.7
- uint32_t SSRC;
- uint8_t lossRate;
- uint8_t discardRate;
- uint8_t burstDensity;
- uint8_t gapDensity;
- uint16_t burstDuration;
- uint16_t gapDuration;
- uint16_t roundTripDelay;
- uint16_t endSystemDelay;
- uint8_t signalLevel;
- uint8_t noiseLevel;
- uint8_t RERL;
- uint8_t Gmin;
- uint8_t Rfactor;
- uint8_t extRfactor;
- uint8_t MOSLQ;
- uint8_t MOSCQ;
- uint8_t RXconfig;
- uint16_t JBnominal;
- uint16_t JBmax;
- uint16_t JBabsMax;
-};
-
-struct RTCPPacketRTPFBNACK {
- uint32_t SenderSSRC;
- uint32_t MediaSSRC;
-};
-struct RTCPPacketRTPFBNACKItem {
- // RFC4585
- uint16_t PacketID;
- uint16_t BitMask;
-};
-
-struct RTCPPacketRTPFBTMMBR {
- uint32_t SenderSSRC;
- uint32_t MediaSSRC; // zero!
-};
-struct RTCPPacketRTPFBTMMBRItem {
- // RFC5104
- uint32_t SSRC;
- uint32_t MaxTotalMediaBitRate; // In Kbit/s
- uint32_t MeasuredOverhead;
-};
-
-struct RTCPPacketRTPFBTMMBN {
- uint32_t SenderSSRC;
- uint32_t MediaSSRC; // zero!
-};
-struct RTCPPacketRTPFBTMMBNItem {
- // RFC5104
- uint32_t SSRC; // "Owner"
- uint32_t MaxTotalMediaBitRate;
- uint32_t MeasuredOverhead;
-};
-
-struct RTCPPacketPSFBFIR {
- uint32_t SenderSSRC;
- uint32_t MediaSSRC; // zero!
-};
-struct RTCPPacketPSFBFIRItem {
- // RFC5104
- uint32_t SSRC;
- uint8_t CommandSequenceNumber;
-};
-
-struct RTCPPacketPSFBPLI {
- // RFC4585
- uint32_t SenderSSRC;
- uint32_t MediaSSRC;
-};
-
-struct RTCPPacketPSFBSLI {
- // RFC4585
- uint32_t SenderSSRC;
- uint32_t MediaSSRC;
-};
-struct RTCPPacketPSFBSLIItem {
- // RFC4585
- uint16_t FirstMB;
- uint16_t NumberOfMB;
- uint8_t PictureId;
-};
-struct RTCPPacketPSFBRPSI {
- // RFC4585
- uint32_t SenderSSRC;
- uint32_t MediaSSRC;
- uint8_t PayloadType;
- uint16_t NumberOfValidBits;
- uint8_t NativeBitString[RTCP_RPSI_DATA_SIZE];
-};
-struct RTCPPacketPSFBAPP {
- uint32_t SenderSSRC;
- uint32_t MediaSSRC;
-};
-struct RTCPPacketPSFBREMBItem {
- uint32_t BitRate;
- uint8_t NumberOfSSRCs;
- uint32_t SSRCs[MAX_NUMBER_OF_REMB_FEEDBACK_SSRCS];
-};
-// generic name APP
-struct RTCPPacketAPP {
- uint8_t SubType;
- uint32_t Name;
- uint8_t Data[kRtcpAppCode_DATA_SIZE];
- uint16_t Size;
-};
-
-union RTCPPacket {
- RTCPPacketRR RR;
- RTCPPacketSR SR;
- RTCPPacketReportBlockItem ReportBlockItem;
-
- RTCPPacketSDESCName CName;
- RTCPPacketBYE BYE;
-
- RTCPPacketExtendedJitterReportItem ExtendedJitterReportItem;
-
- RTCPPacketRTPFBNACK NACK;
- RTCPPacketRTPFBNACKItem NACKItem;
-
- RTCPPacketPSFBPLI PLI;
- RTCPPacketPSFBSLI SLI;
- RTCPPacketPSFBSLIItem SLIItem;
- RTCPPacketPSFBRPSI RPSI;
- RTCPPacketPSFBAPP PSFBAPP;
- RTCPPacketPSFBREMBItem REMBItem;
-
- RTCPPacketRTPFBTMMBR TMMBR;
- RTCPPacketRTPFBTMMBRItem TMMBRItem;
- RTCPPacketRTPFBTMMBN TMMBN;
- RTCPPacketRTPFBTMMBNItem TMMBNItem;
- RTCPPacketPSFBFIR FIR;
- RTCPPacketPSFBFIRItem FIRItem;
-
- RTCPPacketXR XR;
- RTCPPacketXRReceiverReferenceTimeItem XRReceiverReferenceTimeItem;
- RTCPPacketXRDLRRReportBlockItem XRDLRRReportBlockItem;
- RTCPPacketXRVOIPMetricItem XRVOIPMetricItem;
-
- RTCPPacketAPP APP;
-};
-
-enum class RTCPPacketTypes {
- kInvalid,
-
- // RFC3550
- kRr,
- kSr,
- kReportBlockItem,
-
- kSdes,
- kSdesChunk,
- kBye,
-
- // RFC5450
- kExtendedIj,
- kExtendedIjItem,
-
- // RFC4585
- kRtpfbNack,
- kRtpfbNackItem,
-
- kPsfbPli,
- kPsfbRpsi,
- kPsfbRpsiItem,
- kPsfbSli,
- kPsfbSliItem,
- kPsfbApp,
- kPsfbRemb,
- kPsfbRembItem,
-
- // RFC5104
- kRtpfbTmmbr,
- kRtpfbTmmbrItem,
- kRtpfbTmmbn,
- kRtpfbTmmbnItem,
- kPsfbFir,
- kPsfbFirItem,
-
- // draft-perkins-avt-rapid-rtp-sync
- kRtpfbSrReq,
-
- // RFC 3611
- kXrHeader,
- kXrReceiverReferenceTime,
- kXrDlrrReportBlock,
- kXrDlrrReportBlockItem,
- kXrVoipMetric,
-
- kApp,
- kAppItem,
-
- // draft-holmer-rmcat-transport-wide-cc-extensions
- kTransportFeedback,
-};
-
-struct RTCPRawPacket {
- const uint8_t* _ptrPacketBegin;
- const uint8_t* _ptrPacketEnd;
-};
-
-struct RTCPModRawPacket {
- uint8_t* _ptrPacketBegin;
- uint8_t* _ptrPacketEnd;
-};
-
-struct RtcpCommonHeader {
- static const uint8_t kHeaderSizeBytes = 4;
- RtcpCommonHeader()
- : version(2),
- count_or_format(0),
- packet_type(0),
- payload_size_bytes(0),
- padding_bytes(0) {}
-
- uint32_t BlockSize() const {
- return kHeaderSizeBytes + payload_size_bytes + padding_bytes;
- }
-
- uint8_t version;
- uint8_t count_or_format;
- uint8_t packet_type;
- uint32_t payload_size_bytes;
- uint8_t padding_bytes;
-};
-
-enum RTCPPT : uint8_t {
- PT_IJ = 195,
- PT_SR = 200,
- PT_RR = 201,
- PT_SDES = 202,
- PT_BYE = 203,
- PT_APP = 204,
- PT_RTPFB = 205,
- PT_PSFB = 206,
- PT_XR = 207
-};
-
-// Extended report blocks, RFC 3611.
-enum RtcpXrBlockType : uint8_t {
- kBtReceiverReferenceTime = 4,
- kBtDlrr = 5,
- kBtVoipMetric = 7
-};
-
-bool RtcpParseCommonHeader(const uint8_t* buffer,
- size_t size_bytes,
- RtcpCommonHeader* parsed_header);
-
-class RTCPParserV2 {
- public:
- RTCPParserV2(
- const uint8_t* rtcpData,
- size_t rtcpDataLength,
- bool rtcpReducedSizeEnable); // Set to true, to allow non-compound RTCP!
- ~RTCPParserV2();
-
- RTCPPacketTypes PacketType() const;
- const RTCPPacket& Packet() const;
- rtcp::RtcpPacket* ReleaseRtcpPacket();
- const RTCPRawPacket& RawPacket() const;
- ptrdiff_t LengthLeft() const;
-
- bool IsValid() const;
- size_t NumSkippedBlocks() const;
-
- RTCPPacketTypes Begin();
- RTCPPacketTypes Iterate();
-
- private:
- enum class ParseState {
- State_TopLevel, // Top level packet
- State_ReportBlockItem, // SR/RR report block
- State_SDESChunk, // SDES chunk
- State_BYEItem, // BYE item
- State_ExtendedJitterItem, // Extended jitter report item
- State_RTPFB_NACKItem, // NACK FCI item
- State_RTPFB_TMMBRItem, // TMMBR FCI item
- State_RTPFB_TMMBNItem, // TMMBN FCI item
- State_PSFB_SLIItem, // SLI FCI item
- State_PSFB_RPSIItem, // RPSI FCI item
- State_PSFB_FIRItem, // FIR FCI item
- State_PSFB_AppItem, // Application specific FCI item
- State_PSFB_REMBItem, // Application specific REMB item
- State_XRItem,
- State_XR_DLLRItem,
- State_AppItem
- };
-
- private:
- void IterateTopLevel();
- void IterateReportBlockItem();
- void IterateSDESChunk();
- void IterateBYEItem();
- void IterateExtendedJitterItem();
- void IterateNACKItem();
- void IterateTMMBRItem();
- void IterateTMMBNItem();
- void IterateSLIItem();
- void IterateRPSIItem();
- void IterateFIRItem();
- void IteratePsfbAppItem();
- void IteratePsfbREMBItem();
- void IterateAppItem();
- void IterateXrItem();
- void IterateXrDlrrItem();
-
- void Validate();
- void EndCurrentBlock();
-
- bool ParseRR();
- bool ParseSR();
- bool ParseReportBlockItem();
-
- bool ParseSDES();
- bool ParseSDESChunk();
- bool ParseSDESItem();
-
- bool ParseBYE();
- bool ParseBYEItem();
-
- bool ParseIJ();
- bool ParseIJItem();
-
- bool ParseXr();
- bool ParseXrItem();
- bool ParseXrReceiverReferenceTimeItem(int block_length_4bytes);
- bool ParseXrDlrr(int block_length_4bytes);
- bool ParseXrDlrrItem();
- bool ParseXrVoipMetricItem(int block_length_4bytes);
- bool ParseXrUnsupportedBlockType(int block_length_4bytes);
-
- bool ParseFBCommon(const RtcpCommonHeader& header);
- bool ParseNACKItem();
- bool ParseTMMBRItem();
- bool ParseTMMBNItem();
- bool ParseSLIItem();
- bool ParseRPSIItem();
- bool ParseFIRItem();
- bool ParsePsfbAppItem();
- bool ParsePsfbREMBItem();
-
- bool ParseAPP(const RtcpCommonHeader& header);
- bool ParseAPPItem();
-
- private:
- const uint8_t* const _ptrRTCPDataBegin;
- const bool _RTCPReducedSizeEnable;
- const uint8_t* const _ptrRTCPDataEnd;
-
- bool _validPacket;
- const uint8_t* _ptrRTCPData;
- const uint8_t* _ptrRTCPBlockEnd;
-
- ParseState _state;
- uint8_t _numberOfBlocks;
- size_t num_skipped_blocks_;
-
- RTCPPacketTypes _packetType;
- RTCPPacket _packet;
- std::unique_ptr<webrtc::rtcp::RtcpPacket> rtcp_packet_;
-};
-
-class RTCPPacketIterator {
- public:
- RTCPPacketIterator(uint8_t* rtcpData, size_t rtcpDataLength);
- ~RTCPPacketIterator();
-
- const RtcpCommonHeader* Begin();
- const RtcpCommonHeader* Iterate();
- const RtcpCommonHeader* Current();
-
- private:
- uint8_t* const _ptrBegin;
- uint8_t* const _ptrEnd;
-
- uint8_t* _ptrBlock;
-
- RtcpCommonHeader _header;
-};
-} // namespace RTCPUtility
-} // namespace webrtc
-#endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_UTILITY_H_
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtcp_sender.h ('k') | webrtc/modules/rtp_rtcp/source/rtcp_utility.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698