diff options
author | sprang <sprang@webrtc.org> | 2015-08-24 03:25:19 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-24 10:25:27 +0000 |
commit | d8ee4f99154691752dd8d2f2d70750554dca7ca7 (patch) | |
tree | 676f10caa6a901877d097e80877e0c19afc78b8c | |
parent | 608c3cfe77c165965ea04fcd0a2a71aad05a1d16 (diff) | |
download | webrtc-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.cc | 25 |
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; } |