OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/cast/rtcp/test_rtcp_packet_builder.h" | 5 #include "media/cast/rtcp/test_rtcp_packet_builder.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "media/cast/rtcp/rtcp_utility.h" | 8 #include "media/cast/rtcp/rtcp_utility.h" |
9 | 9 |
10 namespace media { | 10 namespace media { |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 AddRtcpHeader(202, 1); | 58 AddRtcpHeader(202, 1); |
59 big_endian_writer_.WriteU32(sender_ssrc); | 59 big_endian_writer_.WriteU32(sender_ssrc); |
60 big_endian_writer_.WriteU8(1); // c_name. | 60 big_endian_writer_.WriteU8(1); // c_name. |
61 | 61 |
62 DCHECK_LE(c_name.size(), 255u); | 62 DCHECK_LE(c_name.size(), 255u); |
63 big_endian_writer_.WriteU8( | 63 big_endian_writer_.WriteU8( |
64 static_cast<uint8>(c_name.size())); // c_name length in bytes. | 64 static_cast<uint8>(c_name.size())); // c_name length in bytes. |
65 for (size_t i = 0; i < c_name.size(); ++i) { | 65 for (size_t i = 0; i < c_name.size(); ++i) { |
66 big_endian_writer_.WriteU8(c_name.c_str()[i]); | 66 big_endian_writer_.WriteU8(c_name.c_str()[i]); |
67 } | 67 } |
68 int padding; | 68 const int padding = 4 - ((c_name.size() + 2) % 4); |
69 switch (c_name.size() % 4) { | |
70 case 0: | |
71 padding = 2; | |
72 break; | |
73 case 1: | |
74 padding = 1; | |
75 break; | |
76 case 2: | |
77 padding = 4; | |
78 break; | |
79 case 3: | |
80 padding = 3; | |
81 break; | |
82 } | |
83 for (int j = 0; j < padding; ++j) { | 69 for (int j = 0; j < padding; ++j) { |
84 big_endian_writer_.WriteU8(0); | 70 big_endian_writer_.WriteU8(0); |
85 } | 71 } |
86 } | 72 } |
87 | 73 |
88 void TestRtcpPacketBuilder::AddXrHeader(uint32 sender_ssrc) { | 74 void TestRtcpPacketBuilder::AddXrHeader(uint32 sender_ssrc) { |
89 AddRtcpHeader(207, 0); | 75 AddRtcpHeader(207, 0); |
90 big_endian_writer_.WriteU32(sender_ssrc); | 76 big_endian_writer_.WriteU32(sender_ssrc); |
91 } | 77 } |
92 | 78 |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 big_endian_writer_.WriteU8(0x80 | (format_or_count & 0x1F)); | 260 big_endian_writer_.WriteU8(0x80 | (format_or_count & 0x1F)); |
275 big_endian_writer_.WriteU8(payload); | 261 big_endian_writer_.WriteU8(payload); |
276 ptr_of_length_ = big_endian_writer_.ptr(); | 262 ptr_of_length_ = big_endian_writer_.ptr(); |
277 | 263 |
278 // Initialize length to "clearly illegal". | 264 // Initialize length to "clearly illegal". |
279 big_endian_writer_.WriteU16(0xDEAD); | 265 big_endian_writer_.WriteU16(0xDEAD); |
280 } | 266 } |
281 | 267 |
282 } // namespace cast | 268 } // namespace cast |
283 } // namespace media | 269 } // namespace media |
OLD | NEW |