From d8ee4f99154691752dd8d2f2d70750554dca7ca7 Mon Sep 17 00:00:00 2001 From: sprang Date: Mon, 24 Aug 2015 03:25:19 -0700 Subject: [PATCH] Use RtcpPacket to send BYE in RtcpSender BUG=webrtc:2450 Review URL: https://codereview.webrtc.org/1306893003 Cr-Commit-Position: refs/heads/master@{#9763} --- webrtc/modules/rtp_rtcp/source/rtcp_sender.cc | 25 ++++++------------- 1 file 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,26 +885,15 @@ RTCPSender::BuildResult RTCPSender::BuildNACK(RtcpContext* ctx) { } RTCPSender::BuildResult RTCPSender::BuildBYE(RtcpContext* ctx) { - // sanity - if (ctx->position + 8 >= IP_PACKET_SIZE) + rtcp::Bye bye; + bye.From(ssrc_); + for (uint32_t csrc : csrcs_) + bye.WithCsrc(csrc); + + PacketBuiltCallback callback(ctx); + if (!callback.BuildPacket(bye)) return BuildResult::kTruncated; - // Add a bye packet - // Number of SSRC + CSRCs. - *ctx->AllocateData(1) = static_cast(0x80 + 1 + csrcs_.size()); - *ctx->AllocateData(1) = 203; - - // length - *ctx->AllocateData(1) = 0; - *ctx->AllocateData(1) = static_cast(1 + csrcs_.size()); - - // Add our own SSRC - ByteWriter::WriteBigEndian(ctx->AllocateData(4), ssrc_); - - // add CSRCs - for (size_t i = 0; i < csrcs_.size(); i++) - ByteWriter::WriteBigEndian(ctx->AllocateData(4), csrcs_[i]); - return BuildResult::kSuccess; }