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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.h

Issue 1806073002: rtcp::SenderReport updated to use rtcp::CommonHeader for parsing (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 9 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 unified diff | Download patch
« no previous file with comments | « no previous file | webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_SENDER_REPORT_H_ 11 #ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_SENDER_REPORT_H_
12 #define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_SENDER_REPORT_H_ 12 #define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_SENDER_REPORT_H_
13 13
14 #include <vector> 14 #include <vector>
15 15
16 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet.h" 16 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet.h"
17 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/common_header.h"
17 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/report_block.h" 18 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/report_block.h"
18 #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h"
19 #include "webrtc/system_wrappers/include/ntp_time.h" 19 #include "webrtc/system_wrappers/include/ntp_time.h"
20 20
21 namespace webrtc { 21 namespace webrtc {
22 namespace rtcp { 22 namespace rtcp {
23 23
24 class SenderReport : public RtcpPacket { 24 class SenderReport : public RtcpPacket {
25 public: 25 public:
26 static const uint8_t kPacketType = 200; 26 static const uint8_t kPacketType = 200;
27 27
28 SenderReport(); 28 SenderReport();
29 virtual ~SenderReport() {} 29 ~SenderReport() override {}
30 30
31 // Parse assumes header is already parsed and validated. 31 // Parse assumes header is already parsed and validated.
32 bool Parse(const RTCPUtility::RtcpCommonHeader& header, 32 bool Parse(const CommonHeader& packet);
33 const uint8_t* payload); // Size of the payload is in the header.
34 33
35 void From(uint32_t ssrc) { sender_ssrc_ = ssrc; } 34 void From(uint32_t ssrc) { sender_ssrc_ = ssrc; }
36 void WithNtp(NtpTime ntp) { ntp_ = ntp; } 35 void WithNtp(NtpTime ntp) { ntp_ = ntp; }
37 void WithRtpTimestamp(uint32_t rtp_timestamp) { 36 void WithRtpTimestamp(uint32_t rtp_timestamp) {
38 rtp_timestamp_ = rtp_timestamp; 37 rtp_timestamp_ = rtp_timestamp;
39 } 38 }
40 void WithPacketCount(uint32_t packet_count) { 39 void WithPacketCount(uint32_t packet_count) {
41 sender_packet_count_ = packet_count; 40 sender_packet_count_ = packet_count;
42 } 41 }
43 void WithOctetCount(uint32_t octet_count) { 42 void WithOctetCount(uint32_t octet_count) {
44 sender_octet_count_ = octet_count; 43 sender_octet_count_ = octet_count;
45 } 44 }
46 bool WithReportBlock(const ReportBlock& block); 45 bool WithReportBlock(const ReportBlock& block);
47 void ClearReportBlocks() { report_blocks_.clear(); } 46 void ClearReportBlocks() { report_blocks_.clear(); }
48 47
49 uint32_t sender_ssrc() const { return sender_ssrc_; } 48 uint32_t sender_ssrc() const { return sender_ssrc_; }
50 NtpTime ntp() const { return ntp_; } 49 NtpTime ntp() const { return ntp_; }
51 uint32_t rtp_timestamp() const { return rtp_timestamp_; } 50 uint32_t rtp_timestamp() const { return rtp_timestamp_; }
52 uint32_t sender_packet_count() const { return sender_packet_count_; } 51 uint32_t sender_packet_count() const { return sender_packet_count_; }
53 uint32_t sender_octet_count() const { return sender_octet_count_; } 52 uint32_t sender_octet_count() const { return sender_octet_count_; }
54 53
55 const std::vector<ReportBlock>& report_blocks() const { 54 const std::vector<ReportBlock>& report_blocks() const {
56 return report_blocks_; 55 return report_blocks_;
57 } 56 }
58 57
59 protected: 58 protected:
60 bool Create(uint8_t* packet, 59 bool Create(uint8_t* packet,
61 size_t* index, 60 size_t* index,
62 size_t max_length, 61 size_t max_length,
63 RtcpPacket::PacketReadyCallback* callback) const override; 62 PacketReadyCallback* callback) const override;
64 63
65 private: 64 private:
66 static const size_t kMaxNumberOfReportBlocks = 0x1f; 65 static const size_t kMaxNumberOfReportBlocks = 0x1f;
67 const size_t kSenderBaseLength = 24; 66 const size_t kSenderBaseLength = 24;
68 67
69 size_t BlockLength() const override { 68 size_t BlockLength() const override {
70 return kHeaderLength + kSenderBaseLength + 69 return kHeaderLength + kSenderBaseLength +
71 report_blocks_.size() * ReportBlock::kLength; 70 report_blocks_.size() * ReportBlock::kLength;
72 } 71 }
73 72
74 uint32_t sender_ssrc_; 73 uint32_t sender_ssrc_;
75 NtpTime ntp_; 74 NtpTime ntp_;
76 uint32_t rtp_timestamp_; 75 uint32_t rtp_timestamp_;
77 uint32_t sender_packet_count_; 76 uint32_t sender_packet_count_;
78 uint32_t sender_octet_count_; 77 uint32_t sender_octet_count_;
79 std::vector<ReportBlock> report_blocks_; 78 std::vector<ReportBlock> report_blocks_;
80 79
81 RTC_DISALLOW_COPY_AND_ASSIGN(SenderReport); 80 RTC_DISALLOW_COPY_AND_ASSIGN(SenderReport);
82 }; 81 };
83 82
84 } // namespace rtcp 83 } // namespace rtcp
85 } // namespace webrtc 84 } // namespace webrtc
86 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_SENDER_REPORT_H_ 85 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_SENDER_REPORT_H_
OLDNEW
« no previous file with comments | « no previous file | webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698