Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(145)

Unified Diff: webrtc/media/engine/webrtcvideoengine2_unittest.cc

Issue 1810973002: Add support for configuring the number of spatial/temporal layers for VP9 through a field trial. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/media/engine/webrtcvideoengine2_unittest.cc
diff --git a/webrtc/media/engine/webrtcvideoengine2_unittest.cc b/webrtc/media/engine/webrtcvideoengine2_unittest.cc
index 8e445d106623088ca4e6a762ebe33c78f691f249..aca40f0a736b20b1a0dbb5b7e10e79f35558b14b 100644
--- a/webrtc/media/engine/webrtcvideoengine2_unittest.cc
+++ b/webrtc/media/engine/webrtcvideoengine2_unittest.cc
@@ -1774,7 +1774,9 @@ TEST_F(WebRtcVideoChannel2Test, VerifyVp8SpecificSettings) {
class Vp9SettingsTest : public WebRtcVideoChannel2Test {
public:
- Vp9SettingsTest() : WebRtcVideoChannel2Test() {
+ Vp9SettingsTest() : Vp9SettingsTest("") {}
+ explicit Vp9SettingsTest(const char* field_trials)
+ : WebRtcVideoChannel2Test(field_trials) {
encoder_factory_.AddSupportedVideoCodecType(webrtc::kVideoCodecVP9, "VP9");
}
virtual ~Vp9SettingsTest() {}
@@ -1848,6 +1850,72 @@ TEST_F(Vp9SettingsTest, VerifyVp9SpecificSettings) {
EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, NULL));
}
+class Vp9SettingsTestWithFieldTrial : public Vp9SettingsTest {
+ public:
+ Vp9SettingsTestWithFieldTrial(const char* field_trials)
+ : Vp9SettingsTest(field_trials) {}
+
+ protected:
+ void VerifySettings(int num_spatial_layers, int num_temporal_layers) {
+ cricket::VideoSendParameters parameters;
+ parameters.codecs.push_back(kVp9Codec);
+ ASSERT_TRUE(channel_->SetSendParameters(parameters));
+
+ FakeVideoSendStream* stream = SetUpSimulcast(false, false);
+
+ cricket::FakeVideoCapturer capturer;
+ EXPECT_EQ(cricket::CS_RUNNING,
+ capturer.Start(capturer.GetSupportedFormats()->front()));
+ EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, &capturer));
+ channel_->SetSend(true);
+
+ EXPECT_TRUE(capturer.CaptureFrame());
+
+ webrtc::VideoCodecVP9 vp9_settings;
+ ASSERT_TRUE(stream->GetVp9Settings(&vp9_settings)) << "No VP9 config set.";
+ EXPECT_EQ(num_spatial_layers, vp9_settings.numberOfSpatialLayers);
+ EXPECT_EQ(num_temporal_layers, vp9_settings.numberOfTemporalLayers);
+
+ EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, NULL));
+ }
+};
+
+class Vp9SettingsTestWithNoFlag : public Vp9SettingsTestWithFieldTrial {
+ public:
+ Vp9SettingsTestWithNoFlag() : Vp9SettingsTestWithFieldTrial("") {}
+};
+
+TEST_F(Vp9SettingsTestWithNoFlag, VerifySettings) {
+ const int kNumSpatialLayers = 1;
+ const int kNumTemporalLayers = 1;
+ VerifySettings(kNumSpatialLayers, kNumTemporalLayers);
+}
+
+class Vp9SettingsTestWithInvalidFlag : public Vp9SettingsTestWithFieldTrial {
+ public:
+ Vp9SettingsTestWithInvalidFlag()
+ : Vp9SettingsTestWithFieldTrial("WebRTC-SupportVP9SVC/Default/") {}
+};
+
+TEST_F(Vp9SettingsTestWithInvalidFlag, VerifySettings) {
+ const int kNumSpatialLayers = 1;
+ const int kNumTemporalLayers = 1;
+ VerifySettings(kNumSpatialLayers, kNumTemporalLayers);
+}
+
+class Vp9SettingsTestWith2SL3TLFlag : public Vp9SettingsTestWithFieldTrial {
+ public:
+ Vp9SettingsTestWith2SL3TLFlag()
+ : Vp9SettingsTestWithFieldTrial(
+ "WebRTC-SupportVP9SVC/EnabledByFlag_2SL3TL/") {}
+};
+
+TEST_F(Vp9SettingsTestWith2SL3TLFlag, VerifySettings) {
+ const int kNumSpatialLayers = 2;
+ const int kNumTemporalLayers = 3;
+ VerifySettings(kNumSpatialLayers, kNumTemporalLayers);
+}
+
TEST_F(WebRtcVideoChannel2Test, AdaptsOnOveruse) {
TestCpuAdaptation(true, false);
}
« webrtc/media/engine/webrtcvideoengine2.cc ('K') | « webrtc/media/engine/webrtcvideoengine2.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698