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

Side by Side Diff: webrtc/ortc/ortcfactory_integrationtest.cc

Issue 2981513002: Wire up RTP keep-alive in ortc api. (Closed)
Patch Set: deps, again Created 3 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 | « webrtc/ortc/ortcfactory.cc ('k') | webrtc/ortc/ortcfactory_unittest.cc » ('j') | 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 2017 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2017 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 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 return {ortc_factory1_->CreateRtpTransportController().MoveValue(), 121 return {ortc_factory1_->CreateRtpTransportController().MoveValue(),
122 ortc_factory2_->CreateRtpTransportController().MoveValue()}; 122 ortc_factory2_->CreateRtpTransportController().MoveValue()};
123 } 123 }
124 124
125 // Helper function that creates a pair of RtpTransports between 125 // Helper function that creates a pair of RtpTransports between
126 // |ortc_factory1_| and |ortc_factory2_|. Expected to be called with the 126 // |ortc_factory1_| and |ortc_factory2_|. Expected to be called with the
127 // result of CreateAndConnectUdpTransportPair. |rtcp_udp_transports| can be 127 // result of CreateAndConnectUdpTransportPair. |rtcp_udp_transports| can be
128 // empty if RTCP muxing is used. |transport_controllers| can be empty if 128 // empty if RTCP muxing is used. |transport_controllers| can be empty if
129 // these transports are being created using a default transport controller. 129 // these transports are being created using a default transport controller.
130 RtpTransportPair CreateRtpTransportPair( 130 RtpTransportPair CreateRtpTransportPair(
131 const RtcpParameters& rtcp_parameters, 131 const RtpTransportParameters& parameters,
132 const UdpTransportPair& rtp_udp_transports, 132 const UdpTransportPair& rtp_udp_transports,
133 const UdpTransportPair& rtcp_udp_transports, 133 const UdpTransportPair& rtcp_udp_transports,
134 const RtpTransportControllerPair& transport_controllers) { 134 const RtpTransportControllerPair& transport_controllers) {
135 auto transport_result1 = ortc_factory1_->CreateRtpTransport( 135 auto transport_result1 = ortc_factory1_->CreateRtpTransport(
136 rtcp_parameters, rtp_udp_transports.first.get(), 136 parameters, rtp_udp_transports.first.get(),
137 rtcp_udp_transports.first.get(), transport_controllers.first.get()); 137 rtcp_udp_transports.first.get(), transport_controllers.first.get());
138 auto transport_result2 = ortc_factory2_->CreateRtpTransport( 138 auto transport_result2 = ortc_factory2_->CreateRtpTransport(
139 rtcp_parameters, rtp_udp_transports.second.get(), 139 parameters, rtp_udp_transports.second.get(),
140 rtcp_udp_transports.second.get(), transport_controllers.second.get()); 140 rtcp_udp_transports.second.get(), transport_controllers.second.get());
141 return {transport_result1.MoveValue(), transport_result2.MoveValue()}; 141 return {transport_result1.MoveValue(), transport_result2.MoveValue()};
142 } 142 }
143 143
144 SrtpTransportPair CreateSrtpTransportPair( 144 SrtpTransportPair CreateSrtpTransportPair(
145 const RtcpParameters& rtcp_parameters, 145 const RtpTransportParameters& parameters,
146 const UdpTransportPair& rtp_udp_transports, 146 const UdpTransportPair& rtp_udp_transports,
147 const UdpTransportPair& rtcp_udp_transports, 147 const UdpTransportPair& rtcp_udp_transports,
148 const RtpTransportControllerPair& transport_controllers) { 148 const RtpTransportControllerPair& transport_controllers) {
149 auto transport_result1 = ortc_factory1_->CreateSrtpTransport( 149 auto transport_result1 = ortc_factory1_->CreateSrtpTransport(
150 rtcp_parameters, rtp_udp_transports.first.get(), 150 parameters, rtp_udp_transports.first.get(),
151 rtcp_udp_transports.first.get(), transport_controllers.first.get()); 151 rtcp_udp_transports.first.get(), transport_controllers.first.get());
152 auto transport_result2 = ortc_factory2_->CreateSrtpTransport( 152 auto transport_result2 = ortc_factory2_->CreateSrtpTransport(
153 rtcp_parameters, rtp_udp_transports.second.get(), 153 parameters, rtp_udp_transports.second.get(),
154 rtcp_udp_transports.second.get(), transport_controllers.second.get()); 154 rtcp_udp_transports.second.get(), transport_controllers.second.get());
155 return {transport_result1.MoveValue(), transport_result2.MoveValue()}; 155 return {transport_result1.MoveValue(), transport_result2.MoveValue()};
156 } 156 }
157 157
158 // For convenience when |rtcp_udp_transports| and |transport_controllers| 158 // For convenience when |rtcp_udp_transports| and |transport_controllers|
159 // aren't needed. 159 // aren't needed.
160 RtpTransportPair CreateRtpTransportPair( 160 RtpTransportPair CreateRtpTransportPair(
161 const RtcpParameters& rtcp_parameters, 161 const RtpTransportParameters& parameters,
162 const UdpTransportPair& rtp_udp_transports) { 162 const UdpTransportPair& rtp_udp_transports) {
163 return CreateRtpTransportPair(rtcp_parameters, rtp_udp_transports, 163 return CreateRtpTransportPair(parameters, rtp_udp_transports,
164 UdpTransportPair(), 164 UdpTransportPair(),
165 RtpTransportControllerPair()); 165 RtpTransportControllerPair());
166 } 166 }
167 167
168 SrtpTransportPair CreateSrtpTransportPairAndSetKeys( 168 SrtpTransportPair CreateSrtpTransportPairAndSetKeys(
169 const RtcpParameters& rtcp_parameters, 169 const RtpTransportParameters& parameters,
170 const UdpTransportPair& rtp_udp_transports) { 170 const UdpTransportPair& rtp_udp_transports) {
171 SrtpTransportPair srtp_transports = CreateSrtpTransportPair( 171 SrtpTransportPair srtp_transports = CreateSrtpTransportPair(
172 rtcp_parameters, rtp_udp_transports, UdpTransportPair(), 172 parameters, rtp_udp_transports, UdpTransportPair(),
173 RtpTransportControllerPair()); 173 RtpTransportControllerPair());
174 EXPECT_TRUE(srtp_transports.first->SetSrtpSendKey(kTestCryptoParams1).ok()); 174 EXPECT_TRUE(srtp_transports.first->SetSrtpSendKey(kTestCryptoParams1).ok());
175 EXPECT_TRUE( 175 EXPECT_TRUE(
176 srtp_transports.first->SetSrtpReceiveKey(kTestCryptoParams2).ok()); 176 srtp_transports.first->SetSrtpReceiveKey(kTestCryptoParams2).ok());
177 EXPECT_TRUE( 177 EXPECT_TRUE(
178 srtp_transports.second->SetSrtpSendKey(kTestCryptoParams2).ok()); 178 srtp_transports.second->SetSrtpSendKey(kTestCryptoParams2).ok());
179 EXPECT_TRUE( 179 EXPECT_TRUE(
180 srtp_transports.second->SetSrtpReceiveKey(kTestCryptoParams1).ok()); 180 srtp_transports.second->SetSrtpReceiveKey(kTestCryptoParams1).ok());
181 return srtp_transports; 181 return srtp_transports;
182 } 182 }
183 183
184 SrtpTransportPair CreateSrtpTransportPairAndSetMismatchingKeys( 184 SrtpTransportPair CreateSrtpTransportPairAndSetMismatchingKeys(
185 const RtcpParameters& rtcp_parameters, 185 const RtpTransportParameters& parameters,
186 const UdpTransportPair& rtp_udp_transports) { 186 const UdpTransportPair& rtp_udp_transports) {
187 SrtpTransportPair srtp_transports = CreateSrtpTransportPair( 187 SrtpTransportPair srtp_transports = CreateSrtpTransportPair(
188 rtcp_parameters, rtp_udp_transports, UdpTransportPair(), 188 parameters, rtp_udp_transports, UdpTransportPair(),
189 RtpTransportControllerPair()); 189 RtpTransportControllerPair());
190 EXPECT_TRUE(srtp_transports.first->SetSrtpSendKey(kTestCryptoParams1).ok()); 190 EXPECT_TRUE(srtp_transports.first->SetSrtpSendKey(kTestCryptoParams1).ok());
191 EXPECT_TRUE( 191 EXPECT_TRUE(
192 srtp_transports.first->SetSrtpReceiveKey(kTestCryptoParams2).ok()); 192 srtp_transports.first->SetSrtpReceiveKey(kTestCryptoParams2).ok());
193 EXPECT_TRUE( 193 EXPECT_TRUE(
194 srtp_transports.second->SetSrtpSendKey(kTestCryptoParams1).ok()); 194 srtp_transports.second->SetSrtpSendKey(kTestCryptoParams1).ok());
195 EXPECT_TRUE( 195 EXPECT_TRUE(
196 srtp_transports.second->SetSrtpReceiveKey(kTestCryptoParams2).ok()); 196 srtp_transports.second->SetSrtpReceiveKey(kTestCryptoParams2).ok());
197 return srtp_transports; 197 return srtp_transports;
198 } 198 }
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 // RTP/RTCP. 551 // RTP/RTCP.
552 auto audio_rtp_udp_transports = CreateAndConnectUdpTransportPair(); 552 auto audio_rtp_udp_transports = CreateAndConnectUdpTransportPair();
553 auto audio_rtcp_udp_transports = CreateAndConnectUdpTransportPair(); 553 auto audio_rtcp_udp_transports = CreateAndConnectUdpTransportPair();
554 auto video_rtp_udp_transports = CreateAndConnectUdpTransportPair(); 554 auto video_rtp_udp_transports = CreateAndConnectUdpTransportPair();
555 auto video_rtcp_udp_transports = CreateAndConnectUdpTransportPair(); 555 auto video_rtcp_udp_transports = CreateAndConnectUdpTransportPair();
556 556
557 // Since we have multiple RTP transports on each side, we need an RTP 557 // Since we have multiple RTP transports on each side, we need an RTP
558 // transport controller. 558 // transport controller.
559 auto transport_controllers = CreateRtpTransportControllerPair(); 559 auto transport_controllers = CreateRtpTransportControllerPair();
560 560
561 RtcpParameters audio_rtcp_parameters; 561 RtpTransportParameters audio_rtp_transport_parameters;
562 audio_rtcp_parameters.mux = false; 562 audio_rtp_transport_parameters.rtcp.mux = false;
563 auto audio_srtp_transports = 563 auto audio_srtp_transports = CreateSrtpTransportPair(
564 CreateSrtpTransportPair(audio_rtcp_parameters, audio_rtp_udp_transports, 564 audio_rtp_transport_parameters, audio_rtp_udp_transports,
565 audio_rtcp_udp_transports, transport_controllers); 565 audio_rtcp_udp_transports, transport_controllers);
566 566
567 RtcpParameters video_rtcp_parameters; 567 RtpTransportParameters video_rtp_transport_parameters;
568 video_rtcp_parameters.mux = false; 568 video_rtp_transport_parameters.rtcp.mux = false;
569 video_rtcp_parameters.reduced_size = true; 569 video_rtp_transport_parameters.rtcp.reduced_size = true;
570 auto video_srtp_transports = 570 auto video_srtp_transports = CreateSrtpTransportPair(
571 CreateSrtpTransportPair(video_rtcp_parameters, video_rtp_udp_transports, 571 video_rtp_transport_parameters, video_rtp_udp_transports,
572 video_rtcp_udp_transports, transport_controllers); 572 video_rtcp_udp_transports, transport_controllers);
573 573
574 // Set keys for SRTP transports. 574 // Set keys for SRTP transports.
575 audio_srtp_transports.first->SetSrtpSendKey(kTestCryptoParams1); 575 audio_srtp_transports.first->SetSrtpSendKey(kTestCryptoParams1);
576 audio_srtp_transports.first->SetSrtpReceiveKey(kTestCryptoParams2); 576 audio_srtp_transports.first->SetSrtpReceiveKey(kTestCryptoParams2);
577 video_srtp_transports.first->SetSrtpSendKey(kTestCryptoParams3); 577 video_srtp_transports.first->SetSrtpSendKey(kTestCryptoParams3);
578 video_srtp_transports.first->SetSrtpReceiveKey(kTestCryptoParams4); 578 video_srtp_transports.first->SetSrtpReceiveKey(kTestCryptoParams4);
579 579
580 audio_srtp_transports.second->SetSrtpSendKey(kTestCryptoParams2); 580 audio_srtp_transports.second->SetSrtpSendKey(kTestCryptoParams2);
581 audio_srtp_transports.second->SetSrtpReceiveKey(kTestCryptoParams1); 581 audio_srtp_transports.second->SetSrtpReceiveKey(kTestCryptoParams1);
582 video_srtp_transports.second->SetSrtpSendKey(kTestCryptoParams4); 582 video_srtp_transports.second->SetSrtpSendKey(kTestCryptoParams4);
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
682 // BaseChannel model relies on there being a single VoiceChannel and 682 // BaseChannel model relies on there being a single VoiceChannel and
683 // VideoChannel, and these only support a single set of codecs/etc. per 683 // VideoChannel, and these only support a single set of codecs/etc. per
684 // send/receive direction. 684 // send/receive direction.
685 685
686 // TODO(deadbeef): End-to-end test for simulcast, once that's supported by this 686 // TODO(deadbeef): End-to-end test for simulcast, once that's supported by this
687 // API. 687 // API.
688 688
689 #endif // if !defined(THREAD_SANITIZER) 689 #endif // if !defined(THREAD_SANITIZER)
690 690
691 } // namespace webrtc 691 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/ortc/ortcfactory.cc ('k') | webrtc/ortc/ortcfactory_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698