Index: webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc |
diff --git a/webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc b/webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc |
index 754a63fb7e58b156a5b7c7d616f57ada52e4ffc3..f6b4beb37983f596eea090727eec6d506940f7eb 100644 |
--- a/webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc |
+++ b/webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc |
@@ -58,13 +58,14 @@ class ScreenshareLayerTest : public ::testing::Test { |
bool base_sync, |
CodecSpecificInfoVP8* vp8_info, |
int* flags) { |
- TemporalReferences tl_config = layers_->UpdateLayerConfig(timestamp); |
+ TemporalLayers::FrameConfig tl_config = |
+ layers_->UpdateLayerConfig(timestamp); |
if (tl_config.drop_frame) { |
*flags = -1; |
return; |
} |
*flags = VP8EncoderImpl::EncodeFlags(tl_config); |
- layers_->PopulateCodecSpecific(base_sync, vp8_info, timestamp); |
+ layers_->PopulateCodecSpecific(base_sync, tl_config, vp8_info, timestamp); |
ASSERT_NE(-1, frame_size_); |
layers_->FrameEncoded(frame_size_, kDefaultQp); |
} |
@@ -111,10 +112,11 @@ class ScreenshareLayerTest : public ::testing::Test { |
int SkipUntilTl(int layer, int timestamp) { |
CodecSpecificInfoVP8 vp8_info; |
for (int i = 0; i < 5; ++i) { |
- TemporalReferences tl_config = layers_->UpdateLayerConfig(timestamp); |
+ TemporalLayers::FrameConfig tl_config = |
+ layers_->UpdateLayerConfig(timestamp); |
VP8EncoderImpl::EncodeFlags(tl_config); |
timestamp += kTimestampDelta5Fps; |
- layers_->PopulateCodecSpecific(false, &vp8_info, timestamp); |
+ layers_->PopulateCodecSpecific(false, tl_config, &vp8_info, timestamp); |
if (vp8_info.temporalIdx != layer) { |
layers_->FrameEncoded(frame_size_, kDefaultQp); |
} else { |
@@ -149,17 +151,20 @@ TEST_F(ScreenshareLayerTest, 1Layer) { |
// One layer screenshare should not use the frame dropper as all frames will |
// belong to the base layer. |
const int kSingleLayerFlags = 0; |
- flags = VP8EncoderImpl::EncodeFlags(layers_->UpdateLayerConfig(timestamp)); |
+ TemporalLayers::FrameConfig tl_config; |
+ tl_config = layers_->UpdateLayerConfig(timestamp); |
+ flags = VP8EncoderImpl::EncodeFlags(tl_config); |
EXPECT_EQ(kSingleLayerFlags, flags); |
- layers_->PopulateCodecSpecific(false, &vp8_info, timestamp); |
+ layers_->PopulateCodecSpecific(false, tl_config, &vp8_info, timestamp); |
EXPECT_EQ(static_cast<uint8_t>(kNoTemporalIdx), vp8_info.temporalIdx); |
EXPECT_FALSE(vp8_info.layerSync); |
EXPECT_EQ(kNoTl0PicIdx, vp8_info.tl0PicIdx); |
layers_->FrameEncoded(frame_size_, kDefaultQp); |
- flags = VP8EncoderImpl::EncodeFlags(layers_->UpdateLayerConfig(timestamp)); |
+ tl_config = layers_->UpdateLayerConfig(timestamp); |
+ flags = VP8EncoderImpl::EncodeFlags(tl_config); |
EXPECT_EQ(kSingleLayerFlags, flags); |
timestamp += kTimestampDelta5Fps; |
- layers_->PopulateCodecSpecific(false, &vp8_info, timestamp); |
+ layers_->PopulateCodecSpecific(false, tl_config, &vp8_info, timestamp); |
EXPECT_EQ(static_cast<uint8_t>(kNoTemporalIdx), vp8_info.temporalIdx); |
EXPECT_FALSE(vp8_info.layerSync); |
EXPECT_EQ(kNoTl0PicIdx, vp8_info.tl0PicIdx); |
@@ -244,8 +249,9 @@ TEST_F(ScreenshareLayerTest, 2LayersSyncAfterTimeout) { |
const int kNumFrames = kMaxSyncPeriodSeconds * kFrameRate * 2 - 1; |
for (int i = 0; i < kNumFrames; ++i) { |
timestamp += kTimestampDelta5Fps; |
- layers_->UpdateLayerConfig(timestamp); |
- layers_->PopulateCodecSpecific(false, &vp8_info, timestamp); |
+ TemporalLayers::FrameConfig tl_config = |
+ layers_->UpdateLayerConfig(timestamp); |
+ layers_->PopulateCodecSpecific(false, tl_config, &vp8_info, timestamp); |
// Simulate TL1 being at least 8 qp steps better. |
if (vp8_info.temporalIdx == 0) { |
@@ -273,8 +279,9 @@ TEST_F(ScreenshareLayerTest, 2LayersSyncAfterSimilarQP) { |
kFrameRate; |
for (int i = 0; i < kNumFrames; ++i) { |
timestamp += kTimestampDelta5Fps; |
- layers_->UpdateLayerConfig(timestamp); |
- layers_->PopulateCodecSpecific(false, &vp8_info, timestamp); |
+ TemporalLayers::FrameConfig tl_config = |
+ layers_->UpdateLayerConfig(timestamp); |
+ layers_->PopulateCodecSpecific(false, tl_config, &vp8_info, timestamp); |
// Simulate TL1 being at least 8 qp steps better. |
if (vp8_info.temporalIdx == 0) { |
@@ -292,9 +299,10 @@ TEST_F(ScreenshareLayerTest, 2LayersSyncAfterSimilarQP) { |
bool bumped_tl0_quality = false; |
for (int i = 0; i < 3; ++i) { |
timestamp += kTimestampDelta5Fps; |
- TemporalReferences tl_config = layers_->UpdateLayerConfig(timestamp); |
+ TemporalLayers::FrameConfig tl_config = |
+ layers_->UpdateLayerConfig(timestamp); |
int flags = VP8EncoderImpl::EncodeFlags(tl_config); |
- layers_->PopulateCodecSpecific(false, &vp8_info, timestamp); |
+ layers_->PopulateCodecSpecific(false, tl_config, &vp8_info, timestamp); |
if (vp8_info.temporalIdx == 0) { |
// Bump TL0 to same quality as TL1. |
@@ -442,9 +450,9 @@ TEST_F(ScreenshareLayerTest, EncoderDrop) { |
layers_->FrameEncoded(0, kDefaultQp); |
timestamp += kTimestampDelta5Fps; |
EXPECT_FALSE(layers_->UpdateConfiguration(&cfg)); |
- EXPECT_EQ(kTl0Flags, |
- VP8EncoderImpl::EncodeFlags(layers_->UpdateLayerConfig(timestamp))); |
- layers_->PopulateCodecSpecific(false, &vp8_info, timestamp); |
+ TemporalLayers::FrameConfig tl_config = layers_->UpdateLayerConfig(timestamp); |
+ EXPECT_EQ(kTl0Flags, VP8EncoderImpl::EncodeFlags(tl_config)); |
+ layers_->PopulateCodecSpecific(false, tl_config, &vp8_info, timestamp); |
layers_->FrameEncoded(frame_size_, kDefaultQp); |
timestamp = SkipUntilTl(0, timestamp); |
@@ -452,10 +460,10 @@ TEST_F(ScreenshareLayerTest, EncoderDrop) { |
EXPECT_LT(cfg.rc_max_quantizer, static_cast<unsigned int>(kDefaultQp)); |
layers_->FrameEncoded(frame_size_, kDefaultQp); |
- layers_->UpdateLayerConfig(timestamp); |
+ tl_config = layers_->UpdateLayerConfig(timestamp); |
timestamp += kTimestampDelta5Fps; |
EXPECT_TRUE(layers_->UpdateConfiguration(&cfg)); |
- layers_->PopulateCodecSpecific(false, &vp8_info, timestamp); |
+ layers_->PopulateCodecSpecific(false, tl_config, &vp8_info, timestamp); |
EXPECT_EQ(cfg.rc_max_quantizer, static_cast<unsigned int>(kDefaultQp)); |
layers_->FrameEncoded(frame_size_, kDefaultQp); |
@@ -465,9 +473,9 @@ TEST_F(ScreenshareLayerTest, EncoderDrop) { |
layers_->FrameEncoded(0, kDefaultQp); |
timestamp += kTimestampDelta5Fps; |
EXPECT_FALSE(layers_->UpdateConfiguration(&cfg)); |
- EXPECT_EQ(kTl1Flags, |
- VP8EncoderImpl::EncodeFlags(layers_->UpdateLayerConfig(timestamp))); |
- layers_->PopulateCodecSpecific(false, &vp8_info, timestamp); |
+ tl_config = layers_->UpdateLayerConfig(timestamp); |
+ EXPECT_EQ(kTl1Flags, VP8EncoderImpl::EncodeFlags(tl_config)); |
+ layers_->PopulateCodecSpecific(false, tl_config, &vp8_info, timestamp); |
layers_->FrameEncoded(frame_size_, kDefaultQp); |
timestamp = SkipUntilTl(1, timestamp); |
@@ -475,10 +483,10 @@ TEST_F(ScreenshareLayerTest, EncoderDrop) { |
EXPECT_LT(cfg.rc_max_quantizer, static_cast<unsigned int>(kDefaultQp)); |
layers_->FrameEncoded(frame_size_, kDefaultQp); |
- layers_->UpdateLayerConfig(timestamp); |
+ tl_config = layers_->UpdateLayerConfig(timestamp); |
timestamp += kTimestampDelta5Fps; |
EXPECT_TRUE(layers_->UpdateConfiguration(&cfg)); |
- layers_->PopulateCodecSpecific(false, &vp8_info, timestamp); |
+ layers_->PopulateCodecSpecific(false, tl_config, &vp8_info, timestamp); |
EXPECT_EQ(cfg.rc_max_quantizer, static_cast<unsigned int>(kDefaultQp)); |
layers_->FrameEncoded(frame_size_, kDefaultQp); |
} |
@@ -522,7 +530,8 @@ TEST_F(ScreenshareLayerTest, UpdatesHistograms) { |
for (int64_t timestamp = 0; |
timestamp < kTimestampDelta5Fps * 5 * metrics::kMinRunTimeInSeconds; |
timestamp += kTimestampDelta5Fps) { |
- TemporalReferences tl_config = layers_->UpdateLayerConfig(timestamp); |
+ TemporalLayers::FrameConfig tl_config = |
+ layers_->UpdateLayerConfig(timestamp); |
if (tl_config.drop_frame) { |
dropped_frame = true; |
continue; |