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 f729654cc7adac4792202af04476cafb6dba36d8..d80507aa010827f53905597a7f535794f8a2858e 100644 |
--- a/webrtc/video/video_send_stream_tests.cc |
+++ b/webrtc/video/video_send_stream_tests.cc |
@@ -57,6 +57,8 @@ class VideoSendStreamTest : public test::CallTest { |
void TestVp9NonFlexMode(uint8_t num_temporal_layers, |
uint8_t num_spatial_layers); |
+ |
+ void TestRequestSourceRotateVideo(bool support_orientation_ext); |
}; |
TEST_F(VideoSendStreamTest, CanStartStartedStream) { |
@@ -1656,7 +1658,8 @@ TEST_F(VideoSendStreamTest, CapturesTextureAndVideoFrames) { |
video_send_stream_->Start(); |
test::FrameForwarder forwarder; |
- video_send_stream_->SetSource(&forwarder); |
+ video_send_stream_->SetSource( |
+ &forwarder, VideoSendStream::DegradationPreference::kBalanced); |
for (size_t i = 0; i < input_frames.size(); i++) { |
forwarder.IncomingCapturedFrame(input_frames[i]); |
// Wait until the output frame is received before sending the next input |
@@ -1664,7 +1667,8 @@ TEST_F(VideoSendStreamTest, CapturesTextureAndVideoFrames) { |
observer.WaitOutputFrame(); |
} |
video_send_stream_->Stop(); |
- video_send_stream_->SetSource(nullptr); |
+ video_send_stream_->SetSource( |
+ nullptr, VideoSendStream::DegradationPreference::kBalanced); |
// Test if the input and output frames are the same. render_time_ms and |
// timestamp are not compared because capturer sets those values. |
@@ -2879,4 +2883,37 @@ TEST_F(VideoSendStreamTest, Vp9FlexModeRefCount) { |
} |
#endif // !defined(RTC_DISABLE_VP9) |
+void VideoSendStreamTest::TestRequestSourceRotateVideo( |
+ bool support_orientation_ext) { |
+ CreateSenderCall(Call::Config(&event_log_)); |
+ |
+ test::NullTransport transport; |
+ CreateSendConfig(1, 0, &transport); |
+ video_send_config_.rtp.extensions.clear(); |
+ if (support_orientation_ext) { |
+ video_send_config_.rtp.extensions.push_back( |
+ RtpExtension(RtpExtension::kVideoRotationUri, 1)); |
+ } |
+ |
+ CreateVideoStreams(); |
+ test::FrameForwarder forwarder; |
+ video_send_stream_->SetSource( |
+ &forwarder, VideoSendStream::DegradationPreference::kBalanced); |
+ |
+ EXPECT_TRUE(forwarder.sink_wants().rotation_applied != |
+ support_orientation_ext); |
+ |
+ DestroyStreams(); |
+} |
+ |
+TEST_F(VideoSendStreamTest, |
+ RequestSourceRotateIfVideoOrientationExtensionNotSupported) { |
+ TestRequestSourceRotateVideo(false); |
+} |
+ |
+TEST_F(VideoSendStreamTest, |
+ DoNotRequestsRotationIfVideoOrientationExtensionSupported) { |
+ TestRequestSourceRotateVideo(true); |
+} |
åsapersson
2016/11/01 08:04:55
Maybe also add a test that verifies the rtp header
perkj_webrtc
2016/11/01 18:00:41
ok, I did not add VideoRotation but I guess it doe
|
+ |
} // namespace webrtc |