diff options
author | Danil Chapovalov <danilchap@webrtc.org> | 2015-12-07 14:46:35 +0100 |
---|---|---|
committer | Danil Chapovalov <danilchap@webrtc.org> | 2015-12-07 13:46:42 +0000 |
commit | fc47ed6c0524d7ee0bc7947f0ad65fcefda34a29 (patch) | |
tree | d0ab98f826ac421464e45c1d28953f664af83944 /webrtc/modules/rtp_rtcp/source/rtcp_packet.cc | |
parent | 1aa420b6aa70bd97cbe33e396e5dc0346aeb6415 (diff) | |
download | webrtc-fc47ed6c0524d7ee0bc7947f0ad65fcefda34a29.tar.gz |
rtcp::Rrtr block moved into own file and got Parse function
BUG=webrtc:5260
R=asapersson@webrtc.org, åsapersson
Review URL: https://codereview.webrtc.org/1496883002 .
Cr-Commit-Position: refs/heads/master@{#10912}
Diffstat (limited to 'webrtc/modules/rtp_rtcp/source/rtcp_packet.cc')
-rw-r--r-- | webrtc/modules/rtp_rtcp/source/rtcp_packet.cc | 34 |
1 files changed, 6 insertions, 28 deletions
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_packet.cc b/webrtc/modules/rtp_rtcp/source/rtcp_packet.cc index 41ebcadc22..e31f7487f3 100644 --- a/webrtc/modules/rtp_rtcp/source/rtcp_packet.cc +++ b/webrtc/modules/rtp_rtcp/source/rtcp_packet.cc @@ -43,7 +43,6 @@ using webrtc::RTCPUtility::RTCPPacketRTPFBTMMBR; using webrtc::RTCPUtility::RTCPPacketRTPFBTMMBRItem; using webrtc::RTCPUtility::RTCPPacketSR; using webrtc::RTCPUtility::RTCPPacketXRDLRRReportBlockItem; -using webrtc::RTCPUtility::RTCPPacketXRReceiverReferenceTimeItem; using webrtc::RTCPUtility::RTCPPacketXR; using webrtc::RTCPUtility::RTCPPacketXRVOIPMetricItem; @@ -416,30 +415,6 @@ void CreateXrBlockHeader(uint8_t block_type, AssignUWord16(buffer, pos, block_length); } -// Receiver Reference Time Report Block (RFC 3611). -// -// 0 1 2 3 -// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// | BT=4 | reserved | block length = 2 | -// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// | NTP timestamp, most significant word | -// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -// | NTP timestamp, least significant word | -// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - -void CreateRrtr(const std::vector<RTCPPacketXRReceiverReferenceTimeItem>& rrtrs, - uint8_t* buffer, - size_t* pos) { - const uint16_t kBlockLength = 2; - for (std::vector<RTCPPacketXRReceiverReferenceTimeItem>::const_iterator it = - rrtrs.begin(); it != rrtrs.end(); ++it) { - CreateXrBlockHeader(kBtReceiverReferenceTime, kBlockLength, buffer, pos); - AssignUWord32(buffer, pos, (*it).NTPMostSignificant); - AssignUWord32(buffer, pos, (*it).NTPLeastSignificant); - } -} - // DLRR Report Block (RFC 3611). // // 0 1 2 3 @@ -910,19 +885,22 @@ bool Xr::Create(uint8_t* packet, } CreateHeader(0U, PT_XR, HeaderLength(), packet, index); CreateXrHeader(xr_header_, packet, index); - CreateRrtr(rrtr_blocks_, packet, index); + for (const Rrtr& block : rrtr_blocks_) { + block.Create(packet + *index); + *index += Rrtr::kLength; + } CreateDlrr(dlrr_blocks_, packet, index); CreateVoipMetric(voip_metric_blocks_, packet, index); return true; } bool Xr::WithRrtr(Rrtr* rrtr) { - assert(rrtr); + RTC_DCHECK(rrtr); if (rrtr_blocks_.size() >= kMaxNumberOfRrtrBlocks) { LOG(LS_WARNING) << "Max RRTR blocks reached."; return false; } - rrtr_blocks_.push_back(rrtr->rrtr_block_); + rrtr_blocks_.push_back(*rrtr); return true; } |