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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtcp_sender.cc

Issue 1306893003: Use RtcpPacket to send BYE in RtcpSender (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 4 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 | no next file » | 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) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 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
(...skipping 867 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 "RTCPSender::NACK", "nacks", 878 "RTCPSender::NACK", "nacks",
879 TRACE_STR_COPY(stringBuilder.GetResult().c_str())); 879 TRACE_STR_COPY(stringBuilder.GetResult().c_str()));
880 ++packet_type_counter_.nack_packets; 880 ++packet_type_counter_.nack_packets;
881 TRACE_COUNTER_ID1(TRACE_DISABLED_BY_DEFAULT("webrtc_rtp"), "RTCP_NACKCount", 881 TRACE_COUNTER_ID1(TRACE_DISABLED_BY_DEFAULT("webrtc_rtp"), "RTCP_NACKCount",
882 ssrc_, packet_type_counter_.nack_packets); 882 ssrc_, packet_type_counter_.nack_packets);
883 883
884 return BuildResult::kSuccess; 884 return BuildResult::kSuccess;
885 } 885 }
886 886
887 RTCPSender::BuildResult RTCPSender::BuildBYE(RtcpContext* ctx) { 887 RTCPSender::BuildResult RTCPSender::BuildBYE(RtcpContext* ctx) {
888 // sanity 888 rtcp::Bye bye;
889 if (ctx->position + 8 >= IP_PACKET_SIZE) 889 bye.From(ssrc_);
890 for (uint32_t csrc : csrcs_)
891 bye.WithCsrc(csrc);
892
893 PacketBuiltCallback callback(ctx);
894 if (!callback.BuildPacket(bye))
890 return BuildResult::kTruncated; 895 return BuildResult::kTruncated;
891 896
892 // Add a bye packet
893 // Number of SSRC + CSRCs.
894 *ctx->AllocateData(1) = static_cast<uint8_t>(0x80 + 1 + csrcs_.size());
895 *ctx->AllocateData(1) = 203;
896
897 // length
898 *ctx->AllocateData(1) = 0;
899 *ctx->AllocateData(1) = static_cast<uint8_t>(1 + csrcs_.size());
900
901 // Add our own SSRC
902 ByteWriter<uint32_t>::WriteBigEndian(ctx->AllocateData(4), ssrc_);
903
904 // add CSRCs
905 for (size_t i = 0; i < csrcs_.size(); i++)
906 ByteWriter<uint32_t>::WriteBigEndian(ctx->AllocateData(4), csrcs_[i]);
907
908 return BuildResult::kSuccess; 897 return BuildResult::kSuccess;
909 } 898 }
910 899
911 RTCPSender::BuildResult RTCPSender::BuildReceiverReferenceTime( 900 RTCPSender::BuildResult RTCPSender::BuildReceiverReferenceTime(
912 RtcpContext* ctx) { 901 RtcpContext* ctx) {
913 const int kRrTimeBlockLength = 20; 902 const int kRrTimeBlockLength = 20;
914 if (ctx->position + kRrTimeBlockLength >= IP_PACKET_SIZE) 903 if (ctx->position + kRrTimeBlockLength >= IP_PACKET_SIZE)
915 return BuildResult::kTruncated; 904 return BuildResult::kTruncated;
916 905
917 if (last_xr_rr_.size() >= RTCP_NUMBER_OF_SR) 906 if (last_xr_rr_.size() >= RTCP_NUMBER_OF_SR)
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after
1348 1337
1349 bool RTCPSender::AllVolatileFlagsConsumed() const { 1338 bool RTCPSender::AllVolatileFlagsConsumed() const {
1350 for (const ReportFlag& flag : report_flags_) { 1339 for (const ReportFlag& flag : report_flags_) {
1351 if (flag.is_volatile) 1340 if (flag.is_volatile)
1352 return false; 1341 return false;
1353 } 1342 }
1354 return true; 1343 return true;
1355 } 1344 }
1356 1345
1357 } // namespace webrtc 1346 } // namespace webrtc
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698