aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsprang <sprang@webrtc.org>2015-08-24 03:25:19 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-24 10:25:27 +0000
commitd8ee4f99154691752dd8d2f2d70750554dca7ca7 (patch)
tree676f10caa6a901877d097e80877e0c19afc78b8c
parent608c3cfe77c165965ea04fcd0a2a71aad05a1d16 (diff)
downloadwebrtc-d8ee4f99154691752dd8d2f2d70750554dca7ca7.tar.gz
Use RtcpPacket to send BYE in RtcpSender
BUG=webrtc:2450 Review URL: https://codereview.webrtc.org/1306893003 Cr-Commit-Position: refs/heads/master@{#9763}
-rw-r--r--webrtc/modules/rtp_rtcp/source/rtcp_sender.cc25
1 files changed, 7 insertions, 18 deletions
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc b/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc
index 4c840372f5..1f5bf55141 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_sender.cc
@@ -885,25 +885,14 @@ RTCPSender::BuildResult RTCPSender::BuildNACK(RtcpContext* ctx) {
}
RTCPSender::BuildResult RTCPSender::BuildBYE(RtcpContext* ctx) {
- // sanity
- if (ctx->position + 8 >= IP_PACKET_SIZE)
- return BuildResult::kTruncated;
-
- // Add a bye packet
- // Number of SSRC + CSRCs.
- *ctx->AllocateData(1) = static_cast<uint8_t>(0x80 + 1 + csrcs_.size());
- *ctx->AllocateData(1) = 203;
-
- // length
- *ctx->AllocateData(1) = 0;
- *ctx->AllocateData(1) = static_cast<uint8_t>(1 + csrcs_.size());
+ rtcp::Bye bye;
+ bye.From(ssrc_);
+ for (uint32_t csrc : csrcs_)
+ bye.WithCsrc(csrc);
- // Add our own SSRC
- ByteWriter<uint32_t>::WriteBigEndian(ctx->AllocateData(4), ssrc_);
-
- // add CSRCs
- for (size_t i = 0; i < csrcs_.size(); i++)
- ByteWriter<uint32_t>::WriteBigEndian(ctx->AllocateData(4), csrcs_[i]);
+ PacketBuiltCallback callback(ctx);
+ if (!callback.BuildPacket(bye))
+ return BuildResult::kTruncated;
return BuildResult::kSuccess;
}