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

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

Issue 2867713003: Remove hardcoded kValueSizeBytes values from variable-length header extensions. (Closed)
Patch Set: Patch 5 Created 3 years, 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2016 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
11 #include <vector> 11 #include <vector>
12 12
13 #include "webrtc/config.h" 13 #include "webrtc/config.h"
14 #include "webrtc/modules/rtp_rtcp/include/flexfec_sender.h" 14 #include "webrtc/modules/rtp_rtcp/include/flexfec_sender.h"
15 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" 15 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
16 #include "webrtc/modules/rtp_rtcp/source/fec_test_helper.h" 16 #include "webrtc/modules/rtp_rtcp/source/fec_test_helper.h"
17 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h" 17 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h"
18 #include "webrtc/modules/rtp_rtcp/source/rtp_packet_to_send.h" 18 #include "webrtc/modules/rtp_rtcp/source/rtp_packet_to_send.h"
19 #include "webrtc/modules/rtp_rtcp/source/rtp_sender.h"
20 #include "webrtc/modules/rtp_rtcp/source/rtp_utility.h"
19 #include "webrtc/system_wrappers/include/clock.h" 21 #include "webrtc/system_wrappers/include/clock.h"
20 #include "webrtc/test/gtest.h" 22 #include "webrtc/test/gtest.h"
21 23
22 namespace webrtc { 24 namespace webrtc {
23 25
24 namespace { 26 namespace {
25 27
28 using RtpUtility::Word32Align;
26 using test::fec::AugmentedPacket; 29 using test::fec::AugmentedPacket;
27 using test::fec::AugmentedPacketGenerator; 30 using test::fec::AugmentedPacketGenerator;
28 31
29 constexpr int kFlexfecPayloadType = 123; 32 constexpr int kFlexfecPayloadType = 123;
30 constexpr uint32_t kMediaSsrc = 1234; 33 constexpr uint32_t kMediaSsrc = 1234;
31 constexpr uint32_t kFlexfecSsrc = 5678; 34 constexpr uint32_t kFlexfecSsrc = 5678;
32 const std::vector<RtpExtension> kNoRtpHeaderExtensions; 35 const std::vector<RtpExtension> kNoRtpHeaderExtensions;
36 const std::vector<RtpExtensionSize> kNoRtpHeaderExtensionSizes;
33 // Assume a single protected media SSRC. 37 // Assume a single protected media SSRC.
34 constexpr size_t kFlexfecMaxHeaderSize = 32; 38 constexpr size_t kFlexfecMaxHeaderSize = 32;
35 constexpr size_t kPayloadLength = 50; 39 constexpr size_t kPayloadLength = 50;
36 40
37 constexpr int64_t kInitialSimulatedClockTime = 1; 41 constexpr int64_t kInitialSimulatedClockTime = 1;
38 // These values are deterministically given by the PRNG, due to our fixed seed. 42 // These values are deterministically given by the PRNG, due to our fixed seed.
39 // They should be updated if the PRNG implementation changes. 43 // They should be updated if the PRNG implementation changes.
40 constexpr uint16_t kDeterministicSequenceNumber = 28732; 44 constexpr uint16_t kDeterministicSequenceNumber = 28732;
41 constexpr uint32_t kDeterministicTimestamp = 2305613085; 45 constexpr uint32_t kDeterministicTimestamp = 2305613085;
42 46
(...skipping 23 matching lines...) Expand all
66 EXPECT_EQ(1U, fec_packets.size()); 70 EXPECT_EQ(1U, fec_packets.size());
67 71
68 return std::move(fec_packets.front()); 72 return std::move(fec_packets.front());
69 } 73 }
70 74
71 } // namespace 75 } // namespace
72 76
73 TEST(FlexfecSenderTest, Ssrc) { 77 TEST(FlexfecSenderTest, Ssrc) {
74 SimulatedClock clock(kInitialSimulatedClockTime); 78 SimulatedClock clock(kInitialSimulatedClockTime);
75 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, 79 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc,
76 kNoRtpHeaderExtensions, &clock); 80 kNoRtpHeaderExtensions, kNoRtpHeaderExtensionSizes,
81 &clock);
77 82
78 EXPECT_EQ(kFlexfecSsrc, sender.ssrc()); 83 EXPECT_EQ(kFlexfecSsrc, sender.ssrc());
79 } 84 }
80 85
81 TEST(FlexfecSenderTest, NoFecAvailableBeforeMediaAdded) { 86 TEST(FlexfecSenderTest, NoFecAvailableBeforeMediaAdded) {
82 SimulatedClock clock(kInitialSimulatedClockTime); 87 SimulatedClock clock(kInitialSimulatedClockTime);
83 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, 88 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc,
84 kNoRtpHeaderExtensions, &clock); 89 kNoRtpHeaderExtensions, kNoRtpHeaderExtensionSizes,
90 &clock);
85 91
86 EXPECT_FALSE(sender.FecAvailable()); 92 EXPECT_FALSE(sender.FecAvailable());
87 auto fec_packets = sender.GetFecPackets(); 93 auto fec_packets = sender.GetFecPackets();
88 EXPECT_EQ(0U, fec_packets.size()); 94 EXPECT_EQ(0U, fec_packets.size());
89 } 95 }
90 96
91 TEST(FlexfecSenderTest, ProtectOneFrameWithOneFecPacket) { 97 TEST(FlexfecSenderTest, ProtectOneFrameWithOneFecPacket) {
92 SimulatedClock clock(kInitialSimulatedClockTime); 98 SimulatedClock clock(kInitialSimulatedClockTime);
93 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, 99 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc,
94 kNoRtpHeaderExtensions, &clock); 100 kNoRtpHeaderExtensions, kNoRtpHeaderExtensionSizes,
101 &clock);
95 auto fec_packet = GenerateSingleFlexfecPacket(&sender); 102 auto fec_packet = GenerateSingleFlexfecPacket(&sender);
96 103
97 EXPECT_EQ(kRtpHeaderSize, fec_packet->headers_size()); 104 EXPECT_EQ(kRtpHeaderSize, fec_packet->headers_size());
98 EXPECT_FALSE(fec_packet->Marker()); 105 EXPECT_FALSE(fec_packet->Marker());
99 EXPECT_EQ(kFlexfecPayloadType, fec_packet->PayloadType()); 106 EXPECT_EQ(kFlexfecPayloadType, fec_packet->PayloadType());
100 EXPECT_EQ(kDeterministicSequenceNumber, fec_packet->SequenceNumber()); 107 EXPECT_EQ(kDeterministicSequenceNumber, fec_packet->SequenceNumber());
101 EXPECT_EQ(kDeterministicTimestamp, fec_packet->Timestamp()); 108 EXPECT_EQ(kDeterministicTimestamp, fec_packet->Timestamp());
102 EXPECT_EQ(kFlexfecSsrc, fec_packet->Ssrc()); 109 EXPECT_EQ(kFlexfecSsrc, fec_packet->Ssrc());
103 EXPECT_LE(kPayloadLength, fec_packet->payload_size()); 110 EXPECT_LE(kPayloadLength, fec_packet->payload_size());
104 } 111 }
105 112
106 TEST(FlexfecSenderTest, ProtectTwoFramesWithOneFecPacket) { 113 TEST(FlexfecSenderTest, ProtectTwoFramesWithOneFecPacket) {
107 // FEC parameters selected to generate a single FEC packet per frame. 114 // FEC parameters selected to generate a single FEC packet per frame.
108 FecProtectionParams params; 115 FecProtectionParams params;
109 params.fec_rate = 15; 116 params.fec_rate = 15;
110 params.max_fec_frames = 2; 117 params.max_fec_frames = 2;
111 params.fec_mask_type = kFecMaskRandom; 118 params.fec_mask_type = kFecMaskRandom;
112 constexpr size_t kNumFrames = 2; 119 constexpr size_t kNumFrames = 2;
113 constexpr size_t kNumPacketsPerFrame = 2; 120 constexpr size_t kNumPacketsPerFrame = 2;
114 SimulatedClock clock(kInitialSimulatedClockTime); 121 SimulatedClock clock(kInitialSimulatedClockTime);
115 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, 122 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc,
116 kNoRtpHeaderExtensions, &clock); 123 kNoRtpHeaderExtensions, kNoRtpHeaderExtensionSizes,
124 &clock);
117 sender.SetFecParameters(params); 125 sender.SetFecParameters(params);
118 126
119 AugmentedPacketGenerator packet_generator(kMediaSsrc); 127 AugmentedPacketGenerator packet_generator(kMediaSsrc);
120 for (size_t i = 0; i < kNumFrames; ++i) { 128 for (size_t i = 0; i < kNumFrames; ++i) {
121 packet_generator.NewFrame(kNumPacketsPerFrame); 129 packet_generator.NewFrame(kNumPacketsPerFrame);
122 for (size_t j = 0; j < kNumPacketsPerFrame; ++j) { 130 for (size_t j = 0; j < kNumPacketsPerFrame; ++j) {
123 std::unique_ptr<AugmentedPacket> packet = 131 std::unique_ptr<AugmentedPacket> packet =
124 packet_generator.NextPacket(i, kPayloadLength); 132 packet_generator.NextPacket(i, kPayloadLength);
125 RtpPacketToSend rtp_packet(nullptr); 133 RtpPacketToSend rtp_packet(nullptr);
126 rtp_packet.Parse(packet->data, packet->length); 134 rtp_packet.Parse(packet->data, packet->length);
(...skipping 18 matching lines...) Expand all
145 TEST(FlexfecSenderTest, ProtectTwoFramesWithTwoFecPackets) { 153 TEST(FlexfecSenderTest, ProtectTwoFramesWithTwoFecPackets) {
146 // FEC parameters selected to generate a single FEC packet per frame. 154 // FEC parameters selected to generate a single FEC packet per frame.
147 FecProtectionParams params; 155 FecProtectionParams params;
148 params.fec_rate = 30; 156 params.fec_rate = 30;
149 params.max_fec_frames = 1; 157 params.max_fec_frames = 1;
150 params.fec_mask_type = kFecMaskRandom; 158 params.fec_mask_type = kFecMaskRandom;
151 constexpr size_t kNumFrames = 2; 159 constexpr size_t kNumFrames = 2;
152 constexpr size_t kNumPacketsPerFrame = 2; 160 constexpr size_t kNumPacketsPerFrame = 2;
153 SimulatedClock clock(kInitialSimulatedClockTime); 161 SimulatedClock clock(kInitialSimulatedClockTime);
154 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, 162 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc,
155 kNoRtpHeaderExtensions, &clock); 163 kNoRtpHeaderExtensions, kNoRtpHeaderExtensionSizes,
164 &clock);
156 sender.SetFecParameters(params); 165 sender.SetFecParameters(params);
157 166
158 AugmentedPacketGenerator packet_generator(kMediaSsrc); 167 AugmentedPacketGenerator packet_generator(kMediaSsrc);
159 for (size_t i = 0; i < kNumFrames; ++i) { 168 for (size_t i = 0; i < kNumFrames; ++i) {
160 packet_generator.NewFrame(kNumPacketsPerFrame); 169 packet_generator.NewFrame(kNumPacketsPerFrame);
161 for (size_t j = 0; j < kNumPacketsPerFrame; ++j) { 170 for (size_t j = 0; j < kNumPacketsPerFrame; ++j) {
162 std::unique_ptr<AugmentedPacket> packet = 171 std::unique_ptr<AugmentedPacket> packet =
163 packet_generator.NextPacket(i, kPayloadLength); 172 packet_generator.NextPacket(i, kPayloadLength);
164 RtpPacketToSend rtp_packet(nullptr); 173 RtpPacketToSend rtp_packet(nullptr);
165 rtp_packet.Parse(packet->data, packet->length); 174 rtp_packet.Parse(packet->data, packet->length);
(...skipping 14 matching lines...) Expand all
180 EXPECT_EQ(kDeterministicTimestamp, fec_packet->Timestamp()); 189 EXPECT_EQ(kDeterministicTimestamp, fec_packet->Timestamp());
181 EXPECT_EQ(kFlexfecSsrc, fec_packet->Ssrc()); 190 EXPECT_EQ(kFlexfecSsrc, fec_packet->Ssrc());
182 } 191 }
183 } 192 }
184 193
185 // In the tests, we only consider RTP header extensions that are useful for BWE. 194 // In the tests, we only consider RTP header extensions that are useful for BWE.
186 TEST(FlexfecSenderTest, NoRtpHeaderExtensionsForBweByDefault) { 195 TEST(FlexfecSenderTest, NoRtpHeaderExtensionsForBweByDefault) {
187 const std::vector<RtpExtension> kRtpHeaderExtensions{}; 196 const std::vector<RtpExtension> kRtpHeaderExtensions{};
188 SimulatedClock clock(kInitialSimulatedClockTime); 197 SimulatedClock clock(kInitialSimulatedClockTime);
189 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, 198 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc,
190 kRtpHeaderExtensions, &clock); 199 kRtpHeaderExtensions, kNoRtpHeaderExtensionSizes,
200 &clock);
191 auto fec_packet = GenerateSingleFlexfecPacket(&sender); 201 auto fec_packet = GenerateSingleFlexfecPacket(&sender);
192 202
193 EXPECT_FALSE(fec_packet->HasExtension<AbsoluteSendTime>()); 203 EXPECT_FALSE(fec_packet->HasExtension<AbsoluteSendTime>());
194 EXPECT_FALSE(fec_packet->HasExtension<TransmissionOffset>()); 204 EXPECT_FALSE(fec_packet->HasExtension<TransmissionOffset>());
195 EXPECT_FALSE(fec_packet->HasExtension<TransportSequenceNumber>()); 205 EXPECT_FALSE(fec_packet->HasExtension<TransportSequenceNumber>());
196 } 206 }
197 207
198 TEST(FlexfecSenderTest, RegisterAbsoluteSendTimeRtpHeaderExtension) { 208 TEST(FlexfecSenderTest, RegisterAbsoluteSendTimeRtpHeaderExtension) {
199 const std::vector<RtpExtension> kRtpHeaderExtensions{ 209 const std::vector<RtpExtension> kRtpHeaderExtensions{
200 {RtpExtension::kAbsSendTimeUri, 1}}; 210 {RtpExtension::kAbsSendTimeUri, 1}};
201 SimulatedClock clock(kInitialSimulatedClockTime); 211 SimulatedClock clock(kInitialSimulatedClockTime);
202 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, 212 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc,
203 kRtpHeaderExtensions, &clock); 213 kRtpHeaderExtensions, kNoRtpHeaderExtensionSizes,
214 &clock);
204 auto fec_packet = GenerateSingleFlexfecPacket(&sender); 215 auto fec_packet = GenerateSingleFlexfecPacket(&sender);
205 216
206 EXPECT_TRUE(fec_packet->HasExtension<AbsoluteSendTime>()); 217 EXPECT_TRUE(fec_packet->HasExtension<AbsoluteSendTime>());
207 EXPECT_FALSE(fec_packet->HasExtension<TransmissionOffset>()); 218 EXPECT_FALSE(fec_packet->HasExtension<TransmissionOffset>());
208 EXPECT_FALSE(fec_packet->HasExtension<TransportSequenceNumber>()); 219 EXPECT_FALSE(fec_packet->HasExtension<TransportSequenceNumber>());
209 } 220 }
210 221
211 TEST(FlexfecSenderTest, RegisterTransmissionOffsetRtpHeaderExtension) { 222 TEST(FlexfecSenderTest, RegisterTransmissionOffsetRtpHeaderExtension) {
212 const std::vector<RtpExtension> kRtpHeaderExtensions{ 223 const std::vector<RtpExtension> kRtpHeaderExtensions{
213 {RtpExtension::kTimestampOffsetUri, 1}}; 224 {RtpExtension::kTimestampOffsetUri, 1}};
214 SimulatedClock clock(kInitialSimulatedClockTime); 225 SimulatedClock clock(kInitialSimulatedClockTime);
215 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, 226 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc,
216 kRtpHeaderExtensions, &clock); 227 kRtpHeaderExtensions, kNoRtpHeaderExtensionSizes,
228 &clock);
217 auto fec_packet = GenerateSingleFlexfecPacket(&sender); 229 auto fec_packet = GenerateSingleFlexfecPacket(&sender);
218 230
219 EXPECT_FALSE(fec_packet->HasExtension<AbsoluteSendTime>()); 231 EXPECT_FALSE(fec_packet->HasExtension<AbsoluteSendTime>());
220 EXPECT_TRUE(fec_packet->HasExtension<TransmissionOffset>()); 232 EXPECT_TRUE(fec_packet->HasExtension<TransmissionOffset>());
221 EXPECT_FALSE(fec_packet->HasExtension<TransportSequenceNumber>()); 233 EXPECT_FALSE(fec_packet->HasExtension<TransportSequenceNumber>());
222 } 234 }
223 235
224 TEST(FlexfecSenderTest, RegisterTransportSequenceNumberRtpHeaderExtension) { 236 TEST(FlexfecSenderTest, RegisterTransportSequenceNumberRtpHeaderExtension) {
225 const std::vector<RtpExtension> kRtpHeaderExtensions{ 237 const std::vector<RtpExtension> kRtpHeaderExtensions{
226 {RtpExtension::kTransportSequenceNumberUri, 1}}; 238 {RtpExtension::kTransportSequenceNumberUri, 1}};
227 SimulatedClock clock(kInitialSimulatedClockTime); 239 SimulatedClock clock(kInitialSimulatedClockTime);
228 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, 240 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc,
229 kRtpHeaderExtensions, &clock); 241 kRtpHeaderExtensions, kNoRtpHeaderExtensionSizes,
242 &clock);
230 auto fec_packet = GenerateSingleFlexfecPacket(&sender); 243 auto fec_packet = GenerateSingleFlexfecPacket(&sender);
231 244
232 EXPECT_FALSE(fec_packet->HasExtension<AbsoluteSendTime>()); 245 EXPECT_FALSE(fec_packet->HasExtension<AbsoluteSendTime>());
233 EXPECT_FALSE(fec_packet->HasExtension<TransmissionOffset>()); 246 EXPECT_FALSE(fec_packet->HasExtension<TransmissionOffset>());
234 EXPECT_TRUE(fec_packet->HasExtension<TransportSequenceNumber>()); 247 EXPECT_TRUE(fec_packet->HasExtension<TransportSequenceNumber>());
235 } 248 }
236 249
237 TEST(FlexfecSenderTest, RegisterAllRtpHeaderExtensionsForBwe) { 250 TEST(FlexfecSenderTest, RegisterAllRtpHeaderExtensionsForBwe) {
238 const std::vector<RtpExtension> kRtpHeaderExtensions{ 251 const std::vector<RtpExtension> kRtpHeaderExtensions{
239 {RtpExtension::kAbsSendTimeUri, 1}, 252 {RtpExtension::kAbsSendTimeUri, 1},
240 {RtpExtension::kTimestampOffsetUri, 2}, 253 {RtpExtension::kTimestampOffsetUri, 2},
241 {RtpExtension::kTransportSequenceNumberUri, 3}}; 254 {RtpExtension::kTransportSequenceNumberUri, 3}};
242 SimulatedClock clock(kInitialSimulatedClockTime); 255 SimulatedClock clock(kInitialSimulatedClockTime);
243 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, 256 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc,
244 kRtpHeaderExtensions, &clock); 257 kRtpHeaderExtensions, kNoRtpHeaderExtensionSizes,
258 &clock);
245 auto fec_packet = GenerateSingleFlexfecPacket(&sender); 259 auto fec_packet = GenerateSingleFlexfecPacket(&sender);
246 260
247 EXPECT_TRUE(fec_packet->HasExtension<AbsoluteSendTime>()); 261 EXPECT_TRUE(fec_packet->HasExtension<AbsoluteSendTime>());
248 EXPECT_TRUE(fec_packet->HasExtension<TransmissionOffset>()); 262 EXPECT_TRUE(fec_packet->HasExtension<TransmissionOffset>());
249 EXPECT_TRUE(fec_packet->HasExtension<TransportSequenceNumber>()); 263 EXPECT_TRUE(fec_packet->HasExtension<TransportSequenceNumber>());
250 } 264 }
251 265
252 TEST(FlexfecSenderTest, MaxPacketOverhead) { 266 TEST(FlexfecSenderTest, MaxPacketOverhead) {
253 SimulatedClock clock(kInitialSimulatedClockTime); 267 SimulatedClock clock(kInitialSimulatedClockTime);
254 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc, 268 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc,
255 kNoRtpHeaderExtensions, &clock); 269 kNoRtpHeaderExtensions, kNoRtpHeaderExtensionSizes,
270 &clock);
256 271
257 EXPECT_EQ(kFlexfecMaxHeaderSize, sender.MaxPacketOverhead()); 272 EXPECT_EQ(kFlexfecMaxHeaderSize, sender.MaxPacketOverhead());
258 } 273 }
259 274
275 TEST(FlexfecSenderTest, MaxPacketOverheadWithExtensions) {
276 const std::vector<RtpExtension> kRtpHeaderExtensions{
277 {RtpExtension::kAbsSendTimeUri, 1},
278 {RtpExtension::kTimestampOffsetUri, 2},
279 {RtpExtension::kTransportSequenceNumberUri, 3}};
280 SimulatedClock clock(kInitialSimulatedClockTime);
281 const size_t kExtensionHeaderLength = 1;
282 const size_t kRtpOneByteHeaderLength = 4;
283 const size_t kExtensionsTotalSize =
284 Word32Align(AbsoluteSendTime::kValueSizeBytes +
285 TransmissionOffset::kValueSizeBytes +
286 TransportSequenceNumber::kValueSizeBytes +
287 kRtpOneByteHeaderLength + 3*kExtensionHeaderLength);
danilchap 2017/05/10 18:15:10 git cl format to add spaces round *
brandtr 2017/05/10 19:23:06 Maybe put these constants in the order that they w
erikvarga1 2017/05/11 08:40:13 Done.
288 FlexfecSender sender(kFlexfecPayloadType, kFlexfecSsrc, kMediaSsrc,
289 kRtpHeaderExtensions, RTPSender::FecExtensionSizes(),
290 &clock);
291
292 EXPECT_EQ(kExtensionsTotalSize + kFlexfecMaxHeaderSize,
293 sender.MaxPacketOverhead());
294 }
295
260 } // namespace webrtc 296 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698