Index: webrtc/video/vie_encoder_unittest.cc |
diff --git a/webrtc/video/vie_encoder_unittest.cc b/webrtc/video/vie_encoder_unittest.cc |
index 8c57d885be3193234935d85707a2813c4ddd8e7b..a5bc91474d4934b58f5111fa28ff515a2b710ec7 100644 |
--- a/webrtc/video/vie_encoder_unittest.cc |
+++ b/webrtc/video/vie_encoder_unittest.cc |
@@ -131,14 +131,14 @@ class VideoStreamFactory |
class AdaptingFrameForwarder : public test::FrameForwarder { |
public: |
AdaptingFrameForwarder() : adaptation_enabled_(false) {} |
- virtual ~AdaptingFrameForwarder() {} |
+ ~AdaptingFrameForwarder() override {} |
void set_adaptation_enabled(bool enabled) { |
rtc::CritScope cs(&crit_); |
adaptation_enabled_ = enabled; |
} |
- bool adaption_enabled() { |
+ bool adaption_enabled() const { |
rtc::CritScope cs(&crit_); |
return adaptation_enabled_; |
} |
@@ -290,7 +290,7 @@ class ViEEncoderTest : public ::testing::Test { |
: FakeEncoder(Clock::GetRealTimeClock()), |
continue_encode_event_(false, false) {} |
- VideoCodec codec_config() { |
+ VideoCodec codec_config() const { |
rtc::CritScope lock(&crit_sect_); |
return config_; |
} |
@@ -431,12 +431,12 @@ class ViEEncoderTest : public ::testing::Test { |
expect_frames_ = false; |
} |
- int number_of_reconfigurations() { |
+ int number_of_reconfigurations() const { |
rtc::CritScope lock(&crit_); |
return number_of_reconfigurations_; |
} |
- int last_min_transmit_bitrate() { |
+ int last_min_transmit_bitrate() const { |
rtc::CritScope lock(&crit_); |
return min_transmit_bitrate_bps_; |
} |
@@ -874,14 +874,47 @@ TEST_F(ViEEncoderTest, SinkWantsStoredByDegradationPreference) { |
vie_encoder_->Stop(); |
} |
-TEST_F(ViEEncoderTest, StatsTracksAdaptationStats) { |
+TEST_F(ViEEncoderTest, StatsTracksQualityAdaptationStats) { |
vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
- int frame_width = 1280; |
- int frame_height = 720; |
+ const int kWidth = 1280; |
+ const int kHeight = 720; |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(1, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight)); |
+ sink_.WaitForEncodedFrame(1); |
+ VideoSendStream::Stats stats = stats_proxy_->GetStats(); |
+ EXPECT_FALSE(stats.bw_limited_resolution); |
+ EXPECT_EQ(0, stats.number_of_quality_adapt_changes); |
+ |
+ // Trigger adapt down. |
+ vie_encoder_->TriggerQualityLow(); |
+ video_source_.IncomingCapturedFrame(CreateFrame(2, kWidth, kHeight)); |
+ sink_.WaitForEncodedFrame(2); |
+ |
+ stats = stats_proxy_->GetStats(); |
+ EXPECT_TRUE(stats.bw_limited_resolution); |
+ EXPECT_EQ(1, stats.number_of_quality_adapt_changes); |
+ |
+ // Trigger adapt up. |
+ vie_encoder_->TriggerQualityHigh(); |
+ video_source_.IncomingCapturedFrame(CreateFrame(3, kWidth, kHeight)); |
+ sink_.WaitForEncodedFrame(3); |
+ |
+ stats = stats_proxy_->GetStats(); |
+ EXPECT_FALSE(stats.bw_limited_resolution); |
+ EXPECT_EQ(2, stats.number_of_quality_adapt_changes); |
+ EXPECT_EQ(0, stats.number_of_cpu_adapt_changes); |
+ |
+ vie_encoder_->Stop(); |
+} |
+ |
+TEST_F(ViEEncoderTest, StatsTracksCpuAdaptationStats) { |
+ vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
+ |
+ const int kWidth = 1280; |
+ const int kHeight = 720; |
+ |
+ video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(1); |
VideoSendStream::Stats stats = stats_proxy_->GetStats(); |
EXPECT_FALSE(stats.cpu_limited_resolution); |
@@ -889,8 +922,7 @@ TEST_F(ViEEncoderTest, StatsTracksAdaptationStats) { |
// Trigger CPU overuse. |
vie_encoder_->TriggerCpuOveruse(); |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(2, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(2, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(2); |
stats = stats_proxy_->GetStats(); |
@@ -899,13 +931,13 @@ TEST_F(ViEEncoderTest, StatsTracksAdaptationStats) { |
// Trigger CPU normal use. |
vie_encoder_->TriggerCpuNormalUsage(); |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(3, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(3, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(3); |
stats = stats_proxy_->GetStats(); |
EXPECT_FALSE(stats.cpu_limited_resolution); |
EXPECT_EQ(2, stats.number_of_cpu_adapt_changes); |
+ EXPECT_EQ(0, stats.number_of_quality_adapt_changes); |
vie_encoder_->Stop(); |
} |
@@ -913,20 +945,17 @@ TEST_F(ViEEncoderTest, StatsTracksAdaptationStats) { |
TEST_F(ViEEncoderTest, SwitchingSourceKeepsCpuAdaptation) { |
vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
- int frame_width = 1280; |
- int frame_height = 720; |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(1, frame_width, frame_height)); |
+ const int kWidth = 1280; |
+ const int kHeight = 720; |
+ video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(1); |
- |
VideoSendStream::Stats stats = stats_proxy_->GetStats(); |
EXPECT_FALSE(stats.cpu_limited_resolution); |
EXPECT_EQ(0, stats.number_of_cpu_adapt_changes); |
+ // Trigger CPU overuse. |
vie_encoder_->TriggerCpuOveruse(); |
- |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(2, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(2, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(2); |
stats = stats_proxy_->GetStats(); |
EXPECT_TRUE(stats.cpu_limited_resolution); |
@@ -938,8 +967,7 @@ TEST_F(ViEEncoderTest, SwitchingSourceKeepsCpuAdaptation) { |
&new_video_source, |
VideoSendStream::DegradationPreference::kMaintainFramerate); |
- new_video_source.IncomingCapturedFrame( |
- CreateFrame(3, frame_width, frame_height)); |
+ new_video_source.IncomingCapturedFrame(CreateFrame(3, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(3); |
stats = stats_proxy_->GetStats(); |
EXPECT_TRUE(stats.cpu_limited_resolution); |
@@ -950,8 +978,7 @@ TEST_F(ViEEncoderTest, SwitchingSourceKeepsCpuAdaptation) { |
&new_video_source, |
VideoSendStream::DegradationPreference::kDegradationDisabled); |
- new_video_source.IncomingCapturedFrame( |
- CreateFrame(4, frame_width, frame_height)); |
+ new_video_source.IncomingCapturedFrame(CreateFrame(4, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(4); |
stats = stats_proxy_->GetStats(); |
EXPECT_FALSE(stats.cpu_limited_resolution); |
@@ -962,17 +989,15 @@ TEST_F(ViEEncoderTest, SwitchingSourceKeepsCpuAdaptation) { |
&new_video_source, |
VideoSendStream::DegradationPreference::kMaintainFramerate); |
- new_video_source.IncomingCapturedFrame( |
- CreateFrame(5, frame_width, frame_height)); |
+ new_video_source.IncomingCapturedFrame(CreateFrame(5, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(5); |
stats = stats_proxy_->GetStats(); |
EXPECT_TRUE(stats.cpu_limited_resolution); |
EXPECT_EQ(1, stats.number_of_cpu_adapt_changes); |
+ // Trigger CPU normal use. |
vie_encoder_->TriggerCpuNormalUsage(); |
- |
- new_video_source.IncomingCapturedFrame( |
- CreateFrame(6, frame_width, frame_height)); |
+ new_video_source.IncomingCapturedFrame(CreateFrame(6, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(6); |
stats = stats_proxy_->GetStats(); |
EXPECT_FALSE(stats.cpu_limited_resolution); |
@@ -984,60 +1009,59 @@ TEST_F(ViEEncoderTest, SwitchingSourceKeepsCpuAdaptation) { |
TEST_F(ViEEncoderTest, SwitchingSourceKeepsQualityAdaptation) { |
vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
- int frame_width = 1280; |
- int frame_height = 720; |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(1, frame_width, frame_height)); |
+ const int kWidth = 1280; |
+ const int kHeight = 720; |
+ video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(1); |
- |
VideoSendStream::Stats stats = stats_proxy_->GetStats(); |
EXPECT_FALSE(stats.cpu_limited_resolution); |
EXPECT_FALSE(stats.bw_limited_resolution); |
- EXPECT_EQ(0, stats.number_of_cpu_adapt_changes); |
+ EXPECT_EQ(0, stats.number_of_quality_adapt_changes); |
// Set new source with adaptation still enabled. |
test::FrameForwarder new_video_source; |
vie_encoder_->SetSource(&new_video_source, |
VideoSendStream::DegradationPreference::kBalanced); |
- new_video_source.IncomingCapturedFrame( |
- CreateFrame(2, frame_width, frame_height)); |
+ new_video_source.IncomingCapturedFrame(CreateFrame(2, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(2); |
stats = stats_proxy_->GetStats(); |
EXPECT_FALSE(stats.cpu_limited_resolution); |
EXPECT_FALSE(stats.bw_limited_resolution); |
- EXPECT_EQ(0, stats.number_of_cpu_adapt_changes); |
+ EXPECT_EQ(0, stats.number_of_quality_adapt_changes); |
+ // Trigger adapt down. |
vie_encoder_->TriggerQualityLow(); |
- |
- new_video_source.IncomingCapturedFrame( |
- CreateFrame(3, frame_width, frame_height)); |
+ new_video_source.IncomingCapturedFrame(CreateFrame(3, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(3); |
stats = stats_proxy_->GetStats(); |
EXPECT_FALSE(stats.cpu_limited_resolution); |
EXPECT_TRUE(stats.bw_limited_resolution); |
+ EXPECT_EQ(1, stats.number_of_quality_adapt_changes); |
+ // Set new source with adaptation still enabled. |
vie_encoder_->SetSource(&new_video_source, |
VideoSendStream::DegradationPreference::kBalanced); |
- new_video_source.IncomingCapturedFrame( |
- CreateFrame(4, frame_width, frame_height)); |
+ new_video_source.IncomingCapturedFrame(CreateFrame(4, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(4); |
stats = stats_proxy_->GetStats(); |
EXPECT_FALSE(stats.cpu_limited_resolution); |
EXPECT_TRUE(stats.bw_limited_resolution); |
+ EXPECT_EQ(1, stats.number_of_quality_adapt_changes); |
// Set adaptation disabled. |
vie_encoder_->SetSource( |
&new_video_source, |
VideoSendStream::DegradationPreference::kMaintainResolution); |
- new_video_source.IncomingCapturedFrame( |
- CreateFrame(5, frame_width, frame_height)); |
+ new_video_source.IncomingCapturedFrame(CreateFrame(5, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(5); |
stats = stats_proxy_->GetStats(); |
EXPECT_FALSE(stats.cpu_limited_resolution); |
EXPECT_FALSE(stats.bw_limited_resolution); |
+ EXPECT_EQ(1, stats.number_of_quality_adapt_changes); |
+ EXPECT_EQ(0, stats.number_of_cpu_adapt_changes); |
vie_encoder_->Stop(); |
} |
@@ -1088,12 +1112,11 @@ TEST_F(ViEEncoderTest, QualityAdaptationStatsAreResetWhenScalerIsDisabled) { |
TEST_F(ViEEncoderTest, StatsTracksAdaptationStatsWhenSwitchingSource) { |
vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
- int frame_width = 1280; |
- int frame_height = 720; |
+ int kWidth = 1280; |
+ int kHeight = 720; |
int sequence = 1; |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(sequence, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(sequence, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(sequence++); |
VideoSendStream::Stats stats = stats_proxy_->GetStats(); |
@@ -1102,8 +1125,7 @@ TEST_F(ViEEncoderTest, StatsTracksAdaptationStatsWhenSwitchingSource) { |
// Trigger CPU overuse again, should now adapt down. |
vie_encoder_->TriggerCpuOveruse(); |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(sequence, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(sequence, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(sequence++); |
stats = stats_proxy_->GetStats(); |
@@ -1117,7 +1139,7 @@ TEST_F(ViEEncoderTest, StatsTracksAdaptationStatsWhenSwitchingSource) { |
VideoSendStream::DegradationPreference::kMaintainFramerate); |
new_video_source.IncomingCapturedFrame( |
- CreateFrame(sequence, frame_width, frame_height)); |
+ CreateFrame(sequence, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(sequence++); |
stats = stats_proxy_->GetStats(); |
EXPECT_TRUE(stats.cpu_limited_resolution); |
@@ -1128,7 +1150,7 @@ TEST_F(ViEEncoderTest, StatsTracksAdaptationStatsWhenSwitchingSource) { |
&new_video_source, |
VideoSendStream::DegradationPreference::kMaintainResolution); |
new_video_source.IncomingCapturedFrame( |
- CreateFrame(sequence, frame_width, frame_height)); |
+ CreateFrame(sequence, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(sequence++); |
stats = stats_proxy_->GetStats(); |
// Not adapted at first. |
@@ -1144,7 +1166,7 @@ TEST_F(ViEEncoderTest, StatsTracksAdaptationStatsWhenSwitchingSource) { |
stats_proxy_->ResetMockStats(); |
new_video_source.IncomingCapturedFrame( |
- CreateFrame(sequence, frame_width, frame_height)); |
+ CreateFrame(sequence, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(sequence++); |
// Framerate now adapted. |
@@ -1157,7 +1179,7 @@ TEST_F(ViEEncoderTest, StatsTracksAdaptationStatsWhenSwitchingSource) { |
&new_video_source, |
VideoSendStream::DegradationPreference::kDegradationDisabled); |
new_video_source.IncomingCapturedFrame( |
- CreateFrame(sequence, frame_width, frame_height)); |
+ CreateFrame(sequence, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(sequence++); |
stats = stats_proxy_->GetStats(); |
@@ -1177,8 +1199,7 @@ TEST_F(ViEEncoderTest, StatsTracksAdaptationStatsWhenSwitchingSource) { |
vie_encoder_->SetSource( |
&video_source_, |
VideoSendStream::DegradationPreference::kMaintainFramerate); |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(sequence, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(sequence, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(sequence++); |
stats = stats_proxy_->GetStats(); |
EXPECT_TRUE(stats.cpu_limited_resolution); |
@@ -1186,8 +1207,7 @@ TEST_F(ViEEncoderTest, StatsTracksAdaptationStatsWhenSwitchingSource) { |
// Trigger CPU normal usage. |
vie_encoder_->TriggerCpuNormalUsage(); |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(sequence, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(sequence, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(sequence++); |
stats = stats_proxy_->GetStats(); |
EXPECT_FALSE(stats.cpu_limited_resolution); |
@@ -1198,7 +1218,7 @@ TEST_F(ViEEncoderTest, StatsTracksAdaptationStatsWhenSwitchingSource) { |
&new_video_source, |
VideoSendStream::DegradationPreference::kMaintainResolution); |
new_video_source.IncomingCapturedFrame( |
- CreateFrame(sequence, frame_width, frame_height)); |
+ CreateFrame(sequence, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(sequence++); |
stats = stats_proxy_->GetStats(); |
// Disabled, since we previously switched the source too disabled. |
@@ -1208,7 +1228,7 @@ TEST_F(ViEEncoderTest, StatsTracksAdaptationStatsWhenSwitchingSource) { |
// Trigger CPU normal usage. |
vie_encoder_->TriggerCpuNormalUsage(); |
new_video_source.IncomingCapturedFrame( |
- CreateFrame(sequence, frame_width, frame_height)); |
+ CreateFrame(sequence, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(sequence++); |
stats = stats_proxy_->GetStats(); |
EXPECT_FALSE(stats.cpu_limited_resolution); |
@@ -1220,7 +1240,9 @@ TEST_F(ViEEncoderTest, StatsTracksAdaptationStatsWhenSwitchingSource) { |
TEST_F(ViEEncoderTest, StatsTracksPreferredBitrate) { |
vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
- video_source_.IncomingCapturedFrame(CreateFrame(1, 1280, 720)); |
+ const int kWidth = 1280; |
+ const int kHeight = 720; |
+ video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(1); |
VideoSendStream::Stats stats = stats_proxy_->GetStats(); |
@@ -1231,30 +1253,27 @@ TEST_F(ViEEncoderTest, StatsTracksPreferredBitrate) { |
} |
TEST_F(ViEEncoderTest, ScalingUpAndDownDoesNothingWithMaintainResolution) { |
- int frame_width = 1280; |
- int frame_height = 720; |
+ const int kWidth = 1280; |
+ const int kHeight = 720; |
vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
- // Expect no scaling to begin with |
+ // Expect no scaling to begin with. |
EXPECT_FALSE(video_source_.sink_wants().target_pixel_count); |
EXPECT_EQ(std::numeric_limits<int>::max(), |
video_source_.sink_wants().max_pixel_count); |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(1, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(1); |
- // Trigger scale down |
+ // Trigger scale down. |
vie_encoder_->TriggerQualityLow(); |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(2, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(2, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(2); |
// Expect a scale down. |
EXPECT_TRUE(video_source_.sink_wants().max_pixel_count); |
- EXPECT_LT(video_source_.sink_wants().max_pixel_count, |
- frame_width * frame_height); |
+ EXPECT_LT(video_source_.sink_wants().max_pixel_count, kWidth * kHeight); |
// Set adaptation disabled. |
test::FrameForwarder new_video_source; |
@@ -1262,20 +1281,18 @@ TEST_F(ViEEncoderTest, ScalingUpAndDownDoesNothingWithMaintainResolution) { |
&new_video_source, |
VideoSendStream::DegradationPreference::kMaintainResolution); |
- // Trigger scale down |
+ // Trigger scale down. |
vie_encoder_->TriggerQualityLow(); |
- new_video_source.IncomingCapturedFrame( |
- CreateFrame(3, frame_width, frame_height)); |
+ new_video_source.IncomingCapturedFrame(CreateFrame(3, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(3); |
- // Expect no scaling |
+ // Expect no scaling. |
EXPECT_EQ(std::numeric_limits<int>::max(), |
new_video_source.sink_wants().max_pixel_count); |
- // Trigger scale up |
+ // Trigger scale up. |
vie_encoder_->TriggerQualityHigh(); |
- new_video_source.IncomingCapturedFrame( |
- CreateFrame(4, frame_width, frame_height)); |
+ new_video_source.IncomingCapturedFrame(CreateFrame(4, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(4); |
// Expect nothing to change, still no scaling |
@@ -1294,7 +1311,7 @@ TEST_F(ViEEncoderTest, DoesNotScaleBelowSetLimit) { |
video_source_.IncomingCapturedFrame( |
CreateFrame(i, frame_width, frame_height)); |
sink_.WaitForEncodedFrame(i); |
- // Trigger scale down |
+ // Trigger scale down. |
vie_encoder_->TriggerQualityLow(); |
EXPECT_GE(video_source_.sink_wants().max_pixel_count, kMinPixelsPerFrame); |
} |
@@ -1305,20 +1322,18 @@ TEST_F(ViEEncoderTest, DoesNotScaleBelowSetLimit) { |
TEST_F(ViEEncoderTest, UMACpuLimitedResolutionInPercent) { |
vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
- int frame_width = 640; |
- int frame_height = 360; |
+ const int kWidth = 640; |
+ const int kHeight = 360; |
for (int i = 1; i <= SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) { |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(i, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(i, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(i); |
} |
vie_encoder_->TriggerCpuOveruse(); |
for (int i = 1; i <= SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) { |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(SendStatisticsProxy::kMinRequiredMetricsSamples + i, |
- frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame( |
+ SendStatisticsProxy::kMinRequiredMetricsSamples + i, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(SendStatisticsProxy::kMinRequiredMetricsSamples + |
i); |
} |
@@ -1378,12 +1393,12 @@ TEST_F(ViEEncoderTest, CallsBitrateObserver) { |
} |
TEST_F(ViEEncoderTest, DropsFramesAndScalesWhenBitrateIsTooLow) { |
- vie_encoder_->OnBitrateUpdated(kLowTargetBitrateBps, 0, 0); |
- int frame_width = 640; |
- int frame_height = 360; |
+ const int kTooLowBitrateForFrameSizeBps = 10000; |
+ vie_encoder_->OnBitrateUpdated(kTooLowBitrateForFrameSizeBps, 0, 0); |
+ const int kWidth = 640; |
+ const int kHeight = 360; |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(1, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight)); |
// Expect to drop this frame, the wait should time out. |
sink_.ExpectDroppedFrame(); |
@@ -1393,9 +1408,9 @@ TEST_F(ViEEncoderTest, DropsFramesAndScalesWhenBitrateIsTooLow) { |
int last_pixel_count = video_source_.sink_wants().max_pixel_count; |
- // Next frame is scaled |
+ // Next frame is scaled. |
video_source_.IncomingCapturedFrame( |
- CreateFrame(2, frame_width * 3 / 4, frame_height * 3 / 4)); |
+ CreateFrame(2, kWidth * 3 / 4, kHeight * 3 / 4)); |
// Expect to drop this frame, the wait should time out. |
sink_.ExpectDroppedFrame(); |
@@ -1405,33 +1420,31 @@ TEST_F(ViEEncoderTest, DropsFramesAndScalesWhenBitrateIsTooLow) { |
vie_encoder_->Stop(); |
} |
-TEST_F(ViEEncoderTest, NrOfDroppedFramesLimited) { |
- // 1kbps. This can never be achieved. |
- vie_encoder_->OnBitrateUpdated(1000, 0, 0); |
- int frame_width = 640; |
- int frame_height = 360; |
+TEST_F(ViEEncoderTest, NrOfDroppedFramesLimitedWhenBitrateIsTooLow) { |
+ const int kTooLowBitrateForFrameSizeBps = 10000; |
+ vie_encoder_->OnBitrateUpdated(kTooLowBitrateForFrameSizeBps, 0, 0); |
+ const int kWidth = 640; |
+ const int kHeight = 360; |
// We expect the n initial frames to get dropped. |
int i; |
for (i = 1; i <= kMaxInitialFramedrop; ++i) { |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(i, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(i, kWidth, kHeight)); |
sink_.ExpectDroppedFrame(); |
} |
// The n+1th frame should not be dropped, even though it's size is too large. |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(i, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(i, kWidth, kHeight)); |
sink_.WaitForEncodedFrame(i); |
// Expect the sink_wants to specify a scaled frame. |
- EXPECT_LT(video_source_.sink_wants().max_pixel_count, 1000 * 1000); |
+ EXPECT_LT(video_source_.sink_wants().max_pixel_count, kWidth * kHeight); |
vie_encoder_->Stop(); |
} |
TEST_F(ViEEncoderTest, InitialFrameDropOffWithMaintainResolutionPreference) { |
- int frame_width = 640; |
- int frame_height = 360; |
+ const int kWidth = 640; |
+ const int kHeight = 360; |
vie_encoder_->OnBitrateUpdated(kLowTargetBitrateBps, 0, 0); |
// Set degradation preference. |
@@ -1439,8 +1452,7 @@ TEST_F(ViEEncoderTest, InitialFrameDropOffWithMaintainResolutionPreference) { |
&video_source_, |
VideoSendStream::DegradationPreference::kMaintainResolution); |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(1, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight)); |
// Frame should not be dropped, even if it's too large. |
sink_.WaitForEncodedFrame(1); |
@@ -1448,16 +1460,15 @@ TEST_F(ViEEncoderTest, InitialFrameDropOffWithMaintainResolutionPreference) { |
} |
TEST_F(ViEEncoderTest, InitialFrameDropOffWhenEncoderDisabledScaling) { |
- int frame_width = 640; |
- int frame_height = 360; |
+ const int kWidth = 640; |
+ const int kHeight = 360; |
fake_encoder_.SetQualityScaling(false); |
vie_encoder_->OnBitrateUpdated(kLowTargetBitrateBps, 0, 0); |
// Force quality scaler reconfiguration by resetting the source. |
vie_encoder_->SetSource(&video_source_, |
VideoSendStream::DegradationPreference::kBalanced); |
- video_source_.IncomingCapturedFrame( |
- CreateFrame(1, frame_width, frame_height)); |
+ video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight)); |
// Frame should not be dropped, even if it's too large. |
sink_.WaitForEncodedFrame(1); |
@@ -1485,7 +1496,7 @@ TEST_F(ViEEncoderTest, AdaptsResolutionOnOveruse) { |
CreateFrame(2, kFrameWidth, kFrameHeight)); |
sink_.WaitForEncodedFrame((kFrameWidth * 3) / 4, (kFrameHeight * 3) / 4); |
- // Trigger CPU normal use, return to original resolution; |
+ // Trigger CPU normal use, return to original resolution. |
vie_encoder_->TriggerCpuNormalUsage(); |
video_source_.IncomingCapturedFrame( |
CreateFrame(3, kFrameWidth, kFrameHeight)); |