diff options
Diffstat (limited to 'video/video_send_stream_tests.cc')
-rw-r--r-- | video/video_send_stream_tests.cc | 85 |
1 files changed, 54 insertions, 31 deletions
diff --git a/video/video_send_stream_tests.cc b/video/video_send_stream_tests.cc index 3ee97a9202..4e94d8fc77 100644 --- a/video/video_send_stream_tests.cc +++ b/video/video_send_stream_tests.cc @@ -948,10 +948,10 @@ void VideoSendStreamTest::TestNackRetransmission( non_padding_sequence_numbers_.end() - kNackedPacketsAtOnceCount, non_padding_sequence_numbers_.end()); - RtpRtcpInterface::Configuration config; + RTCPSender::Configuration config; config.clock = Clock::GetRealTimeClock(); config.outgoing_transport = transport_adapter_.get(); - config.rtcp_report_interval_ms = kRtcpIntervalMs; + config.rtcp_report_interval = TimeDelta::Millis(kRtcpIntervalMs); config.local_media_ssrc = kReceiverLocalVideoSsrc; RTCPSender rtcp_sender(config); @@ -1164,11 +1164,11 @@ void VideoSendStreamTest::TestPacketFragmentationSize(VideoFormat format, kVideoSendSsrcs[0], rtp_packet.SequenceNumber(), packets_lost_, // Cumulative lost. loss_ratio); // Loss percent. - RtpRtcpInterface::Configuration config; + RTCPSender::Configuration config; config.clock = Clock::GetRealTimeClock(); config.receive_statistics = &lossy_receive_stats; config.outgoing_transport = transport_adapter_.get(); - config.rtcp_report_interval_ms = kRtcpIntervalMs; + config.rtcp_report_interval = TimeDelta::Millis(kRtcpIntervalMs); config.local_media_ssrc = kVideoSendSsrcs[0]; RTCPSender rtcp_sender(config); @@ -1474,7 +1474,9 @@ TEST_F(VideoSendStreamTest, MinTransmitBitrateRespectsRemb) { if (!rtp_packet.Parse(packet, length)) return DROP_PACKET; RTC_DCHECK(stream_); - VideoSendStream::Stats stats = stream_->GetStats(); + VideoSendStream::Stats stats; + SendTask(RTC_FROM_HERE, task_queue_, + [&]() { stats = stream_->GetStats(); }); if (!stats.substreams.empty()) { EXPECT_EQ(1u, stats.substreams.size()); int total_bitrate_bps = @@ -2422,14 +2424,16 @@ class VideoCodecConfigObserver : public test::SendTest, public test::FakeEncoder { public: VideoCodecConfigObserver(VideoCodecType video_codec_type, - const char* codec_name) + const char* codec_name, + TaskQueueBase* task_queue) : SendTest(VideoSendStreamTest::kDefaultTimeoutMs), FakeEncoder(Clock::GetRealTimeClock()), video_codec_type_(video_codec_type), codec_name_(codec_name), num_initializations_(0), stream_(nullptr), - encoder_factory_(this) { + encoder_factory_(this), + task_queue_(task_queue) { InitCodecSpecifics(); } @@ -2477,7 +2481,9 @@ class VideoCodecConfigObserver : public test::SendTest, // Change encoder settings to actually trigger reconfiguration. encoder_settings_.frameDroppingOn = !encoder_settings_.frameDroppingOn; encoder_config_.encoder_specific_settings = GetEncoderSpecificSettings(); - stream_->ReconfigureVideoEncoder(std::move(encoder_config_)); + SendTask(RTC_FROM_HERE, task_queue_, [&]() { + stream_->ReconfigureVideoEncoder(std::move(encoder_config_)); + }); ASSERT_TRUE( init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs)); EXPECT_EQ(2u, num_initializations_) @@ -2499,6 +2505,7 @@ class VideoCodecConfigObserver : public test::SendTest, VideoSendStream* stream_; test::VideoEncoderProxyFactory encoder_factory_; VideoEncoderConfig encoder_config_; + TaskQueueBase* task_queue_; }; template <> @@ -2531,8 +2538,8 @@ void VideoCodecConfigObserver<VideoCodecH264>::VerifyCodecSpecifics( template <> rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings> VideoCodecConfigObserver<VideoCodecH264>::GetEncoderSpecificSettings() const { - return new rtc::RefCountedObject< - VideoEncoderConfig::H264EncoderSpecificSettings>(encoder_settings_); + return rtc::make_ref_counted<VideoEncoderConfig::H264EncoderSpecificSettings>( + encoder_settings_); } template <> @@ -2565,8 +2572,8 @@ void VideoCodecConfigObserver<VideoCodecVP8>::VerifyCodecSpecifics( template <> rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings> VideoCodecConfigObserver<VideoCodecVP8>::GetEncoderSpecificSettings() const { - return new rtc::RefCountedObject< - VideoEncoderConfig::Vp8EncoderSpecificSettings>(encoder_settings_); + return rtc::make_ref_counted<VideoEncoderConfig::Vp8EncoderSpecificSettings>( + encoder_settings_); } template <> @@ -2599,17 +2606,19 @@ void VideoCodecConfigObserver<VideoCodecVP9>::VerifyCodecSpecifics( template <> rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings> VideoCodecConfigObserver<VideoCodecVP9>::GetEncoderSpecificSettings() const { - return new rtc::RefCountedObject< - VideoEncoderConfig::Vp9EncoderSpecificSettings>(encoder_settings_); + return rtc::make_ref_counted<VideoEncoderConfig::Vp9EncoderSpecificSettings>( + encoder_settings_); } TEST_F(VideoSendStreamTest, EncoderSetupPropagatesVp8Config) { - VideoCodecConfigObserver<VideoCodecVP8> test(kVideoCodecVP8, "VP8"); + VideoCodecConfigObserver<VideoCodecVP8> test(kVideoCodecVP8, "VP8", + task_queue()); RunBaseTest(&test); } TEST_F(VideoSendStreamTest, EncoderSetupPropagatesVp9Config) { - VideoCodecConfigObserver<VideoCodecVP9> test(kVideoCodecVP9, "VP9"); + VideoCodecConfigObserver<VideoCodecVP9> test(kVideoCodecVP9, "VP9", + task_queue()); RunBaseTest(&test); } @@ -2621,7 +2630,8 @@ TEST_F(VideoSendStreamTest, EncoderSetupPropagatesVp9Config) { #define MAYBE_EncoderSetupPropagatesH264Config EncoderSetupPropagatesH264Config #endif TEST_F(VideoSendStreamTest, MAYBE_EncoderSetupPropagatesH264Config) { - VideoCodecConfigObserver<VideoCodecH264> test(kVideoCodecH264, "H264"); + VideoCodecConfigObserver<VideoCodecH264> test(kVideoCodecH264, "H264", + task_queue()); RunBaseTest(&test); } @@ -2726,7 +2736,7 @@ TEST_F(VideoSendStreamTest, TranslatesTwoLayerScreencastToTargetBitrate) { send_config->encoder_settings.encoder_factory = &encoder_factory_; EXPECT_EQ(1u, encoder_config->number_of_streams); encoder_config->video_stream_factory = - new rtc::RefCountedObject<VideoStreamFactory>(); + rtc::make_ref_counted<VideoStreamFactory>(); EXPECT_EQ(1u, encoder_config->simulcast_layers.size()); encoder_config->simulcast_layers[0].num_temporal_layers = 2; encoder_config->content_type = VideoEncoderConfig::ContentType::kScreen; @@ -2904,7 +2914,9 @@ TEST_F(VideoSendStreamTest, ReconfigureBitratesSetsEncoderBitratesCorrectly) { // Encoder rate is capped by EncoderConfig max_bitrate_bps. WaitForSetRates(kMaxBitrateKbps); encoder_config_.max_bitrate_bps = kLowerMaxBitrateKbps * 1000; - send_stream_->ReconfigureVideoEncoder(encoder_config_.Copy()); + SendTask(RTC_FROM_HERE, task_queue_, [&]() { + send_stream_->ReconfigureVideoEncoder(encoder_config_.Copy()); + }); ASSERT_TRUE(create_rate_allocator_event_.Wait( VideoSendStreamTest::kDefaultTimeoutMs)); EXPECT_EQ(2, num_rate_allocator_creations_) @@ -2914,7 +2926,9 @@ TEST_F(VideoSendStreamTest, ReconfigureBitratesSetsEncoderBitratesCorrectly) { EXPECT_EQ(1, num_encoder_initializations_); encoder_config_.max_bitrate_bps = kIncreasedMaxBitrateKbps * 1000; - send_stream_->ReconfigureVideoEncoder(encoder_config_.Copy()); + SendTask(RTC_FROM_HERE, task_queue_, [&]() { + send_stream_->ReconfigureVideoEncoder(encoder_config_.Copy()); + }); ASSERT_TRUE(create_rate_allocator_event_.Wait( VideoSendStreamTest::kDefaultTimeoutMs)); EXPECT_EQ(3, num_rate_allocator_creations_) @@ -2955,11 +2969,12 @@ TEST_F(VideoSendStreamTest, ReportsSentResolution) { class ScreencastTargetBitrateTest : public test::SendTest, public test::FakeEncoder { public: - ScreencastTargetBitrateTest() + explicit ScreencastTargetBitrateTest(TaskQueueBase* task_queue) : SendTest(kDefaultTimeoutMs), test::FakeEncoder(Clock::GetRealTimeClock()), send_stream_(nullptr), - encoder_factory_(this) {} + encoder_factory_(this), + task_queue_(task_queue) {} private: int32_t Encode(const VideoFrame& input_image, @@ -3007,7 +3022,9 @@ TEST_F(VideoSendStreamTest, ReportsSentResolution) { void PerformTest() override { EXPECT_TRUE(Wait()) << "Timed out while waiting for the encoder to send one frame."; - VideoSendStream::Stats stats = send_stream_->GetStats(); + VideoSendStream::Stats stats; + SendTask(RTC_FROM_HERE, task_queue_, + [&]() { stats = send_stream_->GetStats(); }); for (size_t i = 0; i < kNumStreams; ++i) { ASSERT_TRUE(stats.substreams.find(kVideoSendSsrcs[i]) != @@ -3029,7 +3046,8 @@ TEST_F(VideoSendStreamTest, ReportsSentResolution) { VideoSendStream* send_stream_; test::VideoEncoderProxyFactory encoder_factory_; - } test; + TaskQueueBase* const task_queue_; + } test(task_queue()); RunBaseTest(&test); } @@ -3064,8 +3082,9 @@ class Vp9HeaderObserver : public test::SendTest { send_config->rtp.payload_name = "VP9"; send_config->rtp.payload_type = kVp9PayloadType; ModifyVideoConfigsHook(send_config, receive_configs, encoder_config); - encoder_config->encoder_specific_settings = new rtc::RefCountedObject< - VideoEncoderConfig::Vp9EncoderSpecificSettings>(vp9_settings_); + encoder_config->encoder_specific_settings = + rtc::make_ref_counted<VideoEncoderConfig::Vp9EncoderSpecificSettings>( + vp9_settings_); EXPECT_EQ(1u, encoder_config->number_of_streams); EXPECT_EQ(1u, encoder_config->simulcast_layers.size()); encoder_config->simulcast_layers[0].num_temporal_layers = @@ -3799,14 +3818,15 @@ class ContentSwitchTest : public test::SendTest { }; static const uint32_t kMinPacketsToSend = 50; - explicit ContentSwitchTest(T* stream_reset_fun) + explicit ContentSwitchTest(T* stream_reset_fun, TaskQueueBase* task_queue) : SendTest(test::CallTest::kDefaultTimeoutMs), call_(nullptr), state_(StreamState::kBeforeSwitch), send_stream_(nullptr), send_stream_config_(nullptr), packets_sent_(0), - stream_resetter_(stream_reset_fun) { + stream_resetter_(stream_reset_fun), + task_queue_(task_queue) { RTC_DCHECK(stream_resetter_); } @@ -3840,8 +3860,10 @@ class ContentSwitchTest : public test::SendTest { float pacing_factor = internal_send_peer.GetPacingFactorOverride().value_or(0.0f); float expected_pacing_factor = 1.1; // Strict pacing factor. - if (send_stream_->GetStats().content_type == - webrtc::VideoContentType::SCREENSHARE) { + VideoSendStream::Stats stats; + SendTask(RTC_FROM_HERE, task_queue_, + [&stats, stream = send_stream_]() { stats = stream->GetStats(); }); + if (stats.content_type == webrtc::VideoContentType::SCREENSHARE) { expected_pacing_factor = 1.0f; // Currently used pacing factor in ALR. } @@ -3909,6 +3931,7 @@ class ContentSwitchTest : public test::SendTest { VideoEncoderConfig encoder_config_; uint32_t packets_sent_ RTC_GUARDED_BY(mutex_); T* stream_resetter_; + TaskQueueBase* task_queue_; }; TEST_F(VideoSendStreamTest, SwitchesToScreenshareAndBack) { @@ -3928,7 +3951,7 @@ TEST_F(VideoSendStreamTest, SwitchesToScreenshareAndBack) { Start(); }); }; - ContentSwitchTest<decltype(reset_fun)> test(&reset_fun); + ContentSwitchTest<decltype(reset_fun)> test(&reset_fun, task_queue()); RunBaseTest(&test); } |