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

Side by Side Diff: webrtc/video/end_to_end_tests.cc

Issue 2946413002: Report timing frames info in GetStats. (Closed)
Patch Set: rebase Created 3 years, 5 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 #include <algorithm> 10 #include <algorithm>
(...skipping 3422 matching lines...) Expand 10 before | Expand all | Expand 10 after
3433 std::set<uint32_t> expected_send_ssrcs_; 3433 std::set<uint32_t> expected_send_ssrcs_;
3434 std::string expected_cname_; 3434 std::string expected_cname_;
3435 3435
3436 rtc::Event check_stats_event_; 3436 rtc::Event check_stats_event_;
3437 ReceiveStreamRenderer receive_stream_renderer_; 3437 ReceiveStreamRenderer receive_stream_renderer_;
3438 } test; 3438 } test;
3439 3439
3440 RunBaseTest(&test); 3440 RunBaseTest(&test);
3441 } 3441 }
3442 3442
3443 TEST_F(EndToEndTest, GetTimingFrameInfoReportsTimingFrames) {
3444 static const int kExtensionId = 5;
3445
3446 class StatsObserver : public test::EndToEndTest {
3447 public:
3448 StatsObserver() : EndToEndTest(kLongTimeoutMs) {}
3449
3450 private:
3451 std::string CompoundKey(const char* name, uint32_t ssrc) {
3452 std::ostringstream oss;
3453 oss << name << "_" << ssrc;
3454 return oss.str();
3455 }
3456
3457 void ModifyVideoConfigs(
3458 VideoSendStream::Config* send_config,
3459 std::vector<VideoReceiveStream::Config>* receive_configs,
3460 VideoEncoderConfig* encoder_config) override {
3461 send_config->rtp.extensions.clear();
3462 send_config->rtp.extensions.push_back(
3463 RtpExtension(RtpExtension::kVideoTimingUri, kExtensionId));
3464 for (size_t i = 0; i < receive_configs->size(); ++i) {
3465 (*receive_configs)[i].rtp.extensions.clear();
3466 (*receive_configs)[i].rtp.extensions.push_back(
3467 RtpExtension(RtpExtension::kVideoTimingUri, kExtensionId));
3468 }
3469 }
3470
3471 void OnVideoStreamsCreated(
3472 VideoSendStream* send_stream,
3473 const std::vector<VideoReceiveStream*>& receive_streams) override {
3474 receive_streams_ = receive_streams;
3475 }
3476
3477 void PerformTest() override {
3478 // No frames reported initially.
3479 for (size_t i = 0; i < receive_streams_.size(); ++i) {
3480 EXPECT_FALSE(receive_streams_[i]->GetTimingFrameInfo());
3481 }
3482 // Wait for at least one timing frame to be sent with 100ms grace period.
3483 SleepMs(kDefaultTimingFramesDelayMs + 100);
3484 // Check that timing frames are reported for each stream.
3485 for (size_t i = 0; i < receive_streams_.size(); ++i) {
3486 EXPECT_TRUE(receive_streams_[i]->GetTimingFrameInfo());
3487 }
3488 }
3489
3490 std::vector<VideoReceiveStream*> receive_streams_;
3491 } test;
3492
3493 RunBaseTest(&test);
3494 }
3495
3443 class RtcpXrObserver : public test::EndToEndTest { 3496 class RtcpXrObserver : public test::EndToEndTest {
3444 public: 3497 public:
3445 RtcpXrObserver(bool enable_rrtr, bool enable_target_bitrate) 3498 RtcpXrObserver(bool enable_rrtr, bool enable_target_bitrate)
3446 : EndToEndTest(test::CallTest::kDefaultTimeoutMs), 3499 : EndToEndTest(test::CallTest::kDefaultTimeoutMs),
3447 enable_rrtr_(enable_rrtr), 3500 enable_rrtr_(enable_rrtr),
3448 enable_target_bitrate_(enable_target_bitrate), 3501 enable_target_bitrate_(enable_target_bitrate),
3449 sent_rtcp_sr_(0), 3502 sent_rtcp_sr_(0),
3450 sent_rtcp_rr_(0), 3503 sent_rtcp_rr_(0),
3451 sent_rtcp_rrtr_(0), 3504 sent_rtcp_rrtr_(0),
3452 sent_rtcp_target_bitrate_(false), 3505 sent_rtcp_target_bitrate_(false),
(...skipping 1249 matching lines...) Expand 10 before | Expand all | Expand 10 after
4702 std::unique_ptr<VideoEncoder> encoder_; 4755 std::unique_ptr<VideoEncoder> encoder_;
4703 std::unique_ptr<VideoDecoder> decoder_; 4756 std::unique_ptr<VideoDecoder> decoder_;
4704 rtc::CriticalSection crit_; 4757 rtc::CriticalSection crit_;
4705 int recorded_frames_ GUARDED_BY(crit_); 4758 int recorded_frames_ GUARDED_BY(crit_);
4706 } test(this); 4759 } test(this);
4707 4760
4708 RunBaseTest(&test); 4761 RunBaseTest(&test);
4709 } 4762 }
4710 4763
4711 } // namespace webrtc 4764 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698