OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 #include <algorithm> | 10 #include <algorithm> |
11 #include <list> | 11 #include <list> |
12 #include <map> | 12 #include <map> |
13 #include <memory> | 13 #include <memory> |
14 #include <sstream> | 14 #include <sstream> |
15 #include <string> | 15 #include <string> |
16 #include <vector> | 16 #include <vector> |
17 | 17 |
18 #include "webrtc/base/checks.h" | 18 #include "webrtc/base/checks.h" |
19 #include "webrtc/base/event.h" | 19 #include "webrtc/base/event.h" |
20 #include "webrtc/base/file.h" | 20 #include "webrtc/base/file.h" |
21 #include "webrtc/base/optional.h" | 21 #include "webrtc/base/optional.h" |
22 #include "webrtc/base/rate_limiter.h" | 22 #include "webrtc/base/rate_limiter.h" |
23 #include "webrtc/call.h" | 23 #include "webrtc/call.h" |
24 #include "webrtc/call/transport_adapter.h" | 24 #include "webrtc/call/transport_adapter.h" |
25 #include "webrtc/common_video/include/frame_callback.h" | 25 #include "webrtc/common_video/include/frame_callback.h" |
| 26 #include "webrtc/logging/rtc_event_log/rtc_event_log.h" |
26 #include "webrtc/media/base/fakevideorenderer.h" | 27 #include "webrtc/media/base/fakevideorenderer.h" |
27 #include "webrtc/modules/include/module_common_types.h" | 28 #include "webrtc/modules/include/module_common_types.h" |
28 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h" | 29 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h" |
29 #include "webrtc/modules/rtp_rtcp/source/byte_io.h" | 30 #include "webrtc/modules/rtp_rtcp/source/byte_io.h" |
30 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/nack.h" | 31 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/nack.h" |
31 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request.h" | 32 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request.h" |
32 #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h" | 33 #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h" |
33 #include "webrtc/modules/rtp_rtcp/source/rtp_utility.h" | 34 #include "webrtc/modules/rtp_rtcp/source/rtp_utility.h" |
34 #include "webrtc/modules/video_coding/codecs/h264/include/h264.h" | 35 #include "webrtc/modules/video_coding/codecs/h264/include/h264.h" |
35 #include "webrtc/modules/video_coding/codecs/vp8/include/vp8.h" | 36 #include "webrtc/modules/video_coding/codecs/vp8/include/vp8.h" |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 void VerifyNewVideoSendStreamsRespectNetworkState( | 125 void VerifyNewVideoSendStreamsRespectNetworkState( |
125 MediaType network_to_bring_down, | 126 MediaType network_to_bring_down, |
126 VideoEncoder* encoder, | 127 VideoEncoder* encoder, |
127 Transport* transport); | 128 Transport* transport); |
128 void VerifyNewVideoReceiveStreamsRespectNetworkState( | 129 void VerifyNewVideoReceiveStreamsRespectNetworkState( |
129 MediaType network_to_bring_down, | 130 MediaType network_to_bring_down, |
130 Transport* transport); | 131 Transport* transport); |
131 }; | 132 }; |
132 | 133 |
133 TEST_F(EndToEndTest, ReceiverCanBeStartedTwice) { | 134 TEST_F(EndToEndTest, ReceiverCanBeStartedTwice) { |
134 CreateCalls(Call::Config(), Call::Config()); | 135 CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_)); |
135 | 136 |
136 test::NullTransport transport; | 137 test::NullTransport transport; |
137 CreateSendConfig(1, 0, &transport); | 138 CreateSendConfig(1, 0, &transport); |
138 CreateMatchingReceiveConfigs(&transport); | 139 CreateMatchingReceiveConfigs(&transport); |
139 | 140 |
140 CreateVideoStreams(); | 141 CreateVideoStreams(); |
141 | 142 |
142 video_receive_streams_[0]->Start(); | 143 video_receive_streams_[0]->Start(); |
143 video_receive_streams_[0]->Start(); | 144 video_receive_streams_[0]->Start(); |
144 | 145 |
145 DestroyStreams(); | 146 DestroyStreams(); |
146 } | 147 } |
147 | 148 |
148 TEST_F(EndToEndTest, ReceiverCanBeStoppedTwice) { | 149 TEST_F(EndToEndTest, ReceiverCanBeStoppedTwice) { |
149 CreateCalls(Call::Config(), Call::Config()); | 150 CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_)); |
150 | 151 |
151 test::NullTransport transport; | 152 test::NullTransport transport; |
152 CreateSendConfig(1, 0, &transport); | 153 CreateSendConfig(1, 0, &transport); |
153 CreateMatchingReceiveConfigs(&transport); | 154 CreateMatchingReceiveConfigs(&transport); |
154 | 155 |
155 CreateVideoStreams(); | 156 CreateVideoStreams(); |
156 | 157 |
157 video_receive_streams_[0]->Stop(); | 158 video_receive_streams_[0]->Stop(); |
158 video_receive_streams_[0]->Stop(); | 159 video_receive_streams_[0]->Stop(); |
159 | 160 |
(...skipping 27 matching lines...) Expand all Loading... |
187 | 188 |
188 private: | 189 private: |
189 void FrameCallback(VideoFrame* frame) override { | 190 void FrameCallback(VideoFrame* frame) override { |
190 SleepMs(kDelayRenderCallbackMs); | 191 SleepMs(kDelayRenderCallbackMs); |
191 event_.Set(); | 192 event_.Set(); |
192 } | 193 } |
193 | 194 |
194 rtc::Event event_; | 195 rtc::Event event_; |
195 }; | 196 }; |
196 | 197 |
197 CreateCalls(Call::Config(), Call::Config()); | 198 CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_)); |
198 | 199 |
199 test::DirectTransport sender_transport(sender_call_.get()); | 200 test::DirectTransport sender_transport(sender_call_.get()); |
200 test::DirectTransport receiver_transport(receiver_call_.get()); | 201 test::DirectTransport receiver_transport(receiver_call_.get()); |
201 sender_transport.SetReceiver(receiver_call_->Receiver()); | 202 sender_transport.SetReceiver(receiver_call_->Receiver()); |
202 receiver_transport.SetReceiver(sender_call_->Receiver()); | 203 receiver_transport.SetReceiver(sender_call_->Receiver()); |
203 | 204 |
204 CreateSendConfig(1, 0, &sender_transport); | 205 CreateSendConfig(1, 0, &sender_transport); |
205 CreateMatchingReceiveConfigs(&receiver_transport); | 206 CreateMatchingReceiveConfigs(&receiver_transport); |
206 | 207 |
207 TestFrameCallback pre_render_callback; | 208 TestFrameCallback pre_render_callback; |
(...skipping 29 matching lines...) Expand all Loading... |
237 public: | 238 public: |
238 Renderer() : event_(false, false) {} | 239 Renderer() : event_(false, false) {} |
239 | 240 |
240 void OnFrame(const VideoFrame& video_frame) override { event_.Set(); } | 241 void OnFrame(const VideoFrame& video_frame) override { event_.Set(); } |
241 | 242 |
242 bool Wait() { return event_.Wait(kDefaultTimeoutMs); } | 243 bool Wait() { return event_.Wait(kDefaultTimeoutMs); } |
243 | 244 |
244 rtc::Event event_; | 245 rtc::Event event_; |
245 } renderer; | 246 } renderer; |
246 | 247 |
247 CreateCalls(Call::Config(), Call::Config()); | 248 CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_)); |
248 | 249 |
249 test::DirectTransport sender_transport(sender_call_.get()); | 250 test::DirectTransport sender_transport(sender_call_.get()); |
250 test::DirectTransport receiver_transport(receiver_call_.get()); | 251 test::DirectTransport receiver_transport(receiver_call_.get()); |
251 sender_transport.SetReceiver(receiver_call_->Receiver()); | 252 sender_transport.SetReceiver(receiver_call_->Receiver()); |
252 receiver_transport.SetReceiver(sender_call_->Receiver()); | 253 receiver_transport.SetReceiver(sender_call_->Receiver()); |
253 | 254 |
254 CreateSendConfig(1, 0, &sender_transport); | 255 CreateSendConfig(1, 0, &sender_transport); |
255 CreateMatchingReceiveConfigs(&receiver_transport); | 256 CreateMatchingReceiveConfigs(&receiver_transport); |
256 video_receive_configs_[0].renderer = &renderer; | 257 video_receive_configs_[0].renderer = &renderer; |
257 | 258 |
(...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
764 const int kNetworkDelayMs = 50; | 765 const int kNetworkDelayMs = 50; |
765 FakeNetworkPipe::Config config; | 766 FakeNetworkPipe::Config config; |
766 config.queue_delay_ms = kNetworkDelayMs; | 767 config.queue_delay_ms = kNetworkDelayMs; |
767 return new test::PacketTransport(sender_call, this, | 768 return new test::PacketTransport(sender_call, this, |
768 test::PacketTransport::kSender, config); | 769 test::PacketTransport::kSender, config); |
769 } | 770 } |
770 | 771 |
771 // TODO(holmer): Investigate why we don't send FEC packets when the bitrate | 772 // TODO(holmer): Investigate why we don't send FEC packets when the bitrate |
772 // is 10 kbps. | 773 // is 10 kbps. |
773 Call::Config GetSenderCallConfig() override { | 774 Call::Config GetSenderCallConfig() override { |
774 Call::Config config; | 775 Call::Config config(&event_log_); |
775 const int kMinBitrateBps = 30000; | 776 const int kMinBitrateBps = 30000; |
776 config.bitrate_config.min_bitrate_bps = kMinBitrateBps; | 777 config.bitrate_config.min_bitrate_bps = kMinBitrateBps; |
777 return config; | 778 return config; |
778 } | 779 } |
779 | 780 |
780 void ModifyVideoConfigs( | 781 void ModifyVideoConfigs( |
781 VideoSendStream::Config* send_config, | 782 VideoSendStream::Config* send_config, |
782 std::vector<VideoReceiveStream::Config>* receive_configs, | 783 std::vector<VideoReceiveStream::Config>* receive_configs, |
783 VideoEncoderConfig* encoder_config) override { | 784 VideoEncoderConfig* encoder_config) override { |
784 // Configure hybrid NACK/FEC. | 785 // Configure hybrid NACK/FEC. |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1095 EXPECT_EQ(DELIVERY_UNKNOWN_SSRC, delivery_status); | 1096 EXPECT_EQ(DELIVERY_UNKNOWN_SSRC, delivery_status); |
1096 delivered_packet_.Set(); | 1097 delivered_packet_.Set(); |
1097 return delivery_status; | 1098 return delivery_status; |
1098 } | 1099 } |
1099 } | 1100 } |
1100 | 1101 |
1101 PacketReceiver* receiver_; | 1102 PacketReceiver* receiver_; |
1102 rtc::Event delivered_packet_; | 1103 rtc::Event delivered_packet_; |
1103 }; | 1104 }; |
1104 | 1105 |
1105 CreateCalls(Call::Config(), Call::Config()); | 1106 CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_)); |
1106 | 1107 |
1107 test::DirectTransport send_transport(sender_call_.get()); | 1108 test::DirectTransport send_transport(sender_call_.get()); |
1108 test::DirectTransport receive_transport(receiver_call_.get()); | 1109 test::DirectTransport receive_transport(receiver_call_.get()); |
1109 PacketInputObserver input_observer(receiver_call_->Receiver()); | 1110 PacketInputObserver input_observer(receiver_call_->Receiver()); |
1110 send_transport.SetReceiver(&input_observer); | 1111 send_transport.SetReceiver(&input_observer); |
1111 receive_transport.SetReceiver(sender_call_->Receiver()); | 1112 receive_transport.SetReceiver(sender_call_->Receiver()); |
1112 | 1113 |
1113 CreateSendConfig(1, 0, &send_transport); | 1114 CreateSendConfig(1, 0, &send_transport); |
1114 CreateMatchingReceiveConfigs(&receive_transport); | 1115 CreateMatchingReceiveConfigs(&receive_transport); |
1115 | 1116 |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1236 MultiStreamTest() { | 1237 MultiStreamTest() { |
1237 // TODO(sprang): Cleanup when msvc supports explicit initializers for array. | 1238 // TODO(sprang): Cleanup when msvc supports explicit initializers for array. |
1238 codec_settings[0] = {1, 640, 480}; | 1239 codec_settings[0] = {1, 640, 480}; |
1239 codec_settings[1] = {2, 320, 240}; | 1240 codec_settings[1] = {2, 320, 240}; |
1240 codec_settings[2] = {3, 240, 160}; | 1241 codec_settings[2] = {3, 240, 160}; |
1241 } | 1242 } |
1242 | 1243 |
1243 virtual ~MultiStreamTest() {} | 1244 virtual ~MultiStreamTest() {} |
1244 | 1245 |
1245 void RunTest() { | 1246 void RunTest() { |
1246 std::unique_ptr<Call> sender_call(Call::Create(Call::Config())); | 1247 webrtc::RtcEventLogNullImpl event_log; |
1247 std::unique_ptr<Call> receiver_call(Call::Create(Call::Config())); | 1248 Call::Config config(&event_log); |
| 1249 std::unique_ptr<Call> sender_call(Call::Create(config)); |
| 1250 std::unique_ptr<Call> receiver_call(Call::Create(config)); |
1248 std::unique_ptr<test::DirectTransport> sender_transport( | 1251 std::unique_ptr<test::DirectTransport> sender_transport( |
1249 CreateSendTransport(sender_call.get())); | 1252 CreateSendTransport(sender_call.get())); |
1250 std::unique_ptr<test::DirectTransport> receiver_transport( | 1253 std::unique_ptr<test::DirectTransport> receiver_transport( |
1251 CreateReceiveTransport(receiver_call.get())); | 1254 CreateReceiveTransport(receiver_call.get())); |
1252 sender_transport->SetReceiver(receiver_call->Receiver()); | 1255 sender_transport->SetReceiver(receiver_call->Receiver()); |
1253 receiver_transport->SetReceiver(sender_call->Receiver()); | 1256 receiver_transport->SetReceiver(sender_call->Receiver()); |
1254 | 1257 |
1255 std::unique_ptr<VideoEncoder> encoders[kNumStreams]; | 1258 std::unique_ptr<VideoEncoder> encoders[kNumStreams]; |
1256 for (size_t i = 0; i < kNumStreams; ++i) | 1259 for (size_t i = 0; i < kNumStreams; ++i) |
1257 encoders[i].reset(VideoEncoder::Create(VideoEncoder::kVp8)); | 1260 encoders[i].reset(VideoEncoder::Create(VideoEncoder::kVp8)); |
(...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1732 private: | 1735 private: |
1733 std::unique_ptr<uint8_t[]> buffer_; | 1736 std::unique_ptr<uint8_t[]> buffer_; |
1734 size_t length_; | 1737 size_t length_; |
1735 FrameType frame_type_; | 1738 FrameType frame_type_; |
1736 rtc::Event called_; | 1739 rtc::Event called_; |
1737 }; | 1740 }; |
1738 | 1741 |
1739 EncodedFrameTestObserver post_encode_observer; | 1742 EncodedFrameTestObserver post_encode_observer; |
1740 EncodedFrameTestObserver pre_decode_observer; | 1743 EncodedFrameTestObserver pre_decode_observer; |
1741 | 1744 |
1742 CreateCalls(Call::Config(), Call::Config()); | 1745 CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_)); |
1743 | 1746 |
1744 test::DirectTransport sender_transport(sender_call_.get()); | 1747 test::DirectTransport sender_transport(sender_call_.get()); |
1745 test::DirectTransport receiver_transport(receiver_call_.get()); | 1748 test::DirectTransport receiver_transport(receiver_call_.get()); |
1746 sender_transport.SetReceiver(receiver_call_->Receiver()); | 1749 sender_transport.SetReceiver(receiver_call_->Receiver()); |
1747 receiver_transport.SetReceiver(sender_call_->Receiver()); | 1750 receiver_transport.SetReceiver(sender_call_->Receiver()); |
1748 | 1751 |
1749 CreateSendConfig(1, 0, &sender_transport); | 1752 CreateSendConfig(1, 0, &sender_transport); |
1750 CreateMatchingReceiveConfigs(&receiver_transport); | 1753 CreateMatchingReceiveConfigs(&receiver_transport); |
1751 video_send_config_.post_encode_callback = &post_encode_observer; | 1754 video_send_config_.post_encode_callback = &post_encode_observer; |
1752 video_receive_configs_[0].pre_decode_callback = &pre_decode_observer; | 1755 video_receive_configs_[0].pre_decode_callback = &pre_decode_observer; |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1883 ~BweObserver() {} | 1886 ~BweObserver() {} |
1884 | 1887 |
1885 test::PacketTransport* CreateReceiveTransport() override { | 1888 test::PacketTransport* CreateReceiveTransport() override { |
1886 receive_transport_ = new test::PacketTransport( | 1889 receive_transport_ = new test::PacketTransport( |
1887 nullptr, this, test::PacketTransport::kReceiver, | 1890 nullptr, this, test::PacketTransport::kReceiver, |
1888 FakeNetworkPipe::Config()); | 1891 FakeNetworkPipe::Config()); |
1889 return receive_transport_; | 1892 return receive_transport_; |
1890 } | 1893 } |
1891 | 1894 |
1892 Call::Config GetSenderCallConfig() override { | 1895 Call::Config GetSenderCallConfig() override { |
1893 Call::Config config; | 1896 Call::Config config(&event_log_); |
1894 // Set a high start bitrate to reduce the test completion time. | 1897 // Set a high start bitrate to reduce the test completion time. |
1895 config.bitrate_config.start_bitrate_bps = remb_bitrate_bps_; | 1898 config.bitrate_config.start_bitrate_bps = remb_bitrate_bps_; |
1896 return config; | 1899 return config; |
1897 } | 1900 } |
1898 | 1901 |
1899 void ModifyVideoConfigs( | 1902 void ModifyVideoConfigs( |
1900 VideoSendStream::Config* send_config, | 1903 VideoSendStream::Config* send_config, |
1901 std::vector<VideoReceiveStream::Config>* receive_configs, | 1904 std::vector<VideoReceiveStream::Config>* receive_configs, |
1902 VideoEncoderConfig* encoder_config) override { | 1905 VideoEncoderConfig* encoder_config) override { |
1903 ASSERT_EQ(1u, send_config->rtp.ssrcs.size()); | 1906 ASSERT_EQ(1u, send_config->rtp.ssrcs.size()); |
(...skipping 1358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3262 SequenceNumberUnwrapper seq_numbers_unwrapper_; | 3265 SequenceNumberUnwrapper seq_numbers_unwrapper_; |
3263 std::map<uint32_t, std::list<int64_t>> last_observed_seq_numbers_; | 3266 std::map<uint32_t, std::list<int64_t>> last_observed_seq_numbers_; |
3264 std::map<uint32_t, uint32_t> last_observed_timestamp_; | 3267 std::map<uint32_t, uint32_t> last_observed_timestamp_; |
3265 std::map<uint32_t, bool> ssrc_is_rtx_; | 3268 std::map<uint32_t, bool> ssrc_is_rtx_; |
3266 | 3269 |
3267 rtc::CriticalSection crit_; | 3270 rtc::CriticalSection crit_; |
3268 size_t ssrcs_to_observe_ GUARDED_BY(crit_); | 3271 size_t ssrcs_to_observe_ GUARDED_BY(crit_); |
3269 std::map<uint32_t, bool> ssrc_observed_ GUARDED_BY(crit_); | 3272 std::map<uint32_t, bool> ssrc_observed_ GUARDED_BY(crit_); |
3270 } observer(use_rtx); | 3273 } observer(use_rtx); |
3271 | 3274 |
3272 CreateCalls(Call::Config(), Call::Config()); | 3275 Call::Config config(&event_log_); |
| 3276 CreateCalls(config, config); |
3273 | 3277 |
3274 test::PacketTransport send_transport(sender_call_.get(), &observer, | 3278 test::PacketTransport send_transport(sender_call_.get(), &observer, |
3275 test::PacketTransport::kSender, | 3279 test::PacketTransport::kSender, |
3276 FakeNetworkPipe::Config()); | 3280 FakeNetworkPipe::Config()); |
3277 test::PacketTransport receive_transport(nullptr, &observer, | 3281 test::PacketTransport receive_transport(nullptr, &observer, |
3278 test::PacketTransport::kReceiver, | 3282 test::PacketTransport::kReceiver, |
3279 FakeNetworkPipe::Config()); | 3283 FakeNetworkPipe::Config()); |
3280 send_transport.SetReceiver(receiver_call_->Receiver()); | 3284 send_transport.SetReceiver(receiver_call_->Receiver()); |
3281 receive_transport.SetReceiver(sender_call_->Receiver()); | 3285 receive_transport.SetReceiver(sender_call_->Receiver()); |
3282 | 3286 |
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3557 int receiver_rtcp_ GUARDED_BY(test_crit_); | 3561 int receiver_rtcp_ GUARDED_BY(test_crit_); |
3558 int down_frames_ GUARDED_BY(test_crit_); | 3562 int down_frames_ GUARDED_BY(test_crit_); |
3559 } test; | 3563 } test; |
3560 | 3564 |
3561 RunBaseTest(&test); | 3565 RunBaseTest(&test); |
3562 } | 3566 } |
3563 | 3567 |
3564 TEST_F(EndToEndTest, CallReportsRttForSender) { | 3568 TEST_F(EndToEndTest, CallReportsRttForSender) { |
3565 static const int kSendDelayMs = 30; | 3569 static const int kSendDelayMs = 30; |
3566 static const int kReceiveDelayMs = 70; | 3570 static const int kReceiveDelayMs = 70; |
3567 | 3571 CreateCalls(Call::Config(&event_log_), Call::Config(&event_log_)); |
3568 CreateCalls(Call::Config(), Call::Config()); | |
3569 | 3572 |
3570 FakeNetworkPipe::Config config; | 3573 FakeNetworkPipe::Config config; |
3571 config.queue_delay_ms = kSendDelayMs; | 3574 config.queue_delay_ms = kSendDelayMs; |
3572 test::DirectTransport sender_transport(config, sender_call_.get()); | 3575 test::DirectTransport sender_transport(config, sender_call_.get()); |
3573 config.queue_delay_ms = kReceiveDelayMs; | 3576 config.queue_delay_ms = kReceiveDelayMs; |
3574 test::DirectTransport receiver_transport(config, receiver_call_.get()); | 3577 test::DirectTransport receiver_transport(config, receiver_call_.get()); |
3575 sender_transport.SetReceiver(receiver_call_->Receiver()); | 3578 sender_transport.SetReceiver(receiver_call_->Receiver()); |
3576 receiver_transport.SetReceiver(sender_call_->Receiver()); | 3579 receiver_transport.SetReceiver(sender_call_->Receiver()); |
3577 | 3580 |
3578 CreateSendConfig(1, 0, &sender_transport); | 3581 CreateSendConfig(1, 0, &sender_transport); |
(...skipping 21 matching lines...) Expand all Loading... |
3600 } | 3603 } |
3601 | 3604 |
3602 Stop(); | 3605 Stop(); |
3603 DestroyStreams(); | 3606 DestroyStreams(); |
3604 } | 3607 } |
3605 | 3608 |
3606 void EndToEndTest::VerifyNewVideoSendStreamsRespectNetworkState( | 3609 void EndToEndTest::VerifyNewVideoSendStreamsRespectNetworkState( |
3607 MediaType network_to_bring_down, | 3610 MediaType network_to_bring_down, |
3608 VideoEncoder* encoder, | 3611 VideoEncoder* encoder, |
3609 Transport* transport) { | 3612 Transport* transport) { |
3610 CreateSenderCall(Call::Config()); | 3613 CreateSenderCall(Call::Config(&event_log_)); |
3611 sender_call_->SignalChannelNetworkState(network_to_bring_down, kNetworkDown); | 3614 sender_call_->SignalChannelNetworkState(network_to_bring_down, kNetworkDown); |
3612 | 3615 |
3613 CreateSendConfig(1, 0, transport); | 3616 CreateSendConfig(1, 0, transport); |
3614 video_send_config_.encoder_settings.encoder = encoder; | 3617 video_send_config_.encoder_settings.encoder = encoder; |
3615 CreateVideoStreams(); | 3618 CreateVideoStreams(); |
3616 CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth, | 3619 CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth, |
3617 kDefaultHeight); | 3620 kDefaultHeight); |
3618 | 3621 |
3619 Start(); | 3622 Start(); |
3620 SleepMs(kSilenceTimeoutMs); | 3623 SleepMs(kSilenceTimeoutMs); |
3621 Stop(); | 3624 Stop(); |
3622 | 3625 |
3623 DestroyStreams(); | 3626 DestroyStreams(); |
3624 } | 3627 } |
3625 | 3628 |
3626 void EndToEndTest::VerifyNewVideoReceiveStreamsRespectNetworkState( | 3629 void EndToEndTest::VerifyNewVideoReceiveStreamsRespectNetworkState( |
3627 MediaType network_to_bring_down, | 3630 MediaType network_to_bring_down, |
3628 Transport* transport) { | 3631 Transport* transport) { |
3629 CreateCalls(Call::Config(), Call::Config()); | 3632 Call::Config config(&event_log_); |
| 3633 CreateCalls(config, config); |
3630 receiver_call_->SignalChannelNetworkState(network_to_bring_down, | 3634 receiver_call_->SignalChannelNetworkState(network_to_bring_down, |
3631 kNetworkDown); | 3635 kNetworkDown); |
3632 | 3636 |
3633 test::DirectTransport sender_transport(sender_call_.get()); | 3637 test::DirectTransport sender_transport(sender_call_.get()); |
3634 sender_transport.SetReceiver(receiver_call_->Receiver()); | 3638 sender_transport.SetReceiver(receiver_call_->Receiver()); |
3635 CreateSendConfig(1, 0, &sender_transport); | 3639 CreateSendConfig(1, 0, &sender_transport); |
3636 CreateMatchingReceiveConfigs(transport); | 3640 CreateMatchingReceiveConfigs(transport); |
3637 CreateVideoStreams(); | 3641 CreateVideoStreams(); |
3638 CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth, | 3642 CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth, |
3639 kDefaultHeight); | 3643 kDefaultHeight); |
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3923 std::unique_ptr<VideoEncoder> encoder_; | 3927 std::unique_ptr<VideoEncoder> encoder_; |
3924 std::unique_ptr<VideoDecoder> decoder_; | 3928 std::unique_ptr<VideoDecoder> decoder_; |
3925 rtc::CriticalSection crit_; | 3929 rtc::CriticalSection crit_; |
3926 int recorded_frames_ GUARDED_BY(crit_); | 3930 int recorded_frames_ GUARDED_BY(crit_); |
3927 } test(this); | 3931 } test(this); |
3928 | 3932 |
3929 RunBaseTest(&test); | 3933 RunBaseTest(&test); |
3930 } | 3934 } |
3931 | 3935 |
3932 } // namespace webrtc | 3936 } // namespace webrtc |
OLD | NEW |