Delete field trial WebRTC-UseShortVP8TL3Pattern as unused
Bug: webrtc:11503
Change-Id: I38cce7811fc2aa6db9d5bbd40a2c6b586fe30a77
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/347660
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42099}
diff --git a/experiments/field_trials.py b/experiments/field_trials.py
index 406b249..d4bd1d6 100755
--- a/experiments/field_trials.py
+++ b/experiments/field_trials.py
@@ -775,9 +775,6 @@
FieldTrial('WebRTC-UseDifferentiatedCellularCosts',
'webrtc:11473',
date(2024, 4, 1)),
- FieldTrial('WebRTC-UseShortVP8TL3Pattern',
- 'webrtc:8162',
- INDEFINITE),
FieldTrial('WebRTC-UseStandardBytesStats',
'webrtc:10525',
date(2024, 4, 1)),
@@ -893,7 +890,7 @@
]) # yapf: disable
POLICY_EXEMPT_FIELD_TRIALS_DIGEST: str = \
- 'ac66aba5d08866be534a452b59c3de627bf38f3e'
+ '5690e723f0ca378ceb708e02bf2334327c0f64b6'
REGISTERED_FIELD_TRIALS: FrozenSet[FieldTrial] = ACTIVE_FIELD_TRIALS.union(
POLICY_EXEMPT_FIELD_TRIALS)
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index 15face2..acd49d0 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -634,7 +634,6 @@
"../../rtc_base:rate_statistics",
"../../rtc_base:rtc_numerics",
"../../rtc_base:timeutils",
- "../../system_wrappers:field_trial",
"../../system_wrappers:metrics",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
diff --git a/modules/video_coding/codecs/vp8/default_temporal_layers.cc b/modules/video_coding/codecs/vp8/default_temporal_layers.cc
index 8ad30f0..99dfb6e 100644
--- a/modules/video_coding/codecs/vp8/default_temporal_layers.cc
+++ b/modules/video_coding/codecs/vp8/default_temporal_layers.cc
@@ -22,7 +22,6 @@
#include "rtc_base/arraysize.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
-#include "system_wrappers/include/field_trial.h"
namespace webrtc {
DefaultTemporalLayers::PendingFrame::PendingFrame() = default;
@@ -149,54 +148,25 @@
{"SR", {kReferenceAndUpdate, kNone, kNone}},
{"-D", {kReference, kReference, kNone, kFreezeEntropy}}};
case 3:
- if (field_trial::IsEnabled("WebRTC-UseShortVP8TL3Pattern")) {
- // This field trial is intended to check if it is worth using a shorter
- // temporal pattern, trading some coding efficiency for less risk of
- // dropped frames.
- // The coding efficiency will decrease somewhat since the higher layer
- // state is more volatile, but it will be offset slightly by updating
- // the altref buffer with TL2 frames, instead of just referencing lower
- // layers.
- // If a frame is dropped in a higher layer, the jitter
- // buffer on the receive side won't be able to decode any higher layer
- // frame until the next sync frame. So we expect a noticeable decrease
- // in frame drops on links with high packet loss.
-
- // TL0 references and updates the 'last' buffer.
- // TL1 references 'last' and references and updates 'golden'.
- // TL2 references both 'last' & 'golden' and references and updates
- // 'arf'.
- // 2-------2 2-------2 2
- // / __/ / __/ /
- // / __1 / __1 /
- // /___/ /___/ /
- // 0---------------0---------------0-----
- // 0 1 2 3 4 5 6 7 8 9 ...
- return {{"SSS", {kReferenceAndUpdate, kNone, kNone}},
- {"--S", {kReference, kNone, kUpdate}},
- {"-DR", {kReference, kUpdate, kNone}},
- {"--D", {kReference, kReference, kReference, kFreezeEntropy}}};
- } else {
- // All layers can reference but not update the 'alt' buffer, this means
- // that the 'alt' buffer reference is effectively the last keyframe.
- // TL0 also references and updates the 'last' buffer.
- // TL1 also references 'last' and references and updates 'golden'.
- // TL2 references both 'last' and 'golden' but updates no buffer.
- // 2 __2 _____2 __2 2
- // / /____/ / / /
- // / 1---------/-----1 /
- // /_____/ /_____/ /
- // 0---------------0---------------0-----
- // 0 1 2 3 4 5 6 7 8 9 ...
- return {{"SSS", {kReferenceAndUpdate, kNone, kNone}},
- {"--D", {kReference, kNone, kNone, kFreezeEntropy}},
- {"-SS", {kReference, kUpdate, kNone}},
- {"--D", {kReference, kReference, kNone, kFreezeEntropy}},
- {"SRR", {kReferenceAndUpdate, kNone, kNone}},
- {"--D", {kReference, kReference, kNone, kFreezeEntropy}},
- {"-DS", {kReference, kReferenceAndUpdate, kNone}},
- {"--D", {kReference, kReference, kNone, kFreezeEntropy}}};
- }
+ // All layers can reference but not update the 'alt' buffer, this means
+ // that the 'alt' buffer reference is effectively the last keyframe.
+ // TL0 also references and updates the 'last' buffer.
+ // TL1 also references 'last' and references and updates 'golden'.
+ // TL2 references both 'last' and 'golden' but updates no buffer.
+ // 2 __2 _____2 __2 2
+ // / /____/ / / /
+ // / 1---------/-----1 /
+ // /_____/ /_____/ /
+ // 0---------------0---------------0-----
+ // 0 1 2 3 4 5 6 7 8 9 ...
+ return {{"SSS", {kReferenceAndUpdate, kNone, kNone}},
+ {"--D", {kReference, kNone, kNone, kFreezeEntropy}},
+ {"-SS", {kReference, kUpdate, kNone}},
+ {"--D", {kReference, kReference, kNone, kFreezeEntropy}},
+ {"SRR", {kReferenceAndUpdate, kNone, kNone}},
+ {"--D", {kReference, kReference, kNone, kFreezeEntropy}},
+ {"-DS", {kReference, kReferenceAndUpdate, kNone}},
+ {"--D", {kReference, kReference, kNone, kFreezeEntropy}}};
case 4:
// TL0 references and updates only the 'last' buffer.
// TL1 references 'last' and updates and references 'golden'.
@@ -646,23 +616,14 @@
return template_structure;
}
case 3: {
- if (field_trial::IsEnabled("WebRTC-UseShortVP8TL3Pattern")) {
- template_structure.templates.resize(5);
- template_structure.templates[0].T(0).Dtis("SSS");
- template_structure.templates[1].T(0).Dtis("SSS").FrameDiffs({4});
- template_structure.templates[2].T(1).Dtis("-DR").FrameDiffs({2});
- template_structure.templates[3].T(2).Dtis("--S").FrameDiffs({1});
- template_structure.templates[4].T(2).Dtis("--D").FrameDiffs({2, 1});
- } else {
- template_structure.templates.resize(7);
- template_structure.templates[0].T(0).Dtis("SSS");
- template_structure.templates[1].T(0).Dtis("SSS").FrameDiffs({4});
- template_structure.templates[2].T(0).Dtis("SRR").FrameDiffs({4});
- template_structure.templates[3].T(1).Dtis("-SS").FrameDiffs({2});
- template_structure.templates[4].T(1).Dtis("-DS").FrameDiffs({4, 2});
- template_structure.templates[5].T(2).Dtis("--D").FrameDiffs({1});
- template_structure.templates[6].T(2).Dtis("--D").FrameDiffs({3, 1});
- }
+ template_structure.templates.resize(7);
+ template_structure.templates[0].T(0).Dtis("SSS");
+ template_structure.templates[1].T(0).Dtis("SSS").FrameDiffs({4});
+ template_structure.templates[2].T(0).Dtis("SRR").FrameDiffs({4});
+ template_structure.templates[3].T(1).Dtis("-SS").FrameDiffs({2});
+ template_structure.templates[4].T(1).Dtis("-DS").FrameDiffs({4, 2});
+ template_structure.templates[5].T(2).Dtis("--D").FrameDiffs({1});
+ template_structure.templates[6].T(2).Dtis("--D").FrameDiffs({3, 1});
return template_structure;
}
case 4: {
@@ -694,11 +655,7 @@
case 2:
return {{2}, {0}, {0}, {1, 2}};
case 3:
- if (field_trial::IsEnabled("WebRTC-UseShortVP8TL3Pattern")) {
- return {{0}, {0}, {0}, {0, 1, 2}};
- } else {
- return {{4}, {0}, {0}, {0, 2}, {0}, {2, 4}, {2, 4}, {4, 6}};
- }
+ return {{4}, {0}, {0}, {0, 2}, {0}, {2, 4}, {2, 4}, {4, 6}};
case 4:
return {{8}, {0}, {0}, {0, 2},
{0}, {0, 2, 4}, {0, 2, 4}, {0, 4, 6},
diff --git a/modules/video_coding/codecs/vp8/default_temporal_layers_unittest.cc b/modules/video_coding/codecs/vp8/default_temporal_layers_unittest.cc
index ae027a9..ac9c565 100644
--- a/modules/video_coding/codecs/vp8/default_temporal_layers_unittest.cc
+++ b/modules/video_coding/codecs/vp8/default_temporal_layers_unittest.cc
@@ -19,7 +19,6 @@
#include "modules/video_coding/codecs/vp8/libvpx_vp8_encoder.h"
#include "modules/video_coding/include/video_codec_interface.h"
#include "modules/video_coding/utility/simulcast_rate_allocator.h"
-#include "test/field_trial.h"
#include "test/gmock.h"
#include "test/gtest.h"
#include "vpx/vp8cx.h"
@@ -226,221 +225,6 @@
}
}
-TEST_F(TemporalLayersTest, Alternative3Layers) {
- constexpr int kNumLayers = 3;
- ScopedFieldTrials field_trial("WebRTC-UseShortVP8TL3Pattern/Enabled/");
- DefaultTemporalLayers tl(kNumLayers);
- DefaultTemporalLayersChecker checker(kNumLayers);
- tl.OnRatesUpdated(0,
- GetTemporalLayerRates(kDefaultBytesPerFrame,
- kDefaultFramerate, kNumLayers),
- kDefaultFramerate);
- tl.UpdateConfiguration(0);
-
- int expected_flags[8] = {kTemporalUpdateLast,
- kTemporalUpdateAltrefWithoutDependency,
- kTemporalUpdateGoldenWithoutDependency,
- kTemporalUpdateNone,
- kTemporalUpdateLast,
- kTemporalUpdateAltrefWithoutDependency,
- kTemporalUpdateGoldenWithoutDependency,
- kTemporalUpdateNone};
- int expected_temporal_idx[8] = {0, 2, 1, 2, 0, 2, 1, 2};
-
- bool expected_layer_sync[8] = {false, true, true, false,
- false, true, true, false};
-
- unsigned int timestamp = 0;
- for (int i = 0; i < 8; ++i) {
- const bool is_keyframe = (i == 0);
- CodecSpecificInfo info;
- Vp8FrameConfig tl_config = tl.NextFrameConfig(0, timestamp);
- EXPECT_EQ(is_keyframe ? kKeyFrameFlags : expected_flags[i],
- LibvpxVp8Encoder::EncodeFlags(tl_config))
- << i;
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, is_keyframe,
- kDefaultQp, &info);
- EXPECT_TRUE(checker.CheckTemporalConfig(is_keyframe, tl_config));
- EXPECT_EQ(expected_temporal_idx[i], info.codecSpecific.VP8.temporalIdx);
- EXPECT_EQ(expected_temporal_idx[i], tl_config.packetizer_temporal_idx);
- EXPECT_EQ(expected_temporal_idx[i], tl_config.encoder_layer_id);
- EXPECT_EQ(is_keyframe || expected_layer_sync[i],
- info.codecSpecific.VP8.layerSync);
- EXPECT_EQ(expected_layer_sync[i], tl_config.layer_sync);
- timestamp += 3000;
- }
-}
-
-TEST_F(TemporalLayersTest, SearchOrder) {
- constexpr int kNumLayers = 3;
- ScopedFieldTrials field_trial("WebRTC-UseShortVP8TL3Pattern/Enabled/");
- DefaultTemporalLayers tl(kNumLayers);
- DefaultTemporalLayersChecker checker(kNumLayers);
- tl.OnRatesUpdated(0,
- GetTemporalLayerRates(kDefaultBytesPerFrame,
- kDefaultFramerate, kNumLayers),
- kDefaultFramerate);
- tl.UpdateConfiguration(0);
-
- // Use a repeating pattern of tl 0, 2, 1, 2.
- // Tl 0, 1, 2 update last, golden, altref respectively.
-
- // Start with a key-frame. tl_config flags can be ignored.
- uint32_t timestamp = 0;
- Vp8FrameConfig tl_config = tl.NextFrameConfig(0, timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, true, kDefaultQp,
- IgnoredCodecSpecificInfo());
-
- // TL2 frame. First one only references TL0. Updates altref.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
- EXPECT_EQ(tl_config.first_reference, Vp8BufferReference::kLast);
- EXPECT_EQ(tl_config.second_reference, Vp8BufferReference::kNone);
-
- // TL1 frame. Can only reference TL0. Updated golden.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
- EXPECT_EQ(tl_config.first_reference, Vp8BufferReference::kLast);
- EXPECT_EQ(tl_config.second_reference, Vp8BufferReference::kNone);
-
- // TL2 frame. Can reference all three buffers. Golden was the last to be
- // updated, the next to last was altref.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
- EXPECT_EQ(tl_config.first_reference, Vp8BufferReference::kGolden);
- EXPECT_EQ(tl_config.second_reference, Vp8BufferReference::kAltref);
-}
-
-TEST_F(TemporalLayersTest, SearchOrderWithDrop) {
- constexpr int kNumLayers = 3;
- ScopedFieldTrials field_trial("WebRTC-UseShortVP8TL3Pattern/Enabled/");
- DefaultTemporalLayers tl(kNumLayers);
- DefaultTemporalLayersChecker checker(kNumLayers);
- tl.OnRatesUpdated(0,
- GetTemporalLayerRates(kDefaultBytesPerFrame,
- kDefaultFramerate, kNumLayers),
- kDefaultFramerate);
- tl.UpdateConfiguration(0);
-
- // Use a repeating pattern of tl 0, 2, 1, 2.
- // Tl 0, 1, 2 update last, golden, altref respectively.
-
- // Start with a key-frame. tl_config flags can be ignored.
- uint32_t timestamp = 0;
- Vp8FrameConfig tl_config = tl.NextFrameConfig(0, timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, true, kDefaultQp,
- IgnoredCodecSpecificInfo());
-
- // TL2 frame. First one only references TL0. Updates altref.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
- EXPECT_EQ(tl_config.first_reference, Vp8BufferReference::kLast);
- EXPECT_EQ(tl_config.second_reference, Vp8BufferReference::kNone);
-
- // Dropped TL1 frame. Can only reference TL0. Should have updated golden.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, 0, false, 0, nullptr);
-
- // TL2 frame. Can normally reference all three buffers, but golden has not
- // been populated this cycle. Altref was last to be updated, before that last.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
- EXPECT_EQ(tl_config.first_reference, Vp8BufferReference::kAltref);
- EXPECT_EQ(tl_config.second_reference, Vp8BufferReference::kLast);
-}
-
-TEST_F(TemporalLayersTest, DoesNotReferenceDroppedFrames) {
- constexpr int kNumLayers = 3;
- // Use a repeating pattern of tl 0, 2, 1, 2.
- // Tl 0, 1, 2 update last, golden, altref respectively.
- ScopedFieldTrials field_trial("WebRTC-UseShortVP8TL3Pattern/Enabled/");
- DefaultTemporalLayers tl(kNumLayers);
- DefaultTemporalLayersChecker checker(kNumLayers);
- tl.OnRatesUpdated(0,
- GetTemporalLayerRates(kDefaultBytesPerFrame,
- kDefaultFramerate, kNumLayers),
- kDefaultFramerate);
- tl.UpdateConfiguration(0);
-
- // Start with a keyframe.
- uint32_t timestamp = 0;
- Vp8FrameConfig tl_config = tl.NextFrameConfig(0, timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, true, kDefaultQp,
- IgnoredCodecSpecificInfo());
-
- // Dropped TL2 frame.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, 0, false, 0, nullptr);
-
- // Dropped TL1 frame.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, 0, false, 0, nullptr);
-
- // TL2 frame. Can reference all three buffers, valid since golden and altref
- // both contain the last keyframe.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
- EXPECT_TRUE(tl_config.last_buffer_flags & BufferFlags::kReference);
- EXPECT_TRUE(tl_config.golden_buffer_flags & BufferFlags::kReference);
- EXPECT_TRUE(tl_config.arf_buffer_flags & BufferFlags::kReference);
-
- // Restart of cycle!
-
- // TL0 base layer frame, updating and referencing last.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
-
- // TL2 frame, updating altref.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
-
- // TL1 frame, updating golden.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
-
- // TL2 frame. Can still reference all buffer since they have been update this
- // cycle.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
- EXPECT_TRUE(tl_config.last_buffer_flags & BufferFlags::kReference);
- EXPECT_TRUE(tl_config.golden_buffer_flags & BufferFlags::kReference);
- EXPECT_TRUE(tl_config.arf_buffer_flags & BufferFlags::kReference);
-
- // Restart of cycle!
-
- // TL0 base layer frame, updating and referencing last.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
-
- // Dropped TL2 frame.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, 0, false, 0, nullptr);
-
- // Dropped TL1 frame.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, 0, false, 0, nullptr);
-
- // TL2 frame. This time golden and altref contain data from the previous cycle
- // and cannot be referenced.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
- EXPECT_TRUE(tl_config.last_buffer_flags & BufferFlags::kReference);
- EXPECT_FALSE(tl_config.golden_buffer_flags & BufferFlags::kReference);
- EXPECT_FALSE(tl_config.arf_buffer_flags & BufferFlags::kReference);
-}
-
TEST_F(TemporalLayersTest, DoesNotReferenceUnlessGuaranteedToExist) {
constexpr int kNumLayers = 3;
// Use a repeating pattern of tl 0, 2, 1, 2.
@@ -509,69 +293,6 @@
EXPECT_FALSE(tl_config.arf_buffer_flags & BufferFlags::kReference);
}
-TEST_F(TemporalLayersTest, DoesNotReferenceUnlessGuaranteedToExistLongDelay) {
- constexpr int kNumLayers = 3;
- // Use a repeating pattern of tl 0, 2, 1, 2.
- // Tl 0, 1 updates last, golden, altref respectively.
- ScopedFieldTrials field_trial("WebRTC-UseShortVP8TL3Pattern/Enabled/");
- DefaultTemporalLayers tl(kNumLayers);
- DefaultTemporalLayersChecker checker(kNumLayers);
- tl.OnRatesUpdated(0,
- GetTemporalLayerRates(kDefaultBytesPerFrame,
- kDefaultFramerate, kNumLayers),
- kDefaultFramerate);
- tl.UpdateConfiguration(0);
-
- // Start with a keyframe.
- uint32_t timestamp = 0;
- Vp8FrameConfig tl_config = tl.NextFrameConfig(0, timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, true, kDefaultQp,
- IgnoredCodecSpecificInfo());
-
- // Do a full cycle of the pattern.
- for (int i = 0; i < 3; ++i) {
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
- }
-
- // TL0 base layer frame, starting the cycle over.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
-
- // TL2 frame.
- tl_config = tl.NextFrameConfig(0, ++timestamp);
- tl.OnEncodeDone(0, timestamp, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
-
- // Encoder has a hiccup and builds a queue, so frame encoding is delayed.
- // Encoded, but delayed frames in TL 1, 2.
- tl_config = tl.NextFrameConfig(0, timestamp + 1);
- tl_config = tl.NextFrameConfig(0, timestamp + 2);
-
- // Restart of the pattern!
-
- // Encoded, but delayed frames in TL 2, 1.
- tl_config = tl.NextFrameConfig(0, timestamp + 3);
- tl_config = tl.NextFrameConfig(0, timestamp + 4);
-
- // TL1 frame from last cycle is ready.
- tl.OnEncodeDone(0, timestamp + 1, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
- // TL2 frame from last cycle is ready.
- tl.OnEncodeDone(0, timestamp + 2, kDefaultBytesPerFrame, false, kDefaultQp,
- IgnoredCodecSpecificInfo());
-
- // TL2 frame, that should be referencing all buffers, but altref and golden
- // haven not been updated this cycle. (Don't be fooled by the late frames from
- // the last cycle!)
- tl_config = tl.NextFrameConfig(0, timestamp + 5);
- EXPECT_TRUE(tl_config.last_buffer_flags & BufferFlags::kReference);
- EXPECT_FALSE(tl_config.golden_buffer_flags & BufferFlags::kReference);
- EXPECT_FALSE(tl_config.arf_buffer_flags & BufferFlags::kReference);
-}
-
TEST_F(TemporalLayersTest, KeyFrame) {
constexpr int kNumLayers = 3;
DefaultTemporalLayers tl(kNumLayers);
diff --git a/video/full_stack_tests.cc b/video/full_stack_tests.cc
index 5abfa92..892359f 100644
--- a/video/full_stack_tests.cc
+++ b/video/full_stack_tests.cc
@@ -649,56 +649,6 @@
fixture->RunWithAnalyzer(conf_motion_hd);
}
-TEST(FullStackTest, Conference_Motion_Hd_3tl_Alt_Moderate_Limits) {
- test::ScopedFieldTrials field_trial(
- AppendFieldTrials("WebRTC-UseShortVP8TL3Pattern/Enabled/"));
- auto fixture = CreateVideoQualityTestFixture();
- ParamsWithLogging conf_motion_hd;
- conf_motion_hd.call.send_side_bwe = true;
- conf_motion_hd.video[0] = {
- true, 1280,
- 720, 50,
- 30000, 3000000,
- 3000000, false,
- "VP8", 3,
- -1, 0,
- false, false,
- false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
- conf_motion_hd.analyzer = {"conference_motion_hd_3tl_alt_moderate_limits",
- 0.0, 0.0, kFullStackTestDurationSecs};
- conf_motion_hd.config->queue_length_packets = 50;
- conf_motion_hd.config->loss_percent = 3;
- conf_motion_hd.config->queue_delay_ms = 100;
- conf_motion_hd.config->link_capacity_kbps = 2000;
- fixture->RunWithAnalyzer(conf_motion_hd);
-}
-
-TEST(FullStackTest, Conference_Motion_Hd_3tl_Alt_Heavy_Moderate_Limits) {
- auto fixture = CreateVideoQualityTestFixture();
- test::ScopedFieldTrials field_trial(
- AppendFieldTrials("WebRTC-UseShortVP8TL3Pattern/Enabled/"
- "WebRTC-UseBaseHeavyVP8TL3RateAllocation/Enabled/"));
- ParamsWithLogging conf_motion_hd;
- conf_motion_hd.call.send_side_bwe = true;
- conf_motion_hd.video[0] = {
- true, 1280,
- 720, 50,
- 30000, 3000000,
- 3000000, false,
- "VP8", 3,
- -1, 0,
- false, false,
- false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
- conf_motion_hd.analyzer = {
- "conference_motion_hd_3tl_alt_heavy_moderate_limits", 0.0, 0.0,
- kFullStackTestDurationSecs};
- conf_motion_hd.config->queue_length_packets = 50;
- conf_motion_hd.config->loss_percent = 3;
- conf_motion_hd.config->queue_delay_ms = 100;
- conf_motion_hd.config->link_capacity_kbps = 2000;
- fixture->RunWithAnalyzer(conf_motion_hd);
-}
-
TEST(FullStackTest, Foreman_Cif_30kbps_AV1) {
auto fixture = CreateVideoQualityTestFixture();
ParamsWithLogging foreman_cif;
diff --git a/video/pc_full_stack_tests.cc b/video/pc_full_stack_tests.cc
index f423e4b..a4d3cda 100644
--- a/video/pc_full_stack_tests.cc
+++ b/video/pc_full_stack_tests.cc
@@ -914,58 +914,6 @@
fixture->RunWithAnalyzer(conf_motion_hd);
}
-// TODO(bugs.webrtc.org/10639) requires simulcast/SVC support in PC framework
-TEST(PCFullStackTest, ConferenceMotionHd3TLModerateLimitsAltTLPattern) {
- test::ScopedFieldTrials field_trial(
- AppendFieldTrials("WebRTC-UseShortVP8TL3Pattern/Enabled/"));
- auto fixture = CreateVideoQualityTestFixture();
- ParamsWithLogging conf_motion_hd;
- conf_motion_hd.call.send_side_bwe = true;
- conf_motion_hd.video[0] = {
- true, 1280,
- 720, 50,
- 30000, 3000000,
- 3000000, false,
- "VP8", 3,
- -1, 0,
- false, false,
- false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
- conf_motion_hd.analyzer = {"conference_motion_hd_3tl_alt_moderate_limits",
- 0.0, 0.0, kTestDurationSec};
- conf_motion_hd.config->queue_length_packets = 50;
- conf_motion_hd.config->loss_percent = 3;
- conf_motion_hd.config->queue_delay_ms = 100;
- conf_motion_hd.config->link_capacity_kbps = 2000;
- fixture->RunWithAnalyzer(conf_motion_hd);
-}
-
-// TODO(bugs.webrtc.org/10639) requires simulcast/SVC support in PC framework
-TEST(PCFullStackTest,
- ConferenceMotionHd3TLModerateLimitsAltTLPatternAndBaseHeavyTLAllocation) {
- auto fixture = CreateVideoQualityTestFixture();
- test::ScopedFieldTrials field_trial(
- AppendFieldTrials("WebRTC-UseShortVP8TL3Pattern/Enabled/"
- "WebRTC-UseBaseHeavyVP8TL3RateAllocation/Enabled/"));
- ParamsWithLogging conf_motion_hd;
- conf_motion_hd.call.send_side_bwe = true;
- conf_motion_hd.video[0] = {
- true, 1280,
- 720, 50,
- 30000, 3000000,
- 3000000, false,
- "VP8", 3,
- -1, 0,
- false, false,
- false, ClipNameToClipPath("ConferenceMotion_1280_720_50")};
- conf_motion_hd.analyzer = {
- "conference_motion_hd_3tl_alt_heavy_moderate_limits", 0.0, 0.0,
- kTestDurationSec};
- conf_motion_hd.config->queue_length_packets = 50;
- conf_motion_hd.config->loss_percent = 3;
- conf_motion_hd.config->queue_delay_ms = 100;
- conf_motion_hd.config->link_capacity_kbps = 2000;
- fixture->RunWithAnalyzer(conf_motion_hd);
-}
*/
#if defined(RTC_ENABLE_VP9)