OLD | NEW |
---|---|
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 |
11 #include <memory> | 11 #include <memory> |
12 | 12 |
13 #include "webrtc/api/test/fakeconstraints.h" | |
13 #include "webrtc/media/base/fakemediaengine.h" | 14 #include "webrtc/media/base/fakemediaengine.h" |
15 #include "webrtc/media/base/fakevideocapturer.h" | |
14 #include "webrtc/ortc/ortcfactory.h" | 16 #include "webrtc/ortc/ortcfactory.h" |
15 #include "webrtc/ortc/testrtpparameters.h" | 17 #include "webrtc/ortc/testrtpparameters.h" |
16 #include "webrtc/p2p/base/fakepackettransport.h" | 18 #include "webrtc/p2p/base/fakepackettransport.h" |
17 #include "webrtc/rtc_base/gunit.h" | 19 #include "webrtc/rtc_base/gunit.h" |
18 | 20 |
19 namespace webrtc { | 21 namespace webrtc { |
20 | 22 |
21 // This test uses fake packet transports and a fake media engine, in order to | 23 // This test uses fake packet transports and a fake media engine, in order to |
22 // test the RtpTransport at only an API level. Any end-to-end test should go in | 24 // test the RtpTransport at only an API level. Any end-to-end test should go in |
23 // ortcfactory_integrationtest.cc instead. | 25 // ortcfactory_integrationtest.cc instead. |
(...skipping 14 matching lines...) Expand all Loading... | |
38 cricket::FakeMediaEngine* fake_media_engine_; | 40 cricket::FakeMediaEngine* fake_media_engine_; |
39 std::unique_ptr<OrtcFactoryInterface> ortc_factory_; | 41 std::unique_ptr<OrtcFactoryInterface> ortc_factory_; |
40 }; | 42 }; |
41 | 43 |
42 // Test GetRtpPacketTransport and GetRtcpPacketTransport, with and without RTCP | 44 // Test GetRtpPacketTransport and GetRtcpPacketTransport, with and without RTCP |
43 // muxing. | 45 // muxing. |
44 TEST_F(RtpTransportTest, GetPacketTransports) { | 46 TEST_F(RtpTransportTest, GetPacketTransports) { |
45 rtc::FakePacketTransport rtp("rtp"); | 47 rtc::FakePacketTransport rtp("rtp"); |
46 rtc::FakePacketTransport rtcp("rtcp"); | 48 rtc::FakePacketTransport rtcp("rtcp"); |
47 // With muxed RTCP. | 49 // With muxed RTCP. |
48 RtcpParameters rtcp_parameters; | 50 RtpTransportParameters parameters; |
49 rtcp_parameters.mux = true; | 51 parameters.rtcp.mux = true; |
50 auto result = ortc_factory_->CreateRtpTransport(rtcp_parameters, &rtp, | 52 auto result = |
51 nullptr, nullptr); | 53 ortc_factory_->CreateRtpTransport(parameters, &rtp, nullptr, nullptr); |
52 ASSERT_TRUE(result.ok()); | 54 ASSERT_TRUE(result.ok()); |
53 EXPECT_EQ(&rtp, result.value()->GetRtpPacketTransport()); | 55 EXPECT_EQ(&rtp, result.value()->GetRtpPacketTransport()); |
54 EXPECT_EQ(nullptr, result.value()->GetRtcpPacketTransport()); | 56 EXPECT_EQ(nullptr, result.value()->GetRtcpPacketTransport()); |
55 result.MoveValue().reset(); | 57 result.MoveValue().reset(); |
56 // With non-muxed RTCP. | 58 // With non-muxed RTCP. |
57 rtcp_parameters.mux = false; | 59 parameters.rtcp.mux = false; |
58 result = | 60 result = ortc_factory_->CreateRtpTransport(parameters, &rtp, &rtcp, nullptr); |
59 ortc_factory_->CreateRtpTransport(rtcp_parameters, &rtp, &rtcp, nullptr); | |
60 ASSERT_TRUE(result.ok()); | 61 ASSERT_TRUE(result.ok()); |
61 EXPECT_EQ(&rtp, result.value()->GetRtpPacketTransport()); | 62 EXPECT_EQ(&rtp, result.value()->GetRtpPacketTransport()); |
62 EXPECT_EQ(&rtcp, result.value()->GetRtcpPacketTransport()); | 63 EXPECT_EQ(&rtcp, result.value()->GetRtcpPacketTransport()); |
63 } | 64 } |
64 | 65 |
65 // If an RtpTransport starts out un-muxed and then starts muxing, the RTCP | 66 // If an RtpTransport starts out un-muxed and then starts muxing, the RTCP |
66 // packet transport should be forgotten and GetRtcpPacketTransport should | 67 // packet transport should be forgotten and GetRtcpPacketTransport should |
67 // return null. | 68 // return null. |
68 TEST_F(RtpTransportTest, EnablingRtcpMuxingUnsetsRtcpTransport) { | 69 TEST_F(RtpTransportTest, EnablingRtcpMuxingUnsetsRtcpTransport) { |
69 rtc::FakePacketTransport rtp("rtp"); | 70 rtc::FakePacketTransport rtp("rtp"); |
70 rtc::FakePacketTransport rtcp("rtcp"); | 71 rtc::FakePacketTransport rtcp("rtcp"); |
71 | 72 |
72 // Create non-muxed. | 73 // Create non-muxed. |
73 RtcpParameters rtcp_parameters; | 74 RtpTransportParameters parameters; |
74 rtcp_parameters.mux = false; | 75 parameters.rtcp.mux = false; |
75 auto result = | 76 auto result = |
76 ortc_factory_->CreateRtpTransport(rtcp_parameters, &rtp, &rtcp, nullptr); | 77 ortc_factory_->CreateRtpTransport(parameters, &rtp, &rtcp, nullptr); |
77 ASSERT_TRUE(result.ok()); | 78 ASSERT_TRUE(result.ok()); |
78 auto rtp_transport = result.MoveValue(); | 79 auto rtp_transport = result.MoveValue(); |
79 | 80 |
80 // Enable muxing. | 81 // Enable muxing. |
81 rtcp_parameters.mux = true; | 82 parameters.rtcp.mux = true; |
82 EXPECT_TRUE(rtp_transport->SetRtcpParameters(rtcp_parameters).ok()); | 83 EXPECT_TRUE(rtp_transport->SetParameters(parameters).ok()); |
83 EXPECT_EQ(nullptr, rtp_transport->GetRtcpPacketTransport()); | 84 EXPECT_EQ(nullptr, rtp_transport->GetRtcpPacketTransport()); |
84 } | 85 } |
85 | 86 |
86 TEST_F(RtpTransportTest, GetAndSetRtcpParameters) { | 87 TEST_F(RtpTransportTest, GetAndSetRtcpParameters) { |
87 rtc::FakePacketTransport rtp("rtp"); | 88 rtc::FakePacketTransport rtp("rtp"); |
88 rtc::FakePacketTransport rtcp("rtcp"); | 89 rtc::FakePacketTransport rtcp("rtcp"); |
89 // Start with non-muxed RTCP. | 90 // Start with non-muxed RTCP. |
90 RtcpParameters rtcp_parameters; | 91 RtpTransportParameters parameters; |
91 rtcp_parameters.mux = false; | 92 parameters.rtcp.mux = false; |
92 rtcp_parameters.cname = "teST"; | 93 parameters.rtcp.cname = "teST"; |
93 rtcp_parameters.reduced_size = false; | 94 parameters.rtcp.reduced_size = false; |
94 auto result = | 95 auto result = |
95 ortc_factory_->CreateRtpTransport(rtcp_parameters, &rtp, &rtcp, nullptr); | 96 ortc_factory_->CreateRtpTransport(parameters, &rtp, &rtcp, nullptr); |
96 ASSERT_TRUE(result.ok()); | 97 ASSERT_TRUE(result.ok()); |
97 auto transport = result.MoveValue(); | 98 auto transport = result.MoveValue(); |
98 EXPECT_EQ(rtcp_parameters, transport->GetRtcpParameters()); | 99 EXPECT_EQ(parameters, transport->GetParameters()); |
99 | 100 |
100 // Changing the CNAME is currently unsupported. | 101 // Changing the CNAME is currently unsupported. |
101 rtcp_parameters.cname = "different"; | 102 parameters.rtcp.cname = "different"; |
102 EXPECT_EQ(RTCErrorType::UNSUPPORTED_OPERATION, | 103 EXPECT_EQ(RTCErrorType::UNSUPPORTED_OPERATION, |
103 transport->SetRtcpParameters(rtcp_parameters).type()); | 104 transport->SetParameters(parameters).type()); |
104 rtcp_parameters.cname = "teST"; | 105 parameters.rtcp.cname = "teST"; |
105 | 106 |
106 // Enable RTCP muxing and reduced-size RTCP. | 107 // Enable RTCP muxing and reduced-size RTCP. |
107 rtcp_parameters.mux = true; | 108 parameters.rtcp.mux = true; |
108 rtcp_parameters.reduced_size = true; | 109 parameters.rtcp.reduced_size = true; |
109 EXPECT_TRUE(transport->SetRtcpParameters(rtcp_parameters).ok()); | 110 EXPECT_TRUE(transport->SetParameters(parameters).ok()); |
110 EXPECT_EQ(rtcp_parameters, transport->GetRtcpParameters()); | 111 EXPECT_EQ(parameters, transport->GetParameters()); |
111 | 112 |
112 // Empty CNAME should result in the existing CNAME being used. | 113 // Empty CNAME should result in the existing CNAME being used. |
113 rtcp_parameters.cname.clear(); | 114 parameters.rtcp.cname.clear(); |
114 EXPECT_TRUE(transport->SetRtcpParameters(rtcp_parameters).ok()); | 115 EXPECT_TRUE(transport->SetParameters(parameters).ok()); |
115 EXPECT_EQ("teST", transport->GetRtcpParameters().cname); | 116 EXPECT_EQ("teST", transport->GetParameters().rtcp.cname); |
116 | 117 |
117 // Disabling RTCP muxing after enabling shouldn't be allowed, since enabling | 118 // Disabling RTCP muxing after enabling shouldn't be allowed, since enabling |
118 // muxing should have made the RTP transport forget about the RTCP packet | 119 // muxing should have made the RTP transport forget about the RTCP packet |
119 // transport initially passed into it. | 120 // transport initially passed into it. |
120 rtcp_parameters.mux = false; | 121 parameters.rtcp.mux = false; |
121 EXPECT_EQ(RTCErrorType::INVALID_STATE, | 122 EXPECT_EQ(RTCErrorType::INVALID_STATE, |
122 transport->SetRtcpParameters(rtcp_parameters).type()); | 123 transport->SetParameters(parameters).type()); |
123 } | 124 } |
124 | 125 |
125 // When Send or Receive is called on a sender or receiver, the RTCP parameters | 126 // When Send or Receive is called on a sender or receiver, the RTCP parameters |
126 // from the RtpTransport underneath the sender should be applied to the created | 127 // from the RtpTransport underneath the sender should be applied to the created |
127 // media stream. The only relevant parameters (currently) are |cname| and | 128 // media stream. The only relevant parameters (currently) are |cname| and |
128 // |reduced_size|. | 129 // |reduced_size|. |
129 TEST_F(RtpTransportTest, SendAndReceiveApplyRtcpParametersToMediaEngine) { | 130 TEST_F(RtpTransportTest, SendAndReceiveApplyRtcpParametersToMediaEngine) { |
130 // First, create video transport with reduced-size RTCP. | 131 // First, create video transport with reduced-size RTCP. |
131 rtc::FakePacketTransport fake_packet_transport1("1"); | 132 rtc::FakePacketTransport fake_packet_transport1("1"); |
132 RtcpParameters rtcp_parameters; | 133 RtpTransportParameters parameters; |
133 rtcp_parameters.mux = true; | 134 parameters.rtcp.mux = true; |
134 rtcp_parameters.reduced_size = true; | 135 parameters.rtcp.reduced_size = true; |
135 rtcp_parameters.cname = "foo"; | 136 parameters.rtcp.cname = "foo"; |
136 auto rtp_transport_result = ortc_factory_->CreateRtpTransport( | 137 auto rtp_transport_result = ortc_factory_->CreateRtpTransport( |
137 rtcp_parameters, &fake_packet_transport1, nullptr, nullptr); | 138 parameters, &fake_packet_transport1, nullptr, nullptr); |
138 auto video_transport = rtp_transport_result.MoveValue(); | 139 auto video_transport = rtp_transport_result.MoveValue(); |
139 | 140 |
140 // Create video sender and call Send, expecting parameters to be applied. | 141 // Create video sender and call Send, expecting parameters to be applied. |
141 auto sender_result = ortc_factory_->CreateRtpSender(cricket::MEDIA_TYPE_VIDEO, | 142 auto sender_result = ortc_factory_->CreateRtpSender(cricket::MEDIA_TYPE_VIDEO, |
142 video_transport.get()); | 143 video_transport.get()); |
143 auto video_sender = sender_result.MoveValue(); | 144 auto video_sender = sender_result.MoveValue(); |
144 EXPECT_TRUE(video_sender->Send(MakeMinimalVp8Parameters()).ok()); | 145 EXPECT_TRUE(video_sender->Send(MakeMinimalVp8Parameters()).ok()); |
145 cricket::FakeVideoMediaChannel* fake_video_channel = | 146 cricket::FakeVideoMediaChannel* fake_video_channel = |
146 fake_media_engine_->GetVideoChannel(0); | 147 fake_media_engine_->GetVideoChannel(0); |
147 ASSERT_NE(nullptr, fake_video_channel); | 148 ASSERT_NE(nullptr, fake_video_channel); |
148 EXPECT_TRUE(fake_video_channel->send_rtcp_parameters().reduced_size); | 149 EXPECT_TRUE(fake_video_channel->send_rtcp_parameters().reduced_size); |
149 ASSERT_EQ(1u, fake_video_channel->send_streams().size()); | 150 ASSERT_EQ(1u, fake_video_channel->send_streams().size()); |
150 const cricket::StreamParams& video_send_stream = | 151 const cricket::StreamParams& video_send_stream = |
151 fake_video_channel->send_streams()[0]; | 152 fake_video_channel->send_streams()[0]; |
152 EXPECT_EQ("foo", video_send_stream.cname); | 153 EXPECT_EQ("foo", video_send_stream.cname); |
153 | 154 |
154 // Create video receiver and call Receive, expecting parameters to be applied | 155 // Create video receiver and call Receive, expecting parameters to be applied |
155 // (minus |cname|, since that's the sent cname, not received). | 156 // (minus |cname|, since that's the sent cname, not received). |
156 auto receiver_result = ortc_factory_->CreateRtpReceiver( | 157 auto receiver_result = ortc_factory_->CreateRtpReceiver( |
157 cricket::MEDIA_TYPE_VIDEO, video_transport.get()); | 158 cricket::MEDIA_TYPE_VIDEO, video_transport.get()); |
158 auto video_receiver = receiver_result.MoveValue(); | 159 auto video_receiver = receiver_result.MoveValue(); |
159 EXPECT_TRUE( | 160 EXPECT_TRUE( |
160 video_receiver->Receive(MakeMinimalVp8ParametersWithSsrc(0xdeadbeef)) | 161 video_receiver->Receive(MakeMinimalVp8ParametersWithSsrc(0xdeadbeef)) |
161 .ok()); | 162 .ok()); |
162 EXPECT_TRUE(fake_video_channel->recv_rtcp_parameters().reduced_size); | 163 EXPECT_TRUE(fake_video_channel->recv_rtcp_parameters().reduced_size); |
163 | 164 |
164 // Create audio transport with non-reduced size RTCP. | 165 // Create audio transport with non-reduced size RTCP. |
165 rtc::FakePacketTransport fake_packet_transport2("2"); | 166 rtc::FakePacketTransport fake_packet_transport2("2"); |
166 rtcp_parameters.reduced_size = false; | 167 parameters.rtcp.reduced_size = false; |
167 rtcp_parameters.cname = "bar"; | 168 parameters.rtcp.cname = "bar"; |
168 rtp_transport_result = ortc_factory_->CreateRtpTransport( | 169 rtp_transport_result = ortc_factory_->CreateRtpTransport( |
169 rtcp_parameters, &fake_packet_transport2, nullptr, nullptr); | 170 parameters, &fake_packet_transport2, nullptr, nullptr); |
170 auto audio_transport = rtp_transport_result.MoveValue(); | 171 auto audio_transport = rtp_transport_result.MoveValue(); |
171 | 172 |
172 // Create audio sender and call Send, expecting parameters to be applied. | 173 // Create audio sender and call Send, expecting parameters to be applied. |
173 sender_result = ortc_factory_->CreateRtpSender(cricket::MEDIA_TYPE_AUDIO, | 174 sender_result = ortc_factory_->CreateRtpSender(cricket::MEDIA_TYPE_AUDIO, |
174 audio_transport.get()); | 175 audio_transport.get()); |
175 auto audio_sender = sender_result.MoveValue(); | 176 auto audio_sender = sender_result.MoveValue(); |
176 EXPECT_TRUE(audio_sender->Send(MakeMinimalIsacParameters()).ok()); | 177 EXPECT_TRUE(audio_sender->Send(MakeMinimalIsacParameters()).ok()); |
177 | 178 |
178 cricket::FakeVoiceMediaChannel* fake_voice_channel = | 179 cricket::FakeVoiceMediaChannel* fake_voice_channel = |
179 fake_media_engine_->GetVoiceChannel(0); | 180 fake_media_engine_->GetVoiceChannel(0); |
180 ASSERT_NE(nullptr, fake_voice_channel); | 181 ASSERT_NE(nullptr, fake_voice_channel); |
181 EXPECT_FALSE(fake_voice_channel->send_rtcp_parameters().reduced_size); | 182 EXPECT_FALSE(fake_voice_channel->send_rtcp_parameters().reduced_size); |
182 ASSERT_EQ(1u, fake_voice_channel->send_streams().size()); | 183 ASSERT_EQ(1u, fake_voice_channel->send_streams().size()); |
183 const cricket::StreamParams& audio_send_stream = | 184 const cricket::StreamParams& audio_send_stream = |
184 fake_voice_channel->send_streams()[0]; | 185 fake_voice_channel->send_streams()[0]; |
185 EXPECT_EQ("bar", audio_send_stream.cname); | 186 EXPECT_EQ("bar", audio_send_stream.cname); |
186 | 187 |
187 // Create audio receiver and call Receive, expecting parameters to be applied | 188 // Create audio receiver and call Receive, expecting parameters to be applied |
188 // (minus |cname|, since that's the sent cname, not received). | 189 // (minus |cname|, since that's the sent cname, not received). |
189 receiver_result = ortc_factory_->CreateRtpReceiver(cricket::MEDIA_TYPE_AUDIO, | 190 receiver_result = ortc_factory_->CreateRtpReceiver(cricket::MEDIA_TYPE_AUDIO, |
190 audio_transport.get()); | 191 audio_transport.get()); |
191 auto audio_receiver = receiver_result.MoveValue(); | 192 auto audio_receiver = receiver_result.MoveValue(); |
192 EXPECT_TRUE( | 193 EXPECT_TRUE( |
193 audio_receiver->Receive(MakeMinimalOpusParametersWithSsrc(0xbaadf00d)) | 194 audio_receiver->Receive(MakeMinimalOpusParametersWithSsrc(0xbaadf00d)) |
194 .ok()); | 195 .ok()); |
195 EXPECT_FALSE(fake_voice_channel->recv_rtcp_parameters().reduced_size); | 196 EXPECT_FALSE(fake_voice_channel->recv_rtcp_parameters().reduced_size); |
196 } | 197 } |
197 | 198 |
198 // When SetRtcpParameters is called, the modified parameters should be applied | 199 // When SetParameters is called, the modified parameters should be applied |
199 // to the media engine. | 200 // to the media engine. |
200 // TODO(deadbeef): Once the implementation supports changing the CNAME, | 201 // TODO(deadbeef): Once the implementation supports changing the CNAME, |
201 // test that here. | 202 // test that here. |
202 TEST_F(RtpTransportTest, SetRtcpParametersAppliesParametersToMediaEngine) { | 203 TEST_F(RtpTransportTest, SetRtcpParametersAppliesParametersToMediaEngine) { |
203 rtc::FakePacketTransport fake_packet_transport("fake"); | 204 rtc::FakePacketTransport fake_packet_transport("fake"); |
204 RtcpParameters rtcp_parameters; | 205 RtpTransportParameters parameters; |
205 rtcp_parameters.mux = true; | 206 parameters.rtcp.mux = true; |
206 rtcp_parameters.reduced_size = false; | 207 parameters.rtcp.reduced_size = false; |
207 auto rtp_transport_result = ortc_factory_->CreateRtpTransport( | 208 auto rtp_transport_result = ortc_factory_->CreateRtpTransport( |
208 rtcp_parameters, &fake_packet_transport, nullptr, nullptr); | 209 parameters, &fake_packet_transport, nullptr, nullptr); |
209 auto rtp_transport = rtp_transport_result.MoveValue(); | 210 auto rtp_transport = rtp_transport_result.MoveValue(); |
210 | 211 |
211 // Create video sender and call Send, applying an initial set of parameters. | 212 // Create video sender and call Send, applying an initial set of parameters. |
212 auto sender_result = ortc_factory_->CreateRtpSender(cricket::MEDIA_TYPE_VIDEO, | 213 auto sender_result = ortc_factory_->CreateRtpSender(cricket::MEDIA_TYPE_VIDEO, |
213 rtp_transport.get()); | 214 rtp_transport.get()); |
214 auto sender = sender_result.MoveValue(); | 215 auto sender = sender_result.MoveValue(); |
215 EXPECT_TRUE(sender->Send(MakeMinimalVp8Parameters()).ok()); | 216 EXPECT_TRUE(sender->Send(MakeMinimalVp8Parameters()).ok()); |
216 | 217 |
217 // Modify parameters and expect them to be changed at the media engine level. | 218 // Modify parameters and expect them to be changed at the media engine level. |
218 rtcp_parameters.reduced_size = true; | 219 parameters.rtcp.reduced_size = true; |
219 EXPECT_TRUE(rtp_transport->SetRtcpParameters(rtcp_parameters).ok()); | 220 EXPECT_TRUE(rtp_transport->SetParameters(parameters).ok()); |
220 | 221 |
221 cricket::FakeVideoMediaChannel* fake_video_channel = | 222 cricket::FakeVideoMediaChannel* fake_video_channel = |
222 fake_media_engine_->GetVideoChannel(0); | 223 fake_media_engine_->GetVideoChannel(0); |
223 ASSERT_NE(nullptr, fake_video_channel); | 224 ASSERT_NE(nullptr, fake_video_channel); |
224 EXPECT_TRUE(fake_video_channel->send_rtcp_parameters().reduced_size); | 225 EXPECT_TRUE(fake_video_channel->send_rtcp_parameters().reduced_size); |
225 } | 226 } |
226 | 227 |
228 // SetParameters should set keepalive for all rtp transports. | |
Taylor Brandstetter
2017/08/02 00:12:56
nit: Capitalize "RTP"
sprang_webrtc
2017/08/02 16:45:08
Done.
| |
229 // It is impossible to modify keepalive parameters if any streams are created. | |
230 TEST_F(RtpTransportTest, CantChangeKeepAliveAfterCreatedSendStreams) { | |
Taylor Brandstetter
2017/08/02 00:12:56
From a "unit test" perspective, I'd think of this
sprang_webrtc
2017/08/02 16:45:08
I've removed the "real" parts and added validation
| |
231 rtc::FakePacketTransport fake_packet_transport("fake"); | |
232 RtpTransportParameters parameters; | |
233 parameters.keepalive.timeout_interval_ms = 100; | |
234 auto rtp_transport_result = ortc_factory_->CreateRtpTransport( | |
235 parameters, &fake_packet_transport, nullptr, nullptr); | |
236 ASSERT_TRUE(rtp_transport_result.ok()); | |
237 std::unique_ptr<RtpTransportInterface> rtp_transport = | |
238 rtp_transport_result.MoveValue(); | |
239 | |
240 // Make sure real video channels are create, so that webrtc::Call code is | |
Taylor Brandstetter
2017/08/02 00:12:56
nit: "are created"
sprang_webrtc
2017/08/02 16:45:08
removed
| |
241 // properly excercised. | |
242 fake_media_engine_->GetVideoEngine()->SetCreateRealChannel(true); | |
243 | |
244 // Create video sender and call Send, applying an initial set of parameters. | |
245 auto sender_result = ortc_factory_->CreateRtpSender(cricket::MEDIA_TYPE_VIDEO, | |
246 rtp_transport.get()); | |
247 ASSERT_TRUE(sender_result.ok()); | |
248 std::unique_ptr<OrtcRtpSenderInterface> sender = sender_result.MoveValue(); | |
249 | |
250 // Need to explicitly call SetParameters() to actually set keepalive. | |
Taylor Brandstetter
2017/08/02 00:12:56
Even though the keepalive parameters were passed i
sprang_webrtc
2017/08/02 16:45:08
Yes, wired that up now.
Taylor Brandstetter
2017/08/03 01:18:03
Where is that wired up? I don't see it.
I was thi
| |
251 EXPECT_TRUE(rtp_transport->SetParameters(parameters).ok()); | |
252 EXPECT_TRUE(sender->Send(MakeMinimalVp8Parameters()).ok()); | |
253 | |
254 std::unique_ptr<cricket::VideoCapturer> capturer( | |
255 new cricket::FakeVideoCapturer(false)); | |
256 FakeConstraints constraints; | |
257 rtc::scoped_refptr<VideoTrackSourceInterface> source = | |
258 ortc_factory_->CreateVideoSource(std::move(capturer), &constraints); | |
259 rtc::scoped_refptr<VideoTrackInterface> video = | |
260 ortc_factory_->CreateVideoTrack("TestVideo", source); | |
261 sender->SetTrack(video); | |
262 | |
263 // Modify parameters second time after video send stream created. | |
264 parameters.keepalive.timeout_interval_ms = 10; | |
265 EXPECT_EQ(RTCErrorType::INTERNAL_ERROR, | |
266 rtp_transport->SetParameters(parameters).type()); | |
267 } | |
268 | |
Taylor Brandstetter
2017/08/02 00:12:56
Is there way to have another test that verifies th
sprang_webrtc
2017/08/02 16:45:08
The previous test with the real stream did (since
Taylor Brandstetter
2017/08/03 01:18:03
The previous test verifies that the setting can't
| |
227 } // namespace webrtc | 269 } // namespace webrtc |
OLD | NEW |