aboutsummaryrefslogtreecommitdiff
path: root/video/video_send_stream_tests.cc
diff options
context:
space:
mode:
Diffstat (limited to 'video/video_send_stream_tests.cc')
-rw-r--r--video/video_send_stream_tests.cc85
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);
}