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

Side by Side Diff: webrtc/video/video_send_stream_tests.cc

Issue 2060403002: Add task queue to Call. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@move_getpadding
Patch Set: Revert fix for asan, protect instead. Added destruction observer to frames in ViEEncoder tests. Created 4 years, 5 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) 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 847 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 if (stats.suspended == false) { 858 if (stats.suspended == false) {
859 // Stats flipped to false. Test is complete. 859 // Stats flipped to false. Test is complete.
860 observation_complete_.Set(); 860 observation_complete_.Set();
861 } 861 }
862 SendRtcpFeedback(0); // REMB is only sent if value is > 0. 862 SendRtcpFeedback(0); // REMB is only sent if value is > 0.
863 } 863 }
864 864
865 return SEND_PACKET; 865 return SEND_PACKET;
866 } 866 }
867 867
868 // This method implements the rtc::VideoSinkInterface 868 // This method implements the rtc::VideoSinkInterface. This is called when
869 // a frame is provided to the VideoSendStream.
869 void OnFrame(const VideoFrame& video_frame) override { 870 void OnFrame(const VideoFrame& video_frame) override {
870 rtc::CritScope lock(&crit_); 871 rtc::CritScope lock(&crit_);
871 if (test_state_ == kDuringSuspend && 872 if (test_state_ == kDuringSuspend &&
872 ++suspended_frame_count_ > kSuspendTimeFrames) { 873 ++suspended_frame_count_ > kSuspendTimeFrames) {
873 VideoSendStream::Stats stats = stream_->GetStats(); 874 VideoSendStream::Stats stats = stream_->GetStats();
874 EXPECT_TRUE(stats.suspended); 875 EXPECT_TRUE(stats.suspended);
875 SendRtcpFeedback(high_remb_bps_); 876 SendRtcpFeedback(high_remb_bps_);
876 test_state_ = kWaitingForPacket; 877 test_state_ = kWaitingForPacket;
877 } 878 }
878 } 879 }
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
1174 video_send_config_.encoder_settings.encoder = &encoder; 1175 video_send_config_.encoder_settings.encoder = &encoder;
1175 1176
1176 CreateVideoStreams(); 1177 CreateVideoStreams();
1177 1178
1178 EXPECT_TRUE(encoder.WaitForStartBitrate()); 1179 EXPECT_TRUE(encoder.WaitForStartBitrate());
1179 EXPECT_EQ(video_encoder_config_.streams[0].max_bitrate_bps / 1000, 1180 EXPECT_EQ(video_encoder_config_.streams[0].max_bitrate_bps / 1000,
1180 encoder.GetStartBitrateKbps()); 1181 encoder.GetStartBitrateKbps());
1181 1182
1182 video_encoder_config_.streams[0].max_bitrate_bps = 1183 video_encoder_config_.streams[0].max_bitrate_bps =
1183 2 * bitrate_config.start_bitrate_bps; 1184 2 * bitrate_config.start_bitrate_bps;
1184 video_send_stream_->ReconfigureVideoEncoder(video_encoder_config_); 1185 video_send_stream_->ReconfigureVideoEncoder(video_encoder_config_.Copy());
1185 1186
1186 // New bitrate should be reconfigured above the previous max. As there's no 1187 // New bitrate should be reconfigured above the previous max. As there's no
1187 // network connection this shouldn't be flaky, as no bitrate should've been 1188 // network connection this shouldn't be flaky, as no bitrate should've been
1188 // reported in between. 1189 // reported in between.
1189 EXPECT_TRUE(encoder.WaitForStartBitrate()); 1190 EXPECT_TRUE(encoder.WaitForStartBitrate());
1190 EXPECT_EQ(bitrate_config.start_bitrate_bps / 1000, 1191 EXPECT_EQ(bitrate_config.start_bitrate_bps / 1000,
1191 encoder.GetStartBitrateKbps()); 1192 encoder.GetStartBitrateKbps());
1192 1193
1193 DestroyStreams(); 1194 DestroyStreams();
1194 } 1195 }
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
1438 VideoSendStream* send_stream, 1439 VideoSendStream* send_stream,
1439 const std::vector<VideoReceiveStream*>& receive_streams) override { 1440 const std::vector<VideoReceiveStream*>& receive_streams) override {
1440 stream_ = send_stream; 1441 stream_ = send_stream;
1441 } 1442 }
1442 1443
1443 void ModifyVideoConfigs( 1444 void ModifyVideoConfigs(
1444 VideoSendStream::Config* send_config, 1445 VideoSendStream::Config* send_config,
1445 std::vector<VideoReceiveStream::Config>* receive_configs, 1446 std::vector<VideoReceiveStream::Config>* receive_configs,
1446 VideoEncoderConfig* encoder_config) override { 1447 VideoEncoderConfig* encoder_config) override {
1447 send_config->encoder_settings.encoder = this; 1448 send_config->encoder_settings.encoder = this;
1448 encoder_config_ = *encoder_config; 1449 encoder_config_ = encoder_config->Copy();
1449 } 1450 }
1450 1451
1451 void PerformTest() override { 1452 void PerformTest() override {
1452 EXPECT_TRUE(Wait()) << "Timed out while waiting for Encode."; 1453 EXPECT_TRUE(Wait()) << "Timed out while waiting for Encode.";
1453 EXPECT_EQ(0u, num_releases()); 1454 EXPECT_EQ(0u, num_releases());
1454 stream_->ReconfigureVideoEncoder(encoder_config_); 1455 stream_->ReconfigureVideoEncoder(std::move(encoder_config_));
1455 EXPECT_EQ(0u, num_releases()); 1456 EXPECT_EQ(0u, num_releases());
1456 stream_->Stop(); 1457 stream_->Stop();
1457 // Encoder should not be released before destroying the VideoSendStream. 1458 // Encoder should not be released before destroying the VideoSendStream.
1458 EXPECT_FALSE(IsReleased()); 1459 EXPECT_FALSE(IsReleased());
1459 EXPECT_TRUE(IsReadyForEncode()); 1460 EXPECT_TRUE(IsReadyForEncode());
1460 stream_->Start(); 1461 stream_->Start();
1461 // Sanity check, make sure we still encode frames with this encoder. 1462 // Sanity check, make sure we still encode frames with this encoder.
1462 EXPECT_TRUE(Wait()) << "Timed out while waiting for Encode."; 1463 EXPECT_TRUE(Wait()) << "Timed out while waiting for Encode.";
1463 } 1464 }
1464 1465
(...skipping 21 matching lines...) Expand all
1486 FakeEncoder(Clock::GetRealTimeClock()), 1487 FakeEncoder(Clock::GetRealTimeClock()),
1487 init_encode_event_(false, false), 1488 init_encode_event_(false, false),
1488 num_initializations_(0) {} 1489 num_initializations_(0) {}
1489 1490
1490 private: 1491 private:
1491 void ModifyVideoConfigs( 1492 void ModifyVideoConfigs(
1492 VideoSendStream::Config* send_config, 1493 VideoSendStream::Config* send_config,
1493 std::vector<VideoReceiveStream::Config>* receive_configs, 1494 std::vector<VideoReceiveStream::Config>* receive_configs,
1494 VideoEncoderConfig* encoder_config) override { 1495 VideoEncoderConfig* encoder_config) override {
1495 send_config->encoder_settings.encoder = this; 1496 send_config->encoder_settings.encoder = this;
1496 encoder_config_ = *encoder_config; 1497 encoder_config_ = encoder_config->Copy();
1497 } 1498 }
1498 1499
1499 void OnVideoStreamsCreated( 1500 void OnVideoStreamsCreated(
1500 VideoSendStream* send_stream, 1501 VideoSendStream* send_stream,
1501 const std::vector<VideoReceiveStream*>& receive_streams) override { 1502 const std::vector<VideoReceiveStream*>& receive_streams) override {
1502 stream_ = send_stream; 1503 stream_ = send_stream;
1503 } 1504 }
1504 1505
1505 int32_t InitEncode(const VideoCodec* config, 1506 int32_t InitEncode(const VideoCodec* config,
1506 int32_t number_of_cores, 1507 int32_t number_of_cores,
1507 size_t max_payload_size) override { 1508 size_t max_payload_size) override {
1508 if (num_initializations_ == 0) { 1509 if (num_initializations_ == 0) {
1509 // Verify default values. 1510 // Verify default values.
1510 EXPECT_EQ(kRealtimeVideo, config->mode); 1511 EXPECT_EQ(kRealtimeVideo, config->mode);
1511 } else { 1512 } else {
1512 // Verify that changed values are propagated. 1513 // Verify that changed values are propagated.
1513 EXPECT_EQ(kScreensharing, config->mode); 1514 EXPECT_EQ(kScreensharing, config->mode);
1514 } 1515 }
1515 ++num_initializations_; 1516 ++num_initializations_;
1516 init_encode_event_.Set(); 1517 init_encode_event_.Set();
1517 return FakeEncoder::InitEncode(config, number_of_cores, max_payload_size); 1518 return FakeEncoder::InitEncode(config, number_of_cores, max_payload_size);
1518 } 1519 }
1519 1520
1520 void PerformTest() override { 1521 void PerformTest() override {
1521 EXPECT_TRUE(init_encode_event_.Wait(kDefaultTimeoutMs)); 1522 EXPECT_TRUE(init_encode_event_.Wait(kDefaultTimeoutMs));
1522 EXPECT_EQ(1u, num_initializations_) << "VideoEncoder not initialized."; 1523 EXPECT_EQ(1u, num_initializations_) << "VideoEncoder not initialized.";
1523 1524
1524 encoder_config_.content_type = VideoEncoderConfig::ContentType::kScreen; 1525 encoder_config_.content_type = VideoEncoderConfig::ContentType::kScreen;
1525 stream_->ReconfigureVideoEncoder(encoder_config_); 1526 stream_->ReconfigureVideoEncoder(std::move(encoder_config_));
1526 EXPECT_TRUE(init_encode_event_.Wait(kDefaultTimeoutMs)); 1527 EXPECT_TRUE(init_encode_event_.Wait(kDefaultTimeoutMs));
1527 EXPECT_EQ(2u, num_initializations_) 1528 EXPECT_EQ(2u, num_initializations_)
1528 << "ReconfigureVideoEncoder did not reinitialize the encoder with " 1529 << "ReconfigureVideoEncoder did not reinitialize the encoder with "
1529 "new encoder settings."; 1530 "new encoder settings.";
1530 } 1531 }
1531 1532
1532 rtc::Event init_encode_event_; 1533 rtc::Event init_encode_event_;
1533 size_t num_initializations_; 1534 size_t num_initializations_;
1534 VideoSendStream* stream_; 1535 VideoSendStream* stream_;
1535 VideoEncoderConfig encoder_config_; 1536 VideoEncoderConfig encoder_config_;
(...skipping 25 matching lines...) Expand all
1561 VideoEncoderConfig* encoder_config) override { 1562 VideoEncoderConfig* encoder_config) override {
1562 send_config->encoder_settings.encoder = this; 1563 send_config->encoder_settings.encoder = this;
1563 send_config->encoder_settings.payload_name = codec_name_; 1564 send_config->encoder_settings.payload_name = codec_name_;
1564 1565
1565 for (size_t i = 0; i < encoder_config->streams.size(); ++i) { 1566 for (size_t i = 0; i < encoder_config->streams.size(); ++i) {
1566 encoder_config->streams[i].temporal_layer_thresholds_bps.resize( 1567 encoder_config->streams[i].temporal_layer_thresholds_bps.resize(
1567 kVideoCodecConfigObserverNumberOfTemporalLayers - 1); 1568 kVideoCodecConfigObserverNumberOfTemporalLayers - 1);
1568 } 1569 }
1569 1570
1570 encoder_config->encoder_specific_settings = &encoder_settings_; 1571 encoder_config->encoder_specific_settings = &encoder_settings_;
1571 encoder_config_ = *encoder_config; 1572 encoder_config_ = encoder_config->Copy();
1572 } 1573 }
1573 1574
1574 void OnVideoStreamsCreated( 1575 void OnVideoStreamsCreated(
1575 VideoSendStream* send_stream, 1576 VideoSendStream* send_stream,
1576 const std::vector<VideoReceiveStream*>& receive_streams) override { 1577 const std::vector<VideoReceiveStream*>& receive_streams) override {
1577 stream_ = send_stream; 1578 stream_ = send_stream;
1578 } 1579 }
1579 1580
1580 int32_t InitEncode(const VideoCodec* config, 1581 int32_t InitEncode(const VideoCodec* config,
1581 int32_t number_of_cores, 1582 int32_t number_of_cores,
1582 size_t max_payload_size) override { 1583 size_t max_payload_size) override {
1583 EXPECT_EQ(video_codec_type_, config->codecType); 1584 EXPECT_EQ(video_codec_type_, config->codecType);
1584 VerifyCodecSpecifics(*config); 1585 VerifyCodecSpecifics(*config);
1585 ++num_initializations_; 1586 ++num_initializations_;
1586 init_encode_event_.Set(); 1587 init_encode_event_.Set();
1587 return FakeEncoder::InitEncode(config, number_of_cores, max_payload_size); 1588 return FakeEncoder::InitEncode(config, number_of_cores, max_payload_size);
1588 } 1589 }
1589 1590
1590 void VerifyCodecSpecifics(const VideoCodec& config) const; 1591 void VerifyCodecSpecifics(const VideoCodec& config) const;
1591 1592
1592 void PerformTest() override { 1593 void PerformTest() override {
1593 EXPECT_TRUE( 1594 EXPECT_TRUE(
1594 init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs)); 1595 init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs));
1595 ASSERT_EQ(1u, num_initializations_) << "VideoEncoder not initialized."; 1596 ASSERT_EQ(1u, num_initializations_) << "VideoEncoder not initialized.";
1596 1597
1597 encoder_settings_.frameDroppingOn = true; 1598 encoder_settings_.frameDroppingOn = true;
1598 stream_->ReconfigureVideoEncoder(encoder_config_); 1599 stream_->ReconfigureVideoEncoder(std::move(encoder_config_));
1599 ASSERT_TRUE( 1600 ASSERT_TRUE(
1600 init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs)); 1601 init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs));
1601 EXPECT_EQ(2u, num_initializations_) 1602 EXPECT_EQ(2u, num_initializations_)
1602 << "ReconfigureVideoEncoder did not reinitialize the encoder with " 1603 << "ReconfigureVideoEncoder did not reinitialize the encoder with "
1603 "new encoder settings."; 1604 "new encoder settings.";
1604 } 1605 }
1605 1606
1606 int32_t Encode(const VideoFrame& input_image, 1607 int32_t Encode(const VideoFrame& input_image,
1607 const CodecSpecificInfo* codec_specific_info, 1608 const CodecSpecificInfo* codec_specific_info,
1608 const std::vector<FrameType>* frame_types) override { 1609 const std::vector<FrameType>* frame_types) override {
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
1785 static const int kMaxBitrateKbps = 413; 1786 static const int kMaxBitrateKbps = 413;
1786 static const int kIncreasedStartBitrateKbps = 451; 1787 static const int kIncreasedStartBitrateKbps = 451;
1787 static const int kIncreasedMaxBitrateKbps = 597; 1788 static const int kIncreasedMaxBitrateKbps = 597;
1788 class EncoderBitrateThresholdObserver : public test::SendTest, 1789 class EncoderBitrateThresholdObserver : public test::SendTest,
1789 public test::FakeEncoder { 1790 public test::FakeEncoder {
1790 public: 1791 public:
1791 EncoderBitrateThresholdObserver() 1792 EncoderBitrateThresholdObserver()
1792 : SendTest(kDefaultTimeoutMs), 1793 : SendTest(kDefaultTimeoutMs),
1793 FakeEncoder(Clock::GetRealTimeClock()), 1794 FakeEncoder(Clock::GetRealTimeClock()),
1794 init_encode_event_(false, false), 1795 init_encode_event_(false, false),
1796 bitrate_changed_event_(false, false),
1795 num_initializations_(0) {} 1797 num_initializations_(0) {}
1796 1798
1797 private: 1799 private:
1798 int32_t InitEncode(const VideoCodec* codecSettings, 1800 int32_t InitEncode(const VideoCodec* codecSettings,
1799 int32_t numberOfCores, 1801 int32_t numberOfCores,
1800 size_t maxPayloadSize) override { 1802 size_t maxPayloadSize) override {
1801 if (num_initializations_ == 0) { 1803 if (num_initializations_ == 0) {
1802 EXPECT_EQ(static_cast<unsigned int>(kMinBitrateKbps), 1804 EXPECT_EQ(static_cast<unsigned int>(kMinBitrateKbps),
1803 codecSettings->minBitrate); 1805 codecSettings->minBitrate);
1804 EXPECT_EQ(static_cast<unsigned int>(kStartBitrateKbps), 1806 EXPECT_EQ(static_cast<unsigned int>(kStartBitrateKbps),
(...skipping 13 matching lines...) Expand all
1818 codecSettings->maxBitrate); 1820 codecSettings->maxBitrate);
1819 EXPECT_EQ(static_cast<unsigned int>(kIncreasedStartBitrateKbps), 1821 EXPECT_EQ(static_cast<unsigned int>(kIncreasedStartBitrateKbps),
1820 codecSettings->startBitrate); 1822 codecSettings->startBitrate);
1821 } 1823 }
1822 ++num_initializations_; 1824 ++num_initializations_;
1823 init_encode_event_.Set(); 1825 init_encode_event_.Set();
1824 return FakeEncoder::InitEncode(codecSettings, numberOfCores, 1826 return FakeEncoder::InitEncode(codecSettings, numberOfCores,
1825 maxPayloadSize); 1827 maxPayloadSize);
1826 } 1828 }
1827 1829
1830 int32_t SetRates(uint32_t newBitRate, uint32_t frameRate) override {
1831 bitrate_changed_event_.Set();
1832 return FakeEncoder::SetRates(newBitRate, frameRate);
1833 }
1834
1828 Call::Config GetSenderCallConfig() override { 1835 Call::Config GetSenderCallConfig() override {
1829 Call::Config config; 1836 Call::Config config;
1830 config.bitrate_config.min_bitrate_bps = kMinBitrateKbps * 1000; 1837 config.bitrate_config.min_bitrate_bps = kMinBitrateKbps * 1000;
1831 config.bitrate_config.start_bitrate_bps = kStartBitrateKbps * 1000; 1838 config.bitrate_config.start_bitrate_bps = kStartBitrateKbps * 1000;
1832 config.bitrate_config.max_bitrate_bps = kMaxBitrateKbps * 1000; 1839 config.bitrate_config.max_bitrate_bps = kMaxBitrateKbps * 1000;
1833 return config; 1840 return config;
1834 } 1841 }
1835 1842
1836 void ModifyVideoConfigs( 1843 void ModifyVideoConfigs(
1837 VideoSendStream::Config* send_config, 1844 VideoSendStream::Config* send_config,
1838 std::vector<VideoReceiveStream::Config>* receive_configs, 1845 std::vector<VideoReceiveStream::Config>* receive_configs,
1839 VideoEncoderConfig* encoder_config) override { 1846 VideoEncoderConfig* encoder_config) override {
1840 send_config->encoder_settings.encoder = this; 1847 send_config->encoder_settings.encoder = this;
1841 // Set bitrates lower/higher than min/max to make sure they are properly 1848 // Set bitrates lower/higher than min/max to make sure they are properly
1842 // capped. 1849 // capped.
1843 encoder_config->streams.front().min_bitrate_bps = kMinBitrateKbps * 1000; 1850 encoder_config->streams.front().min_bitrate_bps = kMinBitrateKbps * 1000;
1844 encoder_config->streams.front().max_bitrate_bps = kMaxBitrateKbps * 1000; 1851 encoder_config->streams.front().max_bitrate_bps = kMaxBitrateKbps * 1000;
1845 encoder_config_ = *encoder_config; 1852 encoder_config_ = encoder_config->Copy();
1846 } 1853 }
1847 1854
1848 void OnCallsCreated(Call* sender_call, Call* receiver_call) override { 1855 void OnCallsCreated(Call* sender_call, Call* receiver_call) override {
1849 call_ = sender_call; 1856 call_ = sender_call;
1850 } 1857 }
1851 1858
1852 void OnVideoStreamsCreated( 1859 void OnVideoStreamsCreated(
1853 VideoSendStream* send_stream, 1860 VideoSendStream* send_stream,
1854 const std::vector<VideoReceiveStream*>& receive_streams) override { 1861 const std::vector<VideoReceiveStream*>& receive_streams) override {
1855 send_stream_ = send_stream; 1862 send_stream_ = send_stream;
1856 } 1863 }
1857 1864
1858 void PerformTest() override { 1865 void PerformTest() override {
1859 ASSERT_TRUE( 1866 ASSERT_TRUE(
1860 init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs)) 1867 init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs))
1861 << "Timed out while waiting encoder to be configured."; 1868 << "Timed out while waiting for encoder to be configured.";
1869 ASSERT_TRUE(
1870 bitrate_changed_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs))
1871 << "Timed out while waiting encoder rate to be set.";
1862 Call::Config::BitrateConfig bitrate_config; 1872 Call::Config::BitrateConfig bitrate_config;
1863 bitrate_config.start_bitrate_bps = kIncreasedStartBitrateKbps * 1000; 1873 bitrate_config.start_bitrate_bps = kIncreasedStartBitrateKbps * 1000;
1864 bitrate_config.max_bitrate_bps = kIncreasedMaxBitrateKbps * 1000; 1874 bitrate_config.max_bitrate_bps = kIncreasedMaxBitrateKbps * 1000;
1865 call_->SetBitrateConfig(bitrate_config); 1875 call_->SetBitrateConfig(bitrate_config);
1866 EXPECT_TRUE(Wait()) 1876 ASSERT_TRUE(
1867 << "Timed out while waiting encoder to be configured."; 1877 bitrate_changed_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs))
1878 << "Timed out while waiting for encoder rate to be set.";
1879
1868 encoder_config_.streams[0].min_bitrate_bps = 0; 1880 encoder_config_.streams[0].min_bitrate_bps = 0;
1869 encoder_config_.streams[0].max_bitrate_bps = kLowerMaxBitrateKbps * 1000; 1881 encoder_config_.streams[0].max_bitrate_bps = kLowerMaxBitrateKbps * 1000;
1870 send_stream_->ReconfigureVideoEncoder(encoder_config_); 1882 send_stream_->ReconfigureVideoEncoder(encoder_config_.Copy());
1871 ASSERT_TRUE( 1883 ASSERT_TRUE(
1872 init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs)); 1884 init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs));
1873 EXPECT_EQ(2, num_initializations_) 1885 EXPECT_EQ(2, num_initializations_)
1874 << "Encoder should have been reconfigured with the new value."; 1886 << "Encoder should have been reconfigured with the new value.";
1875 encoder_config_.streams[0].target_bitrate_bps = 1887 encoder_config_.streams[0].target_bitrate_bps =
1876 encoder_config_.streams[0].min_bitrate_bps; 1888 encoder_config_.streams[0].min_bitrate_bps;
1877 encoder_config_.streams[0].max_bitrate_bps = 1889 encoder_config_.streams[0].max_bitrate_bps =
1878 kIncreasedMaxBitrateKbps * 1000; 1890 kIncreasedMaxBitrateKbps * 1000;
1879 send_stream_->ReconfigureVideoEncoder(encoder_config_); 1891 send_stream_->ReconfigureVideoEncoder(encoder_config_.Copy());
1880 ASSERT_TRUE( 1892 ASSERT_TRUE(
1881 init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs)); 1893 init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs));
1882 EXPECT_EQ(3, num_initializations_) 1894 EXPECT_EQ(3, num_initializations_)
1883 << "Encoder should have been reconfigured with the new value."; 1895 << "Encoder should have been reconfigured with the new value.";
1884 } 1896 }
1885 1897
1886 rtc::Event init_encode_event_; 1898 rtc::Event init_encode_event_;
1899 rtc::Event bitrate_changed_event_;
1887 int num_initializations_; 1900 int num_initializations_;
1888 webrtc::Call* call_; 1901 webrtc::Call* call_;
1889 webrtc::VideoSendStream* send_stream_; 1902 webrtc::VideoSendStream* send_stream_;
1890 webrtc::VideoEncoderConfig encoder_config_; 1903 webrtc::VideoEncoderConfig encoder_config_;
1891 } test; 1904 } test;
1892 1905
1893 RunBaseTest(&test); 1906 RunBaseTest(&test);
1894 } 1907 }
1895 1908
1896 TEST_F(VideoSendStreamTest, ReportsSentResolution) { 1909 TEST_F(VideoSendStreamTest, ReportsSentResolution) {
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1997 std::vector<VideoReceiveStream::Config>* receive_configs, 2010 std::vector<VideoReceiveStream::Config>* receive_configs,
1998 VideoEncoderConfig* encoder_config) override { 2011 VideoEncoderConfig* encoder_config) override {
1999 encoder_config->encoder_specific_settings = &vp9_settings_; 2012 encoder_config->encoder_specific_settings = &vp9_settings_;
2000 send_config->encoder_settings.encoder = vp9_encoder_.get(); 2013 send_config->encoder_settings.encoder = vp9_encoder_.get();
2001 send_config->encoder_settings.payload_name = "VP9"; 2014 send_config->encoder_settings.payload_name = "VP9";
2002 send_config->encoder_settings.payload_type = kVp9PayloadType; 2015 send_config->encoder_settings.payload_type = kVp9PayloadType;
2003 ModifyVideoConfigsHook(send_config, receive_configs, encoder_config); 2016 ModifyVideoConfigsHook(send_config, receive_configs, encoder_config);
2004 EXPECT_EQ(1u, encoder_config->streams.size()); 2017 EXPECT_EQ(1u, encoder_config->streams.size());
2005 encoder_config->streams[0].temporal_layer_thresholds_bps.resize( 2018 encoder_config->streams[0].temporal_layer_thresholds_bps.resize(
2006 vp9_settings_.numberOfTemporalLayers - 1); 2019 vp9_settings_.numberOfTemporalLayers - 1);
2007 encoder_config_ = *encoder_config; 2020 encoder_config_ = encoder_config->Copy();
2008 } 2021 }
2009 2022
2010 void PerformTest() override { 2023 void PerformTest() override {
2011 EXPECT_TRUE(Wait()) << "Test timed out waiting for VP9 packet, num frames " 2024 EXPECT_TRUE(Wait()) << "Test timed out waiting for VP9 packet, num frames "
2012 << frames_sent_; 2025 << frames_sent_;
2013 } 2026 }
2014 2027
2015 Action OnSendRtp(const uint8_t* packet, size_t length) override { 2028 Action OnSendRtp(const uint8_t* packet, size_t length) override {
2016 RTPHeader header; 2029 RTPHeader header;
2017 EXPECT_TRUE(parser_->Parse(packet, length, &header)); 2030 EXPECT_TRUE(parser_->Parse(packet, length, &header));
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
2376 observation_complete_.Set(); 2389 observation_complete_.Set();
2377 } 2390 }
2378 } 2391 }
2379 } test; 2392 } test;
2380 2393
2381 RunBaseTest(&test); 2394 RunBaseTest(&test);
2382 } 2395 }
2383 #endif // !defined(RTC_DISABLE_VP9) 2396 #endif // !defined(RTC_DISABLE_VP9)
2384 2397
2385 } // namespace webrtc 2398 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698