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

Unified Diff: webrtc/video/video_send_stream_tests.cc

Issue 1328113004: Work on flexible mode and screen sharing. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Use alt_fb_idx for keyframes, fully initialize structure. Created 5 years, 1 month 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/video/video_send_stream_tests.cc
diff --git a/webrtc/video/video_send_stream_tests.cc b/webrtc/video/video_send_stream_tests.cc
index 59011a6162724e5acf1762c51a18d4f4ca42ccec..541ee76910aa7796ccbd5c95008dce1eba7f75d2 100644
--- a/webrtc/video/video_send_stream_tests.cc
+++ b/webrtc/video/video_send_stream_tests.cc
@@ -1793,7 +1793,10 @@ class VP9HeaderObeserver : public test::SendTest {
VP9HeaderObeserver()
: SendTest(VideoSendStreamTest::kDefaultTimeoutMs),
vp9_encoder_(VP9Encoder::Create()),
- vp9_settings_(VideoEncoder::GetDefaultVp9Settings()) {}
+ vp9_settings_(VideoEncoder::GetDefaultVp9Settings()) {
+ vp9_settings_.numberOfTemporalLayers = 1;
+ vp9_settings_.numberOfSpatialLayers = 2;
+ }
virtual void ModifyConfigsHook(
VideoSendStream::Config* send_config,
@@ -1809,6 +1812,7 @@ class VP9HeaderObeserver : public test::SendTest {
std::vector<VideoReceiveStream::Config>* receive_configs,
VideoEncoderConfig* encoder_config) override {
encoder_config->encoder_specific_settings = &vp9_settings_;
+ encoder_config->content_type = VideoEncoderConfig::ContentType::kScreen;
send_config->encoder_settings.encoder = vp9_encoder_.get();
send_config->encoder_settings.payload_name = "VP9";
send_config->encoder_settings.payload_type = kVp9PayloadType;
@@ -1857,10 +1861,17 @@ class VP9HeaderObeserver : public test::SendTest {
VideoCodecVP9 vp9_settings_;
};
-TEST_F(VideoSendStreamTest, VP9NoFlexMode) {
- class NoFlexibleMode : public VP9HeaderObeserver {
+TEST_F(VideoSendStreamTest, DISABLED_VP9FlexMode) {
+ class FlexibleMode : public VP9HeaderObeserver {
+ void ModifyConfigsHook(
+ VideoSendStream::Config* send_config,
+ std::vector<VideoReceiveStream::Config>* receive_configs,
+ VideoEncoderConfig* encoder_config) override {
+ vp9_settings_.flexibleMode = true;
+ }
+
void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) override {
- EXPECT_FALSE(vp9videoHeader->flexible_mode);
+ EXPECT_TRUE(vp9videoHeader->flexible_mode);
observation_complete_->Set();
}
} test;
@@ -1868,7 +1879,7 @@ TEST_F(VideoSendStreamTest, VP9NoFlexMode) {
RunBaseTest(&test, FakeNetworkPipe::Config());
}
-TEST_F(VideoSendStreamTest, DISABLED_VP9FlexMode) {
+TEST_F(VideoSendStreamTest, VP9FlexModeHasPictureId) {
class FlexibleMode : public VP9HeaderObeserver {
void ModifyConfigsHook(
VideoSendStream::Config* send_config,
@@ -1878,13 +1889,55 @@ TEST_F(VideoSendStreamTest, DISABLED_VP9FlexMode) {
}
void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) override {
- EXPECT_TRUE(vp9videoHeader->flexible_mode);
+ EXPECT_NE(vp9videoHeader->picture_id, kNoPictureId);
observation_complete_->Set();
}
+ } test;
+
+ RunBaseTest(&test, FakeNetworkPipe::Config());
+}
+
+TEST_F(VideoSendStreamTest, VP9FlexModeRefCount) {
+ class FlexibleMode : public VP9HeaderObeserver {
+ void ModifyConfigsHook(
+ VideoSendStream::Config* send_config,
+ std::vector<VideoReceiveStream::Config>* receive_configs,
+ VideoEncoderConfig* encoder_config) override {
+ vp9_settings_.flexibleMode = true;
+ }
+
+ void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) override {
+ EXPECT_TRUE(vp9videoHeader->flexible_mode);
+ if (vp9videoHeader->inter_pic_predicted) {
+ EXPECT_GT(vp9videoHeader->num_ref_pics, 0u);
+ observation_complete_->Set();
+ }
+ }
+ } test;
+
+ RunBaseTest(&test, FakeNetworkPipe::Config());
+}
+
+TEST_F(VideoSendStreamTest, VP9FlexModeRefs) {
+ class FlexibleMode : public VP9HeaderObeserver {
+ void ModifyConfigsHook(
+ VideoSendStream::Config* send_config,
+ std::vector<VideoReceiveStream::Config>* receive_configs,
+ VideoEncoderConfig* encoder_config) override {
+ vp9_settings_.flexibleMode = true;
+ }
+
+ void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) override {
+ EXPECT_TRUE(vp9videoHeader->flexible_mode);
+ if (vp9videoHeader->inter_pic_predicted) {
+ EXPECT_GT(vp9videoHeader->num_ref_pics, 0u);
+ observation_complete_->Set();
+ }
+ }
} test;
RunBaseTest(&test, FakeNetworkPipe::Config());
}
-} // namespace webrtc
+} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698