| 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>  // max | 10 #include <algorithm>  // max | 
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 53  protected: | 53  protected: | 
| 54   void TestNackRetransmission(uint32_t retransmit_ssrc, | 54   void TestNackRetransmission(uint32_t retransmit_ssrc, | 
| 55                               uint8_t retransmit_payload_type); | 55                               uint8_t retransmit_payload_type); | 
| 56   void TestPacketFragmentationSize(VideoFormat format, bool with_fec); | 56   void TestPacketFragmentationSize(VideoFormat format, bool with_fec); | 
| 57 | 57 | 
| 58   void TestVp9NonFlexMode(uint8_t num_temporal_layers, | 58   void TestVp9NonFlexMode(uint8_t num_temporal_layers, | 
| 59                           uint8_t num_spatial_layers); | 59                           uint8_t num_spatial_layers); | 
| 60 }; | 60 }; | 
| 61 | 61 | 
| 62 TEST_F(VideoSendStreamTest, CanStartStartedStream) { | 62 TEST_F(VideoSendStreamTest, CanStartStartedStream) { | 
|  | 63   webrtc::RtcEventLogNullImpl event_log; | 
| 63   Call::Config call_config; | 64   Call::Config call_config; | 
|  | 65   call_config.event_log = &event_log; | 
| 64   CreateSenderCall(call_config); | 66   CreateSenderCall(call_config); | 
| 65 | 67 | 
| 66   test::NullTransport transport; | 68   test::NullTransport transport; | 
| 67   CreateSendConfig(1, 0, &transport); | 69   CreateSendConfig(1, 0, &transport); | 
| 68   CreateVideoStreams(); | 70   CreateVideoStreams(); | 
| 69   video_send_stream_->Start(); | 71   video_send_stream_->Start(); | 
| 70   video_send_stream_->Start(); | 72   video_send_stream_->Start(); | 
| 71   DestroyStreams(); | 73   DestroyStreams(); | 
| 72 } | 74 } | 
| 73 | 75 | 
| 74 TEST_F(VideoSendStreamTest, CanStopStoppedStream) { | 76 TEST_F(VideoSendStreamTest, CanStopStoppedStream) { | 
|  | 77   webrtc::RtcEventLogNullImpl event_log; | 
| 75   Call::Config call_config; | 78   Call::Config call_config; | 
|  | 79   call_config.event_log = &event_log; | 
| 76   CreateSenderCall(call_config); | 80   CreateSenderCall(call_config); | 
| 77 | 81 | 
| 78   test::NullTransport transport; | 82   test::NullTransport transport; | 
| 79   CreateSendConfig(1, 0, &transport); | 83   CreateSendConfig(1, 0, &transport); | 
| 80   CreateVideoStreams(); | 84   CreateVideoStreams(); | 
| 81   video_send_stream_->Stop(); | 85   video_send_stream_->Stop(); | 
| 82   video_send_stream_->Stop(); | 86   video_send_stream_->Stop(); | 
| 83   DestroyStreams(); | 87   DestroyStreams(); | 
| 84 } | 88 } | 
| 85 | 89 | 
| (...skipping 645 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 731           current_size_frame_.Value() < static_cast<int32_t>(stop_size_)) { | 735           current_size_frame_.Value() < static_cast<int32_t>(stop_size_)) { | 
| 732         ++current_size_frame_; | 736         ++current_size_frame_; | 
| 733       } | 737       } | 
| 734       encoder_.SetFrameSize(static_cast<size_t>(current_size_frame_.Value())); | 738       encoder_.SetFrameSize(static_cast<size_t>(current_size_frame_.Value())); | 
| 735     } | 739     } | 
| 736 | 740 | 
| 737     Call::Config GetSenderCallConfig() override { | 741     Call::Config GetSenderCallConfig() override { | 
| 738       Call::Config config; | 742       Call::Config config; | 
| 739       const int kMinBitrateBps = 30000; | 743       const int kMinBitrateBps = 30000; | 
| 740       config.bitrate_config.min_bitrate_bps = kMinBitrateBps; | 744       config.bitrate_config.min_bitrate_bps = kMinBitrateBps; | 
|  | 745       config.event_log = &event_log_; | 
| 741       return config; | 746       return config; | 
| 742     } | 747     } | 
| 743 | 748 | 
| 744     void ModifyVideoConfigs( | 749     void ModifyVideoConfigs( | 
| 745         VideoSendStream::Config* send_config, | 750         VideoSendStream::Config* send_config, | 
| 746         std::vector<VideoReceiveStream::Config>* receive_configs, | 751         std::vector<VideoReceiveStream::Config>* receive_configs, | 
| 747         VideoEncoderConfig* encoder_config) override { | 752         VideoEncoderConfig* encoder_config) override { | 
| 748       transport_adapter_.reset( | 753       transport_adapter_.reset( | 
| 749           new internal::TransportAdapter(send_config->send_transport)); | 754           new internal::TransportAdapter(send_config->send_transport)); | 
| 750       transport_adapter_->Enable(); | 755       transport_adapter_->Enable(); | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 762 | 767 | 
| 763       // Make sure there is at least one extension header, to make the RTP | 768       // Make sure there is at least one extension header, to make the RTP | 
| 764       // header larger than the base length of 12 bytes. | 769       // header larger than the base length of 12 bytes. | 
| 765       EXPECT_FALSE(send_config->rtp.extensions.empty()); | 770       EXPECT_FALSE(send_config->rtp.extensions.empty()); | 
| 766     } | 771     } | 
| 767 | 772 | 
| 768     void PerformTest() override { | 773     void PerformTest() override { | 
| 769       EXPECT_TRUE(Wait()) << "Timed out while observing incoming RTP packets."; | 774       EXPECT_TRUE(Wait()) << "Timed out while observing incoming RTP packets."; | 
| 770     } | 775     } | 
| 771 | 776 | 
|  | 777     webrtc::RtcEventLogNullImpl event_log_; | 
| 772     std::unique_ptr<internal::TransportAdapter> transport_adapter_; | 778     std::unique_ptr<internal::TransportAdapter> transport_adapter_; | 
| 773     test::ConfigurableFrameSizeEncoder encoder_; | 779     test::ConfigurableFrameSizeEncoder encoder_; | 
| 774 | 780 | 
| 775     const size_t max_packet_size_; | 781     const size_t max_packet_size_; | 
| 776     const size_t stop_size_; | 782     const size_t stop_size_; | 
| 777     const bool test_generic_packetization_; | 783     const bool test_generic_packetization_; | 
| 778     const bool use_fec_; | 784     const bool use_fec_; | 
| 779 | 785 | 
| 780     uint32_t packet_count_; | 786     uint32_t packet_count_; | 
| 781     size_t accumulated_size_; | 787     size_t accumulated_size_; | 
| (...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1431       return 0; | 1437       return 0; | 
| 1432     } | 1438     } | 
| 1433 | 1439 | 
| 1434     rtc::CriticalSection crit_; | 1440     rtc::CriticalSection crit_; | 
| 1435     rtc::Event init_encode_called_; | 1441     rtc::Event init_encode_called_; | 
| 1436     size_t number_of_initializations_ GUARDED_BY(&crit_); | 1442     size_t number_of_initializations_ GUARDED_BY(&crit_); | 
| 1437     int last_initialized_frame_width_ GUARDED_BY(&crit_); | 1443     int last_initialized_frame_width_ GUARDED_BY(&crit_); | 
| 1438     int last_initialized_frame_height_ GUARDED_BY(&crit_); | 1444     int last_initialized_frame_height_ GUARDED_BY(&crit_); | 
| 1439   }; | 1445   }; | 
| 1440 | 1446 | 
| 1441   CreateSenderCall(Call::Config()); | 1447   webrtc::RtcEventLogNullImpl event_log; | 
|  | 1448   Call::Config call_config; | 
|  | 1449   call_config.event_log = &event_log; | 
|  | 1450   CreateSenderCall(call_config); | 
| 1442   test::NullTransport transport; | 1451   test::NullTransport transport; | 
| 1443   CreateSendConfig(1, 0, &transport); | 1452   CreateSendConfig(1, 0, &transport); | 
| 1444   EncoderObserver encoder; | 1453   EncoderObserver encoder; | 
| 1445   video_send_config_.encoder_settings.encoder = &encoder; | 1454   video_send_config_.encoder_settings.encoder = &encoder; | 
| 1446   CreateVideoStreams(); | 1455   CreateVideoStreams(); | 
| 1447   CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth, | 1456   CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth, | 
| 1448                                kDefaultHeight); | 1457                                kDefaultHeight); | 
| 1449   frame_generator_capturer_->Start(); | 1458   frame_generator_capturer_->Start(); | 
| 1450 | 1459 | 
| 1451   encoder.WaitForResolution(kDefaultWidth, kDefaultHeight); | 1460   encoder.WaitForResolution(kDefaultWidth, kDefaultHeight); | 
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1487       return start_bitrate_changed_.Wait( | 1496       return start_bitrate_changed_.Wait( | 
| 1488           VideoSendStreamTest::kDefaultTimeoutMs); | 1497           VideoSendStreamTest::kDefaultTimeoutMs); | 
| 1489     } | 1498     } | 
| 1490 | 1499 | 
| 1491    private: | 1500    private: | 
| 1492     rtc::CriticalSection crit_; | 1501     rtc::CriticalSection crit_; | 
| 1493     rtc::Event start_bitrate_changed_; | 1502     rtc::Event start_bitrate_changed_; | 
| 1494     int start_bitrate_kbps_ GUARDED_BY(crit_); | 1503     int start_bitrate_kbps_ GUARDED_BY(crit_); | 
| 1495   }; | 1504   }; | 
| 1496 | 1505 | 
| 1497   CreateSenderCall(Call::Config()); | 1506   webrtc::RtcEventLogNullImpl event_log; | 
|  | 1507   Call::Config call_config; | 
|  | 1508   call_config.event_log = &event_log; | 
|  | 1509   CreateSenderCall(call_config); | 
| 1498 | 1510 | 
| 1499   test::NullTransport transport; | 1511   test::NullTransport transport; | 
| 1500   CreateSendConfig(1, 0, &transport); | 1512   CreateSendConfig(1, 0, &transport); | 
| 1501 | 1513 | 
| 1502   Call::Config::BitrateConfig bitrate_config; | 1514   Call::Config::BitrateConfig bitrate_config; | 
| 1503   bitrate_config.start_bitrate_bps = 2 * video_encoder_config_.max_bitrate_bps; | 1515   bitrate_config.start_bitrate_bps = 2 * video_encoder_config_.max_bitrate_bps; | 
| 1504   sender_call_->SetBitrateConfig(bitrate_config); | 1516   sender_call_->SetBitrateConfig(bitrate_config); | 
| 1505 | 1517 | 
| 1506   StartBitrateObserver encoder; | 1518   StartBitrateObserver encoder; | 
| 1507   video_send_config_.encoder_settings.encoder = &encoder; | 1519   video_send_config_.encoder_settings.encoder = &encoder; | 
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1568       return bitrate_changed_.Wait(VideoSendStreamTest::kDefaultTimeoutMs); | 1580       return bitrate_changed_.Wait(VideoSendStreamTest::kDefaultTimeoutMs); | 
| 1569     } | 1581     } | 
| 1570 | 1582 | 
| 1571    private: | 1583    private: | 
| 1572     rtc::CriticalSection crit_; | 1584     rtc::CriticalSection crit_; | 
| 1573     rtc::Event encoder_init_; | 1585     rtc::Event encoder_init_; | 
| 1574     rtc::Event bitrate_changed_; | 1586     rtc::Event bitrate_changed_; | 
| 1575     int bitrate_kbps_ GUARDED_BY(crit_); | 1587     int bitrate_kbps_ GUARDED_BY(crit_); | 
| 1576   }; | 1588   }; | 
| 1577 | 1589 | 
| 1578   CreateSenderCall(Call::Config()); | 1590   webrtc::RtcEventLogNullImpl event_log; | 
|  | 1591   Call::Config call_config; | 
|  | 1592   call_config.event_log = &event_log; | 
|  | 1593   CreateSenderCall(call_config); | 
| 1579 | 1594 | 
| 1580   test::NullTransport transport; | 1595   test::NullTransport transport; | 
| 1581   CreateSendConfig(1, 0, &transport); | 1596   CreateSendConfig(1, 0, &transport); | 
| 1582 | 1597 | 
| 1583   StartStopBitrateObserver encoder; | 1598   StartStopBitrateObserver encoder; | 
| 1584   video_send_config_.encoder_settings.encoder = &encoder; | 1599   video_send_config_.encoder_settings.encoder = &encoder; | 
| 1585   video_send_config_.encoder_settings.internal_source = true; | 1600   video_send_config_.encoder_settings.internal_source = true; | 
| 1586 | 1601 | 
| 1587   CreateVideoStreams(); | 1602   CreateVideoStreams(); | 
| 1588 | 1603 | 
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1623 | 1638 | 
| 1624    private: | 1639    private: | 
| 1625     // Delivered output frames. | 1640     // Delivered output frames. | 
| 1626     std::vector<VideoFrame> output_frames_; | 1641     std::vector<VideoFrame> output_frames_; | 
| 1627 | 1642 | 
| 1628     // Indicate an output frame has arrived. | 1643     // Indicate an output frame has arrived. | 
| 1629     rtc::Event output_frame_event_; | 1644     rtc::Event output_frame_event_; | 
| 1630   }; | 1645   }; | 
| 1631 | 1646 | 
| 1632   // Initialize send stream. | 1647   // Initialize send stream. | 
| 1633   CreateSenderCall(Call::Config()); | 1648   webrtc::RtcEventLogNullImpl event_log; | 
|  | 1649   Call::Config call_config; | 
|  | 1650   call_config.event_log = &event_log; | 
|  | 1651   CreateSenderCall(call_config); | 
| 1634 | 1652 | 
| 1635   test::NullTransport transport; | 1653   test::NullTransport transport; | 
| 1636   CreateSendConfig(1, 0, &transport); | 1654   CreateSendConfig(1, 0, &transport); | 
| 1637   FrameObserver observer; | 1655   FrameObserver observer; | 
| 1638   video_send_config_.pre_encode_callback = &observer; | 1656   video_send_config_.pre_encode_callback = &observer; | 
| 1639   CreateVideoStreams(); | 1657   CreateVideoStreams(); | 
| 1640 | 1658 | 
| 1641   // Prepare five input frames. Send ordinary VideoFrame and texture frames | 1659   // Prepare five input frames. Send ordinary VideoFrame and texture frames | 
| 1642   // alternatively. | 1660   // alternatively. | 
| 1643   std::vector<VideoFrame> input_frames; | 1661   std::vector<VideoFrame> input_frames; | 
| (...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2263     void WaitForSetRates(uint32_t expected_bitrate) { | 2281     void WaitForSetRates(uint32_t expected_bitrate) { | 
| 2264       EXPECT_TRUE( | 2282       EXPECT_TRUE( | 
| 2265           bitrate_changed_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs)) | 2283           bitrate_changed_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs)) | 
| 2266           << "Timed out while waiting encoder rate to be set."; | 2284           << "Timed out while waiting encoder rate to be set."; | 
| 2267       rtc::CritScope lock(&crit_); | 2285       rtc::CritScope lock(&crit_); | 
| 2268       EXPECT_EQ(expected_bitrate, target_bitrate_); | 2286       EXPECT_EQ(expected_bitrate, target_bitrate_); | 
| 2269     } | 2287     } | 
| 2270 | 2288 | 
| 2271     Call::Config GetSenderCallConfig() override { | 2289     Call::Config GetSenderCallConfig() override { | 
| 2272       Call::Config config; | 2290       Call::Config config; | 
|  | 2291       config.event_log = &event_log_; | 
| 2273       config.bitrate_config.min_bitrate_bps = kMinBitrateKbps * 1000; | 2292       config.bitrate_config.min_bitrate_bps = kMinBitrateKbps * 1000; | 
| 2274       config.bitrate_config.start_bitrate_bps = kStartBitrateKbps * 1000; | 2293       config.bitrate_config.start_bitrate_bps = kStartBitrateKbps * 1000; | 
| 2275       config.bitrate_config.max_bitrate_bps = kMaxBitrateKbps * 1000; | 2294       config.bitrate_config.max_bitrate_bps = kMaxBitrateKbps * 1000; | 
| 2276       return config; | 2295       return config; | 
| 2277     } | 2296     } | 
| 2278 | 2297 | 
| 2279     class VideoStreamFactory | 2298     class VideoStreamFactory | 
| 2280         : public VideoEncoderConfig::VideoStreamFactoryInterface { | 2299         : public VideoEncoderConfig::VideoStreamFactoryInterface { | 
| 2281      public: | 2300      public: | 
| 2282       explicit VideoStreamFactory(int min_bitrate_bps) | 2301       explicit VideoStreamFactory(int min_bitrate_bps) | 
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2344       send_stream_->ReconfigureVideoEncoder(encoder_config_.Copy()); | 2363       send_stream_->ReconfigureVideoEncoder(encoder_config_.Copy()); | 
| 2345       ASSERT_TRUE( | 2364       ASSERT_TRUE( | 
| 2346           init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs)); | 2365           init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs)); | 
| 2347       EXPECT_EQ(4, num_initializations_) | 2366       EXPECT_EQ(4, num_initializations_) | 
| 2348           << "Encoder should have been reconfigured with the new value."; | 2367           << "Encoder should have been reconfigured with the new value."; | 
| 2349       // Expected target bitrate is the start bitrate set in the call to | 2368       // Expected target bitrate is the start bitrate set in the call to | 
| 2350       // call_->SetBitrateConfig. | 2369       // call_->SetBitrateConfig. | 
| 2351       WaitForSetRates(kIncreasedStartBitrateKbps); | 2370       WaitForSetRates(kIncreasedStartBitrateKbps); | 
| 2352     } | 2371     } | 
| 2353 | 2372 | 
|  | 2373     webrtc::RtcEventLogNullImpl event_log_; | 
| 2354     rtc::Event init_encode_event_; | 2374     rtc::Event init_encode_event_; | 
| 2355     rtc::Event bitrate_changed_event_; | 2375     rtc::Event bitrate_changed_event_; | 
| 2356     rtc::CriticalSection crit_; | 2376     rtc::CriticalSection crit_; | 
| 2357     uint32_t target_bitrate_ GUARDED_BY(&crit_); | 2377     uint32_t target_bitrate_ GUARDED_BY(&crit_); | 
| 2358 | 2378 | 
| 2359     int num_initializations_; | 2379     int num_initializations_; | 
| 2360     webrtc::Call* call_; | 2380     webrtc::Call* call_; | 
| 2361     webrtc::VideoSendStream* send_stream_; | 2381     webrtc::VideoSendStream* send_stream_; | 
| 2362     webrtc::VideoEncoderConfig encoder_config_; | 2382     webrtc::VideoEncoderConfig encoder_config_; | 
| 2363   } test; | 2383   } test; | 
| (...skipping 526 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2890         observation_complete_.Set(); | 2910         observation_complete_.Set(); | 
| 2891       } | 2911       } | 
| 2892     } | 2912     } | 
| 2893   } test; | 2913   } test; | 
| 2894 | 2914 | 
| 2895   RunBaseTest(&test); | 2915   RunBaseTest(&test); | 
| 2896 } | 2916 } | 
| 2897 #endif  // !defined(RTC_DISABLE_VP9) | 2917 #endif  // !defined(RTC_DISABLE_VP9) | 
| 2898 | 2918 | 
| 2899 }  // namespace webrtc | 2919 }  // namespace webrtc | 
| OLD | NEW | 
|---|