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 3bb565fc9245968e742277336be16e2d72cb2e4c..3c13fdc828a9ac2d2ada27ec0a9be7240a1af7d3 100644 |
--- a/webrtc/video/video_send_stream_tests.cc |
+++ b/webrtc/video/video_send_stream_tests.cc |
@@ -337,6 +337,45 @@ TEST_F(VideoSendStreamTest, SupportsVideoContentType) { |
RunBaseTest(&test); |
} |
+TEST_F(VideoSendStreamTest, SupportsVideoTimingFrames) { |
+ class VideoRotationObserver : public test::SendTest { |
+ public: |
+ VideoRotationObserver() |
+ : SendTest(kDefaultTimeoutMs), timing_frame_observed_(false) { |
+ EXPECT_TRUE(parser_->RegisterRtpHeaderExtension( |
+ kRtpExtensionVideoTiming, test::kVideoTimingExtensionId)); |
+ } |
+ |
+ Action OnSendRtp(const uint8_t* packet, size_t length) override { |
+ RTPHeader header; |
+ EXPECT_TRUE(parser_->Parse(packet, length, &header)); |
+ if (header.extension.hasVideoTiming) { |
+ observation_complete_.Set(); |
+ timing_frame_observed_ = true; |
sprang_webrtc
2017/06/13 14:14:14
Do you need this variable?
ilnik
2017/06/13 14:55:44
You are right, it's not needed, because if observa
|
+ } |
+ return SEND_PACKET; |
+ } |
+ |
+ void ModifyVideoConfigs( |
+ VideoSendStream::Config* send_config, |
+ std::vector<VideoReceiveStream::Config>* receive_configs, |
+ VideoEncoderConfig* encoder_config) override { |
+ send_config->rtp.extensions.clear(); |
+ send_config->rtp.extensions.push_back(RtpExtension( |
+ RtpExtension::kVideoTimingUri, test::kVideoTimingExtensionId)); |
+ } |
+ |
+ void PerformTest() override { |
+ EXPECT_TRUE(Wait()) << "Timed out while waiting for timing frames."; |
+ } |
+ |
+ bool timing_frame_observed_; |
+ } test; |
+ |
+ RunBaseTest(&test); |
+ EXPECT_TRUE(test.timing_frame_observed_); |
+} |
+ |
class FakeReceiveStatistics : public NullReceiveStatistics { |
public: |
FakeReceiveStatistics(uint32_t send_ssrc, |