| Index: webrtc/video/end_to_end_tests.cc
|
| diff --git a/webrtc/video/end_to_end_tests.cc b/webrtc/video/end_to_end_tests.cc
|
| index f876621fd3551bc2409edf7ee9be9754f07b73ab..b76a57db267de4121bd5d65ee65032f6b00d4dcf 100644
|
| --- a/webrtc/video/end_to_end_tests.cc
|
| +++ b/webrtc/video/end_to_end_tests.cc
|
| @@ -3442,6 +3442,59 @@ TEST_F(EndToEndTest, GetStats) {
|
| RunBaseTest(&test);
|
| }
|
|
|
| +TEST_F(EndToEndTest, GetTimingFrameInfoReportsTimingFrames) {
|
| + static const int kExtensionId = 5;
|
| +
|
| + class StatsObserver : public test::EndToEndTest {
|
| + public:
|
| + StatsObserver() : EndToEndTest(kLongTimeoutMs) {}
|
| +
|
| + private:
|
| + std::string CompoundKey(const char* name, uint32_t ssrc) {
|
| + std::ostringstream oss;
|
| + oss << name << "_" << ssrc;
|
| + return oss.str();
|
| + }
|
| +
|
| + 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, kExtensionId));
|
| + for (size_t i = 0; i < receive_configs->size(); ++i) {
|
| + (*receive_configs)[i].rtp.extensions.clear();
|
| + (*receive_configs)[i].rtp.extensions.push_back(
|
| + RtpExtension(RtpExtension::kVideoTimingUri, kExtensionId));
|
| + }
|
| + }
|
| +
|
| + void OnVideoStreamsCreated(
|
| + VideoSendStream* send_stream,
|
| + const std::vector<VideoReceiveStream*>& receive_streams) override {
|
| + receive_streams_ = receive_streams;
|
| + }
|
| +
|
| + void PerformTest() override {
|
| + // No frames reported initially.
|
| + for (size_t i = 0; i < receive_streams_.size(); ++i) {
|
| + EXPECT_FALSE(receive_streams_[i]->GetAndResetTimingFrameInfo());
|
| + }
|
| + // Wait for at least one timing frame to be sent with 100ms grace period.
|
| + SleepMs(kDefaultTimingFramesDelayMs + 100);
|
| + // Check that timing frames are reported for each stream.
|
| + for (size_t i = 0; i < receive_streams_.size(); ++i) {
|
| + EXPECT_TRUE(receive_streams_[i]->GetAndResetTimingFrameInfo());
|
| + }
|
| + }
|
| +
|
| + std::vector<VideoReceiveStream*> receive_streams_;
|
| + } test;
|
| +
|
| + RunBaseTest(&test);
|
| +}
|
| +
|
| class RtcpXrObserver : public test::EndToEndTest {
|
| public:
|
| RtcpXrObserver(bool enable_rrtr, bool enable_target_bitrate)
|
|
|