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

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

Issue 1790703002: Reconfigure video encoders even when not sending. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: feedback + compile 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
« no previous file with comments | « webrtc/media/engine/webrtcvideoengine2.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/media/engine/webrtcvideoengine2_unittest.cc
diff --git a/webrtc/media/engine/webrtcvideoengine2_unittest.cc b/webrtc/media/engine/webrtcvideoengine2_unittest.cc
index c18f35b5e4e9730b0ca28913549caa2bc2017340..8e445d106623088ca4e6a762ebe33c78f691f249 100644
--- a/webrtc/media/engine/webrtcvideoengine2_unittest.cc
+++ b/webrtc/media/engine/webrtcvideoengine2_unittest.cc
@@ -1484,6 +1484,40 @@ TEST_F(WebRtcVideoChannel2Test, NackCanBeEnabledAndDisabled) {
EXPECT_GT(send_stream->GetConfig().rtp.nack.rtp_history_ms, 0);
}
+// This test verifies that new frame sizes reconfigures encoders even though not
+// (yet) sending. The purpose of this is to permit encoding as quickly as
+// possible once we start sending. Likely the frames being input are from the
+// same source that will be sent later, which just means that we're ready
+// earlier.
+TEST_F(WebRtcVideoChannel2Test, ReconfiguresEncodersWhenNotSending) {
+ cricket::VideoSendParameters parameters;
+ parameters.codecs.push_back(kVp8Codec720p);
+ ASSERT_TRUE(channel_->SetSendParameters(parameters));
+ channel_->SetSend(false);
+
+ FakeVideoSendStream* stream = AddSendStream();
+
+ // No frames entered, using default dimensions.
+ std::vector<webrtc::VideoStream> streams = stream->GetVideoStreams();
+ EXPECT_EQ(176u, streams[0].width);
+ EXPECT_EQ(144u, streams[0].height);
+
+ cricket::FakeVideoCapturer capturer;
+ EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, &capturer));
+ EXPECT_EQ(cricket::CS_RUNNING,
+ capturer.Start(capturer.GetSupportedFormats()->front()));
+ EXPECT_TRUE(capturer.CaptureFrame());
+
+ // Frame entered, should be reconfigured to new dimensions.
+ streams = stream->GetVideoStreams();
+ EXPECT_EQ(kVp8Codec720p.width, streams[0].width);
+ EXPECT_EQ(kVp8Codec720p.height, streams[0].height);
+ // No frames should have been actually put in there though.
+ EXPECT_EQ(0, stream->GetNumberOfSwappedFrames());
+
+ EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, NULL));
+}
+
TEST_F(WebRtcVideoChannel2Test, UsesCorrectSettingsForScreencast) {
static const int kScreenshareMinBitrateKbps = 800;
cricket::VideoCodec codec = kVp8Codec360p;
« no previous file with comments | « webrtc/media/engine/webrtcvideoengine2.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698